
JavaScript goes beyond the Web in 2015
- Transfer
2015 was a significant year for the Internet of things. We saw huge progress in the size and capabilities of devices, big players such as Microsoft and Samsung are literally moving into space and the entire IoT community is starting to grow even more. Over the past two years, here on SitePoint, it has become something of a tradition for me to review the year in terms of IoT and JavaScript (see JavaScript goes beyond the Web and JavaScript goes beyond the Web in 2014 ). Although the initial popularity and excitement surrounding JavaScript, as a language for IoT, seems to have calmed down a bit in 2015, JavaScript still continues to be positioned as a pretty strong way to harness magic on more IoT platforms than people imagine.
In this review, we will look at some significant advancements in IoT that reveal new features for JavaScript developers and the future potential of JavaScript outside the Web.

Tessel 2 (photo courtesy of Tessel)
Tessel is a microcontroller (similar to Arduino) that runs JavaScript, not typical languages like C. It was an excellent device to help JavaScript lovers plunge into the world of the Internet of things. Last year, he went out into the world and people created wonderful things on its basis . Tessel 2 was pre-ordered in 2015 and has some remarkable improvements over the previous Tessel generation.
Tessel could run various npm packages, but could not execute Node.js itself, so Tessel often had to specifically build compatibility for commonly used packages. Tessel 2 has greatly excelled in this regard - right out of the box it launches the real Node.js. Only for this reason I pre-ordered it. Access to npm modules gives this microcontroller a lot of potential.
It also has USB ports, thanks to which it is possible to access USB devices (for example, web-cameras), together with ready-made Tessel modules and a GPIO port (for connecting to pins of various types of electronics via jumper wires).

Open Hybrid in action (photo courtesy of Open Hybrid)
Augmented Reality is an exciting alternative way to control the Internet of things around us. Instead of subjecting objects to physical control, you can display them through an augmented reality interface, such as a smartphone application, and control them in intuitive and unlimited ways! Many companies were looking for ways to implement this, but in 2015, MIT Media Labs opened to the public (and made open-source) a rather impressive method called Open Hybrid. JavaScript IoT developers may be especially interested in this solution, because it allows you to develop applications through web-technologies, including HTML and JavaScript. Although augmented reality is still in its early days, today is the time to start crafting for IoT using its potential.

IoT.js and JerryScript Pages
Samsung has a wealth of resources to help establish JavaScript as the language of the Internet of Things. In 2015, they opened the source code for Jerry Script , a JavaScript engine for the Internet of Things. It allows you to run JavaScript on small, resource-limited devices, such as microcontrollers commonly used in IoT. To me, this is similar to trying to assemble Tessel in the first version of their devices, but on a large scale, open to a much larger number of small IoT devices.
IoT.js- Another Samsung effort to incorporate JavaScript into the Internet of Things ecosystem. The source code was opened at about the same time as JerryScript. IoT.js is a framework for creating an interoperable platform for devices using JavaScript. It is described as a lightweight version of Node.js, however, I have already tested it with my own hand to make sure this description is accurate.
Both JerryScript and IoT.js are in the early stages of their development, so observing their development during 2016 will be very exciting. I really hope that integration with the Samsung SmartThings platform will take place at a certain stage, but so far I have not heard any mention of it.

Particle Electron (photo courtesy of Particle)
In 2015, Spark reincarnated as Particle. Spark released microcontrollers with Wi-Fi support along with the provision of its own cloud service, which allowed to improve the development of devices for IoT. As for JavaScript itself, they had a JavaScript SDK and many other compatible third-party JavaScript plugins. After they changed their name in 2015, the number of devices manufactured by Particle has increased.
They started delivering a faster and more reliable microcontroller called Photon to the market and sent a microcontroller called Electron with built-in 2G / 3G support to Kickstarter (no Wi-Fi connection needed to make the device online)! Electron is now available for pre-order, the expected delivery start time is January 2016.
Ultimately, these developments in their coverage of devices continue to support the JavaScript API, so JavaScript developers have a whole range of new features this and next year! The community around Particle is also impressively large.

