Languages for IoT developers
We have seen a changing of the guard in the past few years as software takes center stage and once-beloved hardware simply becomes a canvas for developers. The ability to code is an important skill for the production of any modern technology, especially a product that falls within the “internet of things.” If IoT developers are to create the next big thing in tech, they will need to know the most important and popular IoT coding languages. Here is a list of top coding languages providing the backbone of IoT software:
C
C, a language first developed to program telephone switches, is available on nearly every advanced embedded system platform that exists. For some platforms where it’s not directly available, it’s still the basis for the dedicated language used in the software development kit.
The language is still the first choice for many programmers who write for the lowest layer of software, the one closest to the hardware, according to Tech Beacon. The language hides nothing from you, and that means you can fiddle with every part of the code to squeeze out the best performance from an underpowered device. Every bit can be flipped. Every value on the stack is available.
“From what we see in the market, C remains the language of choice for constrained devices,” Victor Berrios, the CTO at the ZigBee Alliance, told Tech Beacon. “These typically do not include a ‘commercial’-level [operating system] but rather a basic task-scheduler type of resource management also coded in C.”
Java
The top choice of the Eclipse survey and Embedded Computing survey was Java. The original project was aimed at set-top boxes, one of the first domains for nondesktop computing.
Java’s advantages include the ability to create and debug code on a desktop and then move it to any chip with a Java Virtual Machine. That means the code can run not just on places where JVMs are common – servers and smartphones – but also on the smallest machines.
Java was written to be an object-oriented language that is portable with few hardware dependencies built into the compiler. In order to get the specific, fine control over particular pieces of hardware, Java depends on hardware-support libraries that are called from the generic code.
C++
C++ is an object-orientated preprocessor for C and has the processing power that C does not have to run higher level languages.
The language is commonly used in projects running Linux and also is used in embedded programming.
It adds layers of abstractions, classes and objects, allowing developers the ability to extend programming code for embedded and IoT code.
C++ has encouraged other languages including Java, Python C#, D and more.
Python
It started as a scripting language to glue together real code, but it’s increasingly used as the main language for many developers, thanks to its easy readability. When small devices have enough memory and computational power, the developers are free to choose the language that makes their lives easier, and that is more and more often turning out to be Python, according to Information Week.
Python makes for a solid embedded language, having sufficient power in the embedded platform. Python is a good choice for any applications that will take data, put it into any sort of database format, then draw upon the tables for control information.
JavaScript
JavaScript is a scripting language that is heavily used for building web-fronted applications. Its relatively newfound popularity on the server makes it a surprisingly popular choice for IoT applications. A full 41.8% of the developers in the Eclipse survey chose JavaScript, and 31.5% indicated that they were using Node.js in their projects, according to Tech Beacon.
Much of this work is focused on the servers and gateways or hubs that gather the information and then store it. The smaller smart hubs and sensors that run Linux can usually run Node.js.
Swift
While Swift is still mainly used to build applications for Apple’s iOS and macOS devices, the popularity of these devices means it’s often part of the IoT stack. If you want your things to interact with an iPhone or an iPad, you’re probably going to want to build the app in Swift.
Additional languages
Other languages being used for IoT include:
- Go
- Rust
- Assembler
- Forth
- B#