Imagine this: you are being able to turn the oven (thing) at home 20 minutes before you arrive, so it already starts cooking. Or you can take (still being on your way home) a peek at your, let’s say, refrigerator to check if you must buy something from the nearby grocery store. The Internet of Things is the scenario in which objects, animals or human beings are provided with unique identifiers and the ability to transfer data over a network without requiring human-to-human or human to computer interaction. Yes, we’re talking about this.

Every day, there are more and more devices everywhere that are connected to the Internet, devices that are waiting for some specific commands. Is there a way that we can order them around? Which language do they speak?

Internet of Things (or IoT, shortly) development projects are being more numerous all over the world. New hardware platforms make embedded systems in IoT applications easier to manipulate and engineer more than ever before. Not so very long ago, our choice of programming language was pretty much dictated by our choice of hardware platform. More modern platforms that are based on open source standards and able to support multiple languages make for much more flexibility and, therefore, more choices.

We agree, 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.

Which are the best programming languages for IoT?

People who have worked on IoT devices and systems before say that 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.

Using the least of power among these example languages, C is considered the most useful for IoT devices. C++ is an alternative if the IoT device requires more complex tasks, let’s say thermostats and smart toasters. For interfacing and complex calculation, Java is another general purpose language that is useful for IoT devices, and it is more portable than C++.

Embedded programming needs Python, 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 is a valuable resource for Web application developers, but some devs don’t see it transitioning to IoT anytime soon, even if its support for embedded programming is superior to JavaScript.

Worth mentioning is B#, a language built from the ground up for very low power devices. It is similar to C#, but fitted with real-time control functions.

Another language is Assembler, which is capable of running on everything. Surely, we are exaggerating, but not so much. The risk is that if a new processor doesn’t accept the code of Assembler, well, too bad.

The giant Google has Weave, a communications platform for Internet of Things (IoT) devices, along with Android Things. 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.

Examples being said and counted, these are some of the platforms on which people can develop prototypes for IoT applications. Some of these are the platforms that will ultimately be used in a final product, while others will… we can easily say any of these systems can also be a great way to teach people programming. Whether you’re thinking about a system for teaching your kid how to code, or just looking for a way to grow up your skills, you won’t really go wrong tinkering with any of these embedded systems.