Every day, there are more devices everywhere connected to the Internet, waiting patiently for our commands. How can we order them around? Which language do they speak?
The simple answer is that “smart” things use many of the same languages as desktops, in part because their similarities with desktop computers continue to grow. “A Raspberry Pi is an actual computer now,” said Ian Skerrett, the vice president of marketing for the Eclipse Foundation. Skerrett divides the IoT architectural environment into three major sections: the sensors that create the data, the hubs or local gateways that organize it, and the geographically distant, centralized servers that collect the data.
It’s no surprise that what he calls an “actual computer” uses many of the same languages. In a survey of developers who write code for the Internet of Things (IoT) conducted in April 2016, the Eclipse Foundation discovered that Java, C, JavaScript, and Python were the top four choices for developers who are “building IoT solutions.”
That’s not much different from the top languages used for writing old desktop apps and servers. But while the simple answer is that smart things aren’t much different from desktops and servers, the complex answer is that there are important differences between all of the things that make up the IoT.
Skerrett divides the IoT architectural environment into three major sections: the sensors that create the data, the hubs or local gateways that organize it, and the geographically distant, centralized servers that collect the data.
“If you’re writing for a sensor on bare metal, you’re probably using C,” said Skerrett. The ability to work directly with the RAM makes C one of the first choices of hardware developers.
The rest of the machines in the chain, though, are as familiar as desktop computers, from the developer’s perspective. Thus, developers are able to use the language that’s familiar to them.
The hubs may be a smartphone or a small console, but they are just general-purpose machines inside. They usually run a standard operating system and often feel no different from a big machine, at least when communicating via the command line.