The Internet of Things (IoT) is an entirely new platform for developers and engineers, but one thing should remain consistent as we move into this new world, the programming languages. From our limited time checking out IoT projects, developers seem to be utilizing the same languages for their projects, while also integrating some specific changes for IoT.
What languages are the best for IoT?
From speaking2 to industry folks that have worked on IoT devices and systems before, C, C++, and Java are the most popular choices for general purpose projects. C is one of the first programming languages and is popular for low-level projects, C++ expands on the capabilities of C. There’s another language called C#, Microsoft’s own higher level version, but not many developers use it. Better explanations for the differences between the three C’s can be found here,here, and here.
C is considered the most useful for IoT devices because it doesn’t require a lot of processing power.1 C++ is an alternative if the IoT device requires more complex tasks, think thermostats and smart toasters rather than devices that detect moisture or heat. Java is another general purpose language that is useful for IoT devices that require a lot of interfacing and calculation, since it is more portable than C++, lightweight (for a high level language), and more commonly taught.
Python is another programming language frequently mentioned by developers. It is more flexible than C or Java, which have a lot of requirements and rules built up over the decades. Python has become a valuable resource for Web application developers, but some don’t see it transitioning to IoT anytime soon. JavaScript is another popular Web application language, but developers see Python as superior for IoT projects, due to its support for embedded programming.
Other programming languages are more specific
If you don’t want to go with C, there are some other low-level programming languages that may suit your needs. B# is one of those, a language built from the ground up for very low power devices. It is similar to C#, but stripped of the hand holding and fitted with real-time control functions.
Assembler is the king of low-level languages, capable of running on just about anything. The downside is there’s no hand holding at all, if you code doesn’t work, too bad, if a new processor doesn’t accept Assembler code, too bad.
Google and Nest’s language, Weave, could become popular if it receives more support from developers inside and outside Mountain View. Google also has Brillo, an all encompassing platform for IoT devices, which could promote Weave use if it becomes popular. Apple is a contender with its open source language Swift, currently marketed at iOS and Mac OS developers.
For now, IoT developers should look at the programming languages we have used for decades, before venturing into the niche and new.