Your submission was sent successfully! Close

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

Thank you for contacting our team. We will be in touch shortly.Close

  1. Blog
  2. Article

Sarah Dickinson
on 10 May 2017

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

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.

Related posts

20 March 2024

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

Canonical announcements Canonical News

London, 20 March 2024. Canonical has announced that Ubuntu Core, its operating system optimised for the Internet of Things (IoT) and edge, has received Microsoft Azure IoT Edge Tier 1 supported platform status from Microsoft.  This collaboration brings computation, storage, and artificial intelligence (AI) capabilities in the cloud closer ...

Pierre Guillemin
18 March 2024

Canonical’s commitment to quality management

Ubuntu Article

As Canonical approaches its 20th anniversary, we have proven our proficiency in managing a resilient software supply chain. But in the pursuit of excellence, we are always looking to set new standards in software development and embrace cutting-edge quality management practices. This enables us to meet current technological landscape need ...

5 March 2024

Create an Ubuntu Core image with Landscape Client included

Internet of Things Ubuntu Pro

Canonical recently released the Landscape Client snap which, along with the new snap management features in the Landscape web portal, allows for device management of Ubuntu Core devices. In this blog we will look at how this can be deployed at scale by building a custom Ubuntu Core image that includes the Landscape Client snap ...