Starter Pack for Windows 10 IoT Core with Raspberry Pi (photo courtesy of Microsoft and Adafruit)
Microsoft released Windows 10 in 2015, providing one universal platform for many devices, including IoT. They took care of the JavaScript developers and provided access to Node.js inside their Windows 10 IoT ecosystem through the Chakra JS engine.. At the moment, the most important device I've seen using Windows IoT is the Raspberry Pi 2. MinnowBoard Max and MinnowBoard Max are also supported. Over time, we are likely to see support for a larger number of devices, because the ecosystem is growing. One important difference that should be taken into account regarding Windows 10 IoT Core is that it is not Windows 10 with a full set of features. This is the OS for IoT, in which only critical components are left.

Launched on Mac OSX and the
Evothings mobile device, Evothings Studio is a development toolkit for mobile IoT web applications that has grown significantly and expanded in 2015! I came across them in the second half of the year and was very impressed with what they offer. They combined an application called Evothings Studio, which allows you to develop mobile HTML5 and JavaScript applications, with live reloading and debugging capabilities. This was especially helpful when I explored the Estimote Bluetooth beacons , as the mobile simulators were not able to simulate the Bluetooth connection with the beacons. Running Evothings on my mobile device and testing with this software made this process incredibly simple.
For JavaScript developers, this platform will also be exciting, because the Evothings team has a training package that shows how to breathe life into a fairly large number of IoT devices using JavaScript.
( As a digression, I am now working with the Evothings team on several potential projects, so I was amazed at the results of their work! )

IFTTT Maker Channel
In 2015, IFTTT released a channel that provides the functionality that the IoT community has been dreaming of - the ability to make and receive arbitrary HTTP requests within IFTTT. This opened a service, the essence of which is that absolutely any user prototype that either makes or accepts requests can work with IFTTT and its many services!
This works great for Node.js developers, as HTTP requests can easily be sent / received to Node.js. Almost any IoT prototype that you connect to Node.js can be sent to IFTTT!

new Johnny-Five website Johnny-Five
is the JavaScript programming framework most commonly used for development under the Arduino NodeBot. The site has undergone a complete revision and has acquired a number of new documentation. They have significantly expanded the list of supported devices, and they also have links to assist developers in getting started with Johnny-Five and those platforms.

Raspberry Pi Zero (photo courtesy of the Raspberry Pi Foundation)
Finally, a very recent development that provides exciting features for JavaScript developers (as well as developers in many other languages!) Is Raspberry Pi Zero. Half the size of the A + Pi model, but it can still work with incredible speed and processing power. Since Raspberry Pi devices most often work on Linux, starting a Node server based on them will not be difficult. The Raspberry Pi Zero is essentially an even smaller JavaScript-enabled device that I’m sure will be the basis for some pretty impressive engineering creations in the coming months.
In 2015, there were an incredible number of enhancements for IoT devices for JavaScript developers: both directly, in devices that really focused on JavaScript, such as Tessel, and indirectly in Raspberry Pi Zero. JavaScript developers stepping into 2016 have many possibilities. If you are a JavaScript developer and have not yet begun to think about how to transfer your skills to the Internet of things ecosystem, then pay attention to the above technologies and to my previous articles from the cycle - 2013 and 2014 . JavaScript developers get far more talent than they realize!
In this review, we will look at some significant advancements in IoT that reveal new features for JavaScript developers and the future potential of JavaScript outside the Web.
Tessel 2

Tessel 2 (photo courtesy of Tessel)
Tessel is a microcontroller (similar to Arduino) that runs JavaScript, not typical languages like C. It was an excellent device to help JavaScript lovers plunge into the world of the Internet of things. Last year, he went out into the world and people created wonderful things on its basis . Tessel 2 was pre-ordered in 2015 and has some remarkable improvements over the previous Tessel generation.
Tessel could run various npm packages, but could not execute Node.js itself, so Tessel often had to specifically build compatibility for commonly used packages. Tessel 2 has greatly excelled in this regard - right out of the box it launches the real Node.js. Only for this reason I pre-ordered it. Access to npm modules gives this microcontroller a lot of potential.
It also has USB ports, thanks to which it is possible to access USB devices (for example, web-cameras), together with ready-made Tessel modules and a GPIO port (for connecting to pins of various types of electronics via jumper wires).
Apply JavaScript Skills
- pre-order Tessel 2 - pre-order Tessel 2 on their website and start planning your development! Tessel 2 is due to appear in January 2016.
- Tessel official documentation - you can already start reading about Tessel development (development on Tessel 1 should be very similar to development on Tessel 2).
Open hybrid

