IoT is growing faster than ever! In fact, it is growing faster than smartphones. “Computerworld” recently reported that U.S. Cellular carriers are adding more IoT connections to their networks than phones or tablets!
The article states that AT&T, which leads the area of connected cars, aims to reach 10 million car connections in the near future. Wow! Check out these statistics from industry expert Chetan Sharma.
According to Sharma's research, one-third of cellular companies' new device subscriptions are cars!
Why so many cars with cellular connections?
JS did one main thing: provide the ability to serve an interactive I/O web page without lagging or hanging. This was possible due to the event/callback model of JS. Old programming languages never had this feature.
In just a few years, Node.js has gained an active community of backers and developers. Numerous tools and modules are being developed leveraging the node runtime. It is important to note that node runs as a single thread but can still serve a large number of requests.
The node website states, "Node.js' package ecosystem, npm, is the largest ecosystem of open source libraries in the world." It is ever-growing with hobbyists, and big tech companies like Google and IBM are releasing their node-based applications now more than ever.
We know that one of the hurdles Node.js faces is scalability. The I/O model that Node.js uses is event-driven and non-blocking, making it lightweight and efficient. These features of node are beneficial for IoT-related development.
Node is suited to handle a lot of request at the same time without issue. With our ability to gather and push data to the cloud growing exponentially, there are limitless possibilities. The humongous data cloud contains answers to the questions we dared not ask, and finding the needle in the haystack has become easier than ever! There is a dire need for an environment that not only supports scalability but also offers rapid and flexible application development. This fits the design objective of Node.js.
Another reason Node.js has seen rapid growth in IoT applications is the presence of an "active developer" community that is developing node-based APIs. Node has modules like Express and Restify, which can be used to create APIs in just a few lines of code, making rapid development possible.
One example of innovation in the early days of the Node.js community is NodeBots. When Chris Williams created the node-serialport module, it opened doors to JS developers for hardware creation and control. In late July, the world celebrated NodeBots Day, and the JS robotics and IoT platform Johnny-Five makes it easy for anyone to join the revolution!
JerryScript has been developed to be used with resource constraint devices (with less than 64 KB of RAM and less than 200 KB of Flash memory). It also supports on-device compilation and execution and could prove to be game changing for increasing interoperability among different platforms.
IBM is pushing its limit for the development of IoT. The IBM Bluemix Platform integrates the cloud and different IBM APIs to build your next IoT app quickly. One particular tool -- Node-RED -- is the epitome of rapid and visual programming.
According to Datamation.com, Node-RED is a “visual tool for wiring the Internet of Things" that "simplifies the process of connecting IoT devices with APIs and online services." Built on Node.js, Node-RED is multiplatform -- running on Windows, OSX and Linux -- and includes a browser-based flow editor.
An initial version of Node-RED was released in late 2013 as an open source project, according to noderedguide.com. By 2014 it had built a small but very active developer community, which continues to grow.
In Node-RED, an application consists of one or more flows, and each flow represents connected nodes. There are different types of Nodes available for Node-RED by default, and more can be installed using npm.
Flows work by passing JSON messages along the nodes to get the desired result. Each node can be configured with the settings specific to the particular node.
What's really great about Node-RED is its agile nature. You can deploy the application, make changes and see them in action immediately!
The Graphical User Interface (GUI) is simple and intuitive, rendering it possible for everyone to use without much programming experience.
Node-RED is still a nascent technology, but it is rapidly being adopted by the maker community.
There are already IoT-compatible boards such as Raspberry Pi, Tessel 2, Intel Edison and BeagleBone Black, which can easily accommodate Node.js and the thousands of npm packages, including libraries for communication protocols such as HTTP, IFTTT, MQTT etc. Apart from these popular boards, there are hundreds of other IoT-based development boards on the market that are capable of utilizing node and its rich features.
Even smaller microcontrollers, especially ARM-based low-power embedded boards, will soon be compatible with Node.js, giving rise to endless possibilities.
The development of ultralightweight JS engines will help give tiny and low-power end-point devices a common platform to communicate and transmit data seamlessly to the cloud. Onboard compilation and execution will facilitate easy firmware updates over the air, reducing the cost.