Saturday, December 27, 2014

IoT: programming language?

With focus on efficient sensors for IoT, C++ may become a language of choice for small "things".
Apparently both Intel and Microsoft think so.
In particular with new C++11 and C++14 features, the language may be usable (enough).

Getting Started for C/C++ (Eclipse) - Galileo & Edison @Intel

NuGet Gallery | Microsoft IoT C++ SDK 1.0.0
NuGet Gallery | Galileo C++ SDK 1.0.6

Another portable alternative,  likely to be more popular is node.js (or its new "fork" io.js).
Javascript and the Internet of Things- Postscapes
Building an IoT Project with Intel Galileo and Node.js | Dr Dobb's
Intel(R) XDK IoT Edition node.js Templates | Intel® Developer Zone

Apple Swift could be very interesting, since it is both efficient and high-level modern language,
is supported by Apple, with smart people and virtually unlimited resources...
When Apple starts making IoT gadgets, that may be a good choice.
HomeKit - Apple Developer
HealthKit - Apple Developer

Google's Go is less efficient for small devices, and is optimized for parallel programming.

Finally, obvious candidates are Java and C#,
since they could reasonably run on many platforms,
but GC (memory management) makes them less usable for "real time"...

Great diversity...

VS2015: Bower, Grunt

Manage Client-Side Web Development in Visual Studio 2015, Using Grunt and Bower | The ASP.NET Site
With Visual Studio 2015, you can:
  • Easily manage client-side packages like jQuery, Bootstrap, or Angular.
  • Automatically run build tasks such as LESS compilation, JavaScript minification, JSLint, or JavaScript unit tests.
  • Take advantage of a rich ecosystem of tools created by the web development community.
To enable these scenarios, Visual Studio 2015 Preview has built-in support for several popular third-party tools:
  • Bower. Described as a “package manager for the web,” Bower lets you install and restore client-side packages, include JavaScript and CSS libraries. For server-side libraries like the MVC 6 framework, you will still use NuGet Package Manager.
  • Grunt and Gulp. Grunt and Gulp are JavaScript-based task runners. If you aren’t familiar with these, a task runner is an app that automates routine development tasks. Right now, the ASP.NET 5.0 project template uses Grunt.
  • npm (Node Package Manager). npm is a package manager that was originally created for Node.js. Bower, Grunt, and Gulp all use npm.

ASP.NET 5: MVC 6 Web API, Entity Framework 7

Getting started with ASP.NET 5 MVC 6 Web API & Entity Framework 7 - Bit of Technology
"One of the main new features of ASP.NET 5 is unifying the programming model and combining MVC, Web API, and Web Pages in single framework called MVC 6. 

In previous versions of ASP.NET (MVC 4, and MVC 5) there were overlapping in the features between MVC and Web API frameworks, but the concrete implementation for both frameworks was totally different, with ASP.NET 5 the merging between those different frameworks will make it easier to develop modern web applications/HTTP services and increase code reusability."
(and limited backward compatibility)


ScottGu's Blog - Introducing ASP.NET 5
Monday, February 23, 2015

IoT + Azure + Mobile demo, Hanselman @ Connect()

Cloud development with Azure and Visual Studio | Connect(); Microsoft Visual Studio vNext & Azure | Channel 9
Scott Hanselman, November 12, 2014 demo apps from Connect(); Visual Studio and Azure event - Cesar de la Torre [Microsoft] - BLOG - Site Home - MSDN Blogs


IoT, W3C: "Web of Devices"

Web of Devices - W3C