Open Hybrid in action (photo courtesy of Open Hybrid)
Augmented Reality is an exciting alternative way to control the Internet of things around us. Instead of subjecting objects to physical control, you can display them through an augmented reality interface, such as a smartphone application, and control them in intuitive and unlimited ways! Many companies were looking for ways to implement this, but in 2015, MIT Media Labs opened to the public (and made open-source) a rather impressive method called Open Hybrid. JavaScript IoT developers may be especially interested in this solution, because it allows you to develop applications through web-technologies, including HTML and JavaScript. Although augmented reality is still in its early days, today is the time to start crafting for IoT using its potential.
Apply JavaScript Skills
- Official OpenHybrid page - there is everything you may need to download the platform and get started
- O'Reilly Solid's OpenHybrid Speech - An excellent O'Reilly Solid speech that is fully dedicated to this concept and demonstrates its potential.
Samsung IoT.js and JerryScript

IoT.js and JerryScript Pages
Samsung has a wealth of resources to help establish JavaScript as the language of the Internet of Things. In 2015, they opened the source code for Jerry Script , a JavaScript engine for the Internet of Things. It allows you to run JavaScript on small, resource-limited devices, such as microcontrollers commonly used in IoT. To me, this is similar to trying to assemble Tessel in the first version of their devices, but on a large scale, open to a much larger number of small IoT devices.
IoT.js- Another Samsung effort to incorporate JavaScript into the Internet of Things ecosystem. The source code was opened at about the same time as JerryScript. IoT.js is a framework for creating an interoperable platform for devices using JavaScript. It is described as a lightweight version of Node.js, however, I have already tested it with my own hand to make sure this description is accurate.
Both JerryScript and IoT.js are in the early stages of their development, so observing their development during 2016 will be very exciting. I really hope that integration with the Samsung SmartThings platform will take place at a certain stage, but so far I have not heard any mention of it.
Apply JavaScript Skills
- official JerryScript page - contains a link to download the engine and a start guide
- IoT.js official page - also contains a download link and a start guide
Spark becomes Particle

Particle Electron (photo courtesy of Particle)
In 2015, Spark reincarnated as Particle. Spark released microcontrollers with Wi-Fi support along with the provision of its own cloud service, which allowed to improve the development of devices for IoT. As for JavaScript itself, they had a JavaScript SDK and many other compatible third-party JavaScript plugins. After they changed their name in 2015, the number of devices manufactured by Particle has increased.
They started delivering a faster and more reliable microcontroller called Photon to the market and sent a microcontroller called Electron with built-in 2G / 3G support to Kickstarter (no Wi-Fi connection needed to make the device online)! Electron is now available for pre-order, the expected delivery start time is January 2016.
Ultimately, these developments in their coverage of devices continue to support the JavaScript API, so JavaScript developers have a whole range of new features this and next year! The community around Particle is also impressively large.
Apply JavaScript Skills
- prototyping devices on Particle - the official page containing an overview of the capabilities of each device and purchase links
- ParticleJS docs - official ParticleJS docs
Microsoft Windows 10 IoT Core

Starter Pack for Windows 10 IoT Core with Raspberry Pi (photo courtesy of Microsoft and Adafruit)
Microsoft released Windows 10 in 2015, providing one universal platform for many devices, including IoT. They took care of the JavaScript developers and provided access to Node.js inside their Windows 10 IoT ecosystem through the Chakra JS engine.. At the moment, the most important device I've seen using Windows IoT is the Raspberry Pi 2. MinnowBoard Max and MinnowBoard Max are also supported. Over time, we are likely to see support for a larger number of devices, because the ecosystem is growing. One important difference that should be taken into account regarding Windows 10 IoT Core is that it is not Windows 10 with a full set of features. This is the OS for IoT, in which only critical components are left.
Apply JavaScript Skills
- launching Windows 10 IoT Core on Raspberry Pi 2 - a guide on installing Windows 10 IoT Core on Raspberry Pi 2, which I am attaching to SitePoint (Node.js is not mentioned, but first you need to complete this step before doing anything else )!
- Microsoft guide on using Node.js with the Windows 10 IoT platform - official blog post on starting Windows 10 IoT Core and Node.js
- docs and samples of Windows 10 IoT Core - an assortment of examples, including a couple of about Node.js
Evothings

