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

Sarah Dickinson

Sarah Dickinson

on 10 May 2017

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.

Ubuntu desktop

Learn how the Ubuntu desktop operating system powers millions of PCs and laptops around the world.

Sign up for email updates

Choose the topics you're interested in

 

Related posts

Ora as a snap: ensuring users are benefiting from the latest version

Ora is a user-friendly task management service with integrated time-tracking, reports, list view, git integrations and many other features. Often referred to by users as ‘the sweet spot between Trello and Jira’, Ora provides almost a…

Design and Web team summary – 20 April 2018

Welcome to the latest work and updates from the design and web team. We manage all web projects across Canonical – from www.ubuntu.com to the Juju GUI we help to bring beauty and consistency to all the web projects. MAAS Table…

Eclipse 2018 survey: The IoT landscape, what it empirically looks like

Every year the Eclipse Foundation along with other sponsors conduct an online survey of the IoT market looking at what technologies are being used and how. The 2018 edition of that survey has just been made available and I thought it would…