Even if IoT (the Internet of Things) might be considered as a relatively new domain, little by little, we are getting familiar with smart devices. It’s all about human nature: we get used to everything. Anyway, it’s still funny: could you imagine, say, ten years ago having a home appliance that can regulate its performance? Back then, this kind of technology was available only in sci-fi movies.
On paper everything looks innovative and futuristic. However, the industry has its flaws in development, and its the speed of IoT implementation across the world is relatively low. One of the major factors contributing to the current state of things is the lack of professionals.
The demand for engineers with IoT skills is high, and there’s a serious gap in the job market. According to the report by Canonical, 68% of companies are struggling to recruit developers for their IoT projects. Mike Bell, EVP of IoT and Devices at Canonical commented on the situation, “When it comes to the Internet of Things, the business community is still overcoming a significant skills gap. Many businesses are concerned by their own lack of knowledge and skills within the IoT market and many business leaders are finding themselves running head first into a set of technology and business challenges that they do not yet fully understand”.
Java is omnipresent. Its field of application varies from the back-end programming to mobile apps. The IoT Developer Survey 2017 by the Eclipse Foundation claims that Java is the top programming language for the IoT development, especially for the cloud and gateways.
Its main competitive advantage lies in the fact that Java isn’t subjected to any hardware limitations. In other words, the language offers a high level of portability meaning that it’s possible to write and debug a code written in Java and deploy it to any computer that runs Java Virtual Machine. No wonder that lots of companies employ Java developers for their IoT projects.
This paradigm results in salaries. According to Payscale, a medium salary for Java developers in the US is about $88.000. It’s worth noting that these results don’t provide an exact image. When talking about paychecks, a developer’s experience and status are the points to rely on when calculating. For example, the gap in salaries between a junior and a senior Java developer in the USA may be around $30.000 (from $66.000 to $97.000 respectively). The geographical factor is also a point to consider. For instance, Java developers in California where the mecca of innovation and technology aka the Silicon Valley is located, get the highest salary nationwide –$133.000.
C is regarded a low-level programming language (however, it’s high-level enough to make programming simple), but that’s exactly what IoT development process demands. If to consider the fact that C allows a direct cooperation with hardware using a human-readable syntax, it’s a good match for many IoT-oriented companies. Besides, C is highly flexible and swift, and that’s good news for IoT systems with limited processing power.
These particular features make C a “second best” programming language for IoT development. Besides:
- C is a weapon of choice when it comes to constrained device development;
- C provides direct access to low-level hardware APIs;
- The language is available on almost every advanced embedded system platform;
When talking about salaries, again, the situation is different across the world. For instance, in the US, the average annual salary is around $100.000. Fun fact: according to Payscale, the yearly average C developer salary in the United Kingdom is only just over the $40 thousand. Do you have an idea why it is so?
Ironically enough, but just a few years ago, Python was considered as a language for developing web applications with no apparent application for IoT on the horizon. Nowadays, the situation has changed: Python is frequently mentioned as an easy programming language to understand and utilize in IoT projects. Some even claim that it is more flexible than C or Java, which have a lot of requirements and rules built up over the decades.
All in all, Python works as a charm for developing data-intensive applications, particularly if there’s a need to manage and organize volumes of complex data. Similar to Java, the source code written in Python is compact and highly readable due to the clean syntax of the language. Despite the fact that it’s not as fast as C or C+, you might consider Python if you work with small devices that have limited computational power and memory. Python is really popular for many SBCs (or Session Border Controllers) because of its convenience and the variety of simple libraries and Internet features.
As for Python-based salaries, in comparison with Java and C, they are a bit lower. An average paycheck is around $70.000 both in the United States and Europe.
Some other honorable mentions include:
Anyway, it’s not the language that runs the project but proper skills and mindset. Ian Skerrett, the vice president of marketing for the Eclipse Foundation has put it nicely: “Our Internet of Things effort is polyglot. It’s not one language.”
So what languages are you using for IoT projects?