Launched on Mac OSX and the
Evothings mobile device, Evothings Studio is a development toolkit for mobile IoT web applications that has grown significantly and expanded in 2015! I came across them in the second half of the year and was very impressed with what they offer. They combined an application called Evothings Studio, which allows you to develop mobile HTML5 and JavaScript applications, with live reloading and debugging capabilities. This was especially helpful when I explored the Estimote Bluetooth beacons , as the mobile simulators were not able to simulate the Bluetooth connection with the beacons. Running Evothings on my mobile device and testing with this software made this process incredibly simple.
For JavaScript developers, this platform will also be exciting, because the Evothings team has a training package that shows how to breathe life into a fairly large number of IoT devices using JavaScript.
( As a digression, I am now working with the Evothings team on several potential projects, so I was amazed at the results of their work! )
Apply JavaScript Skills
- official start page with Evothings
- Evothings training materials - the above list of training materials!
- how to prototype Beacon apps with Estimote and Evothings - my SitePoint guide on how I prototyped a beacon mobile app in Evothings Studio
IFTTT Maker Channel

IFTTT Maker Channel
In 2015, IFTTT released a channel that provides the functionality that the IoT community has been dreaming of - the ability to make and receive arbitrary HTTP requests within IFTTT. This opened a service, the essence of which is that absolutely any user prototype that either makes or accepts requests can work with IFTTT and its many services!
This works great for Node.js developers, as HTTP requests can easily be sent / received to Node.js. Almost any IoT prototype that you connect to Node.js can be sent to IFTTT!
Apply JavaScript Skills
- IFTTT Maker Channel - official IFTTT Maker Channel page
- connecting IoT and Node.js to IFTTT - the SitePoint tutorial I added earlier in 2015 illustrates the basics of using IFTTT with Node.js
- LIFX Lights automation with LightBlue Bean and IFTTT - my SitePoint guide to LIFX lights automation through Node.js, LightBlue Bean and IFTTT
Johnny-Five remodeled!

new Johnny-Five website Johnny-Five
is the JavaScript programming framework most commonly used for development under the Arduino NodeBot. The site has undergone a complete revision and has acquired a number of new documentation. They have significantly expanded the list of supported devices, and they also have links to assist developers in getting started with Johnny-Five and those platforms.
Apply JavaScript Skills
- Johnny-Five official site - Johnny-Five reconstructed site
- JavaScript Robotics Book - A book from the creator of Johnny-Five, released in 2015, contains many contributions from the NodeBots community. Worth to read it!
Raspberry pi zero

Raspberry Pi Zero (photo courtesy of the Raspberry Pi Foundation)
Finally, a very recent development that provides exciting features for JavaScript developers (as well as developers in many other languages!) Is Raspberry Pi Zero. Half the size of the A + Pi model, but it can still work with incredible speed and processing power. Since Raspberry Pi devices most often work on Linux, starting a Node server based on them will not be difficult. The Raspberry Pi Zero is essentially an even smaller JavaScript-enabled device that I’m sure will be the basis for some pretty impressive engineering creations in the coming months.
Apply JavaScript Skills
- Raspberry Pi Zero Product Page - The official Raspberry Pi Zero product page, where you can find specifications and purchase links!
- streaming the Raspberry Pi camera in VR using JavaScript - the guide I added on how to turn the Raspberry Pi and its camera into a streaming VR camera for Google Cardboard devices. I don’t have a Raspberry Pi Zero yet, but judging by what I’ve already seen, this demo will most likely run on a new, smaller device!
- JavaScript Robotics Book - Johnny-Five's JavaScript Robotics Book, mentioned earlier, contains several Raspberry Pi demos
Conclusion
In 2015, there were an incredible number of enhancements for IoT devices for JavaScript developers: both directly, in devices that really focused on JavaScript, such as Tessel, and indirectly in Raspberry Pi Zero. JavaScript developers stepping into 2016 have many possibilities. If you are a JavaScript developer and have not yet begun to think about how to transfer your skills to the Internet of things ecosystem, then pay attention to the above technologies and to my previous articles from the cycle - 2013 and 2014 . JavaScript developers get far more talent than they realize!