If you’ve been keeping up with our articles you’d know just how big the Industrial Internet of Things is ( if you haven’t, you might want to start with IIoT Introduction, IoT vs. IIoT ) and if you know how big IIoT is, we know you’ve been waiting for this next article. In this write-up, we will be taking a closer look at some of the Programming Languages you could be using in an IIoT implementation.

 

Since 2015, the Eclipse IoT working group organized the annual IoT Developer Survey. The survey covers a variety of topics and reveals the latest trends in IoT development, IoT programming languages, services, and more.

 

A collaboration between the Eclipse IoT Working Group, IEEE, Agile-IoT EU and the IoT Council, each partner promoted the Annual IoT Developer survey to each of their communities and a total of 713 individuals participated.

 

As in previous years, the 2017 results  released last April provide valuable insights into the current trends of the IoT developer community. According to the Eclipse IoT working group, the programming languages you are most likely to encounter can be divided into three primary categories based on the application’s target destination:

 

  1. Constrained Devices
  2. IoT Gateways
  3. IoT Cloud Platforms

 

% of Programming language usage among IoT developers by destination

 

*Note that the following percentages represent how often each language has been encountered by those who completed the survey, and not necessarily the total usage within the IoT industry.

 

IIoT Programming Languages for Constrained Devices

Constrained Devices are often the “thing” in the IoT, and are the starting point for any IoT application. These devices are relatively limited in terms of size or power supply so they are programmed using microcontrollers (MCU). As limited as they are, the microcontrollers powering constrained devices are specialized for their specific tasks and designed to collect data from their “real world” interactions.

 

On constrained devices, the most popular languages are C (56.4%) and C++ (38.3%). Other languages used include Java (21.2%), Python (20.8%), and Javascript (10.3%).

 

 

IIoT Programming Languages for IoT Gateways

The role of an IoT gateway is to aggregate sensor data from connected constrained devices, sensors, and actuators, and then to subsequently coordinate information between these devices and the external network. As such, the IoT gateway is a fundamentally critical component of IIoT systems.

 

As opposed to constrained device languages, the choices are more varied on IoT Gateways. The top option is Java (40.8%), followed closely by C (30.4%), Python (29.9%) and C++ (28.1%). JavaScript and Node.js are used by some, but not nearly to the degree of the other options.

 

 

IIoT Programming Languages for IoT Cloud Platforms

Finally, the IoT cloud platform is the overarching system that facilitates any IoT solution. As you might guess by the name, an IoT cloud platform will typically operate on a cloud infrastructure (e.g. AWS, Microsoft Azure, etc.) or from within an enterprise data center. Any quality solution is able to address a variety of IoT applications while being able to support the large number of connected devices.

 

For IoT cloud platforms, the majority of developers use Java (46.3%). JavaScript (33.6%) comes in second, while Node.js (26.3%) and Python (26.2%) see less usage. Towards the bottom of the bucket, C (7.3%) and C++ (11.6%) usage is very low.

 

 

Conclusion

 

Image by Eclipse IoT (http://iot.eclipse.org/)

 

Overall, it’s pretty clear that IIoT application development requires developers to have expert skills and understanding in a diverse set of programming languages, so it’s not easy to select any one specific language of choice. It ultimately depends on what aspect of an IIoT system you’ll most often be working on: Constrained Devices, Gateways, or Cloud Platforms.

 

Additionally, what languages you should concentrate on will also depend on what is already in use at your current or prospective company. As a developer, you will have to work with your team in their existing environment. As they say, “When in Rome…”

 

Our recommendation? Brush up on as many of the top languages as you can. At the very least, you should be able to work your way through applications written in Java, C, and Python.


Operation Intelligence for IoT A Look At The Future Of Historian Data

Leave a Reply

Your email address will not be published. Required fields are marked *