Your submission was sent successfully! Close

You have successfully unsubscribed! Close

Thank you for signing up for our newsletter!
In these regular emails you will find the latest updates about Ubuntu and upcoming events where you can meet our team.Close

Why language choices can be irrelevant when choosing the right IoT OS

This article is more than 6 years old.


This is the first in a series of two blogs exploring the finding from the latest Eclipse Foundation IoT Developer Survey.

A couple of months ago we posted a blog inviting developers to contribute to the 3rd Eclipse Foundation IoT Developer Survey. The 2017 results are now published with a total of 713 respondents, from all over the world. The survey gives an insight into the current state of play in the making of the internet of things in 2017. As well as bigger trends about IoT adoption across various industries, the survey also provides a developer perspective on the methods they use today to build the IoT devices and solutions around us.

Looking at the top programming languages used to build IoT solutions today, over 15 were listed with Java (60.9%) and C (60.5%) coming out as the top, followed by the likes of C++, Python and Javascript. As expected, the results produced subtle differences between constrained devices, IoT gateways and the cloud. Programming language ultimately is dependent on the target destination of the developed software, as shown in the graphs below.

When comparing some of these results with other developer surveys such as the latest Stackoverflow developer survey for example (dominated by Javascript -62.5%, Java -39.7%, C# -34% or Python 32%), IoT development shows the prevalence of “legacy” languages over the new scripting darling. The fact that some devices and code needs to be supported for 10 years probably explains the situation. What this really shows is how hard it is to do IoT development without reusing a number of C or Java libraries. The growth of Javascript and Python, however, demonstrate that more developers turn to these languages to do iterative and agile development, even in the once slow-moving embedded space.

So what does this mean for developers when building IoT solutions and the platforms they choose?

It would be natural to think that they will be looking for Operating Systems that will support this variety of languages and libraries. So it won’t be a surprise to see that, Linux was the OS of choice for IoT devices because of the number of distributions, tools, languages and libraries that make development faster. The kernel itself might be the reason for the success, with its well known and straightforward behaviour plus the ability to use drivers to adapt it to the various hardware types found in the field.

What might come as a surprise though is to see that among the various Linuxes in use in IoT, Ubuntu and Ubuntu Core were found to be a close second with 44%. Is it really a surprise though?

Both Ubuntu and Ubuntu Core are language agnostic meaning developers can work with their programming language of choice and more importantly it’s quite simple for them to install new languages and libraries thanks to the package managers. Building multiple services for gateways and other smart devices in an open source environment and in their preferred language then becomes a very attractive option.

The introduction of snaps with Ubuntu Core has also brought a new way of working in the IoT space. Developers are now able to control exactly what they ship regardless of what OS it’s going to run on. This makes a developer’s life easier by saving the need to statically build everything in whether it is for a large scale deployment, beta or testing.

Next week we’ll publish the second blog in this series exploring the survey from a business perspective.

smart start

IoT as a service

Bring an IoT device to market fast. Focus on your apps, we handle the rest. Canonical offers hardware bring up, app integration, knowledge transfer and engineering support to get your first device to market. App store and security updates guaranteed.

Get your IoT device to market fast ›

smart start logo

IoT app store

Build a platform ecosystem for connected devices to unlock new avenues for revenue generation. Get a secure, hosted and managed multi-tenant app store for your IoT devices.

Build your IoT app ecosystem ›

Newsletter signup

Get the latest Ubuntu news and updates in your inbox.

By submitting this form, I confirm that I have read and agree to Canonical's Privacy Policy.

Related posts

Canonical’s Ubuntu Core receives Microsoft Azure IoT Edge Tier 1 supported platform status

London, 20 March 2024. Canonical has announced that Ubuntu Core, its operating system optimised for the Internet of Things (IoT) and edge, has received...

Canonical’s commitment to quality management

As Canonical approaches its 20th anniversary, we have proven our proficiency in managing a resilient software supply chain. But in the pursuit of excellence,...

Create an Ubuntu Core image with Landscape Client included

Canonical recently released the Landscape Client snap which, along with the new snap management features in the Landscape web portal, allows for device...