Thursday, January 31, 2019

What programming languages rule the Internet of Things?

As the Internet of Things (IoT) continues to evolve, it can be difficult to track which tools are most popular for different purposes. Similarly, trying to keep tabs on the relative popularity of programming languages can be a complex endeavor with few clear parameters. So, trying to figure out the most popular programming languages among the estimated 6.2 million IoT developers (in 2016) seems doubly fraught — but I’m not going to let that stop me.

There’s not a lot information on the topic, but if you’re willing to look at sources ranging from Medium to Quora to corporate sites and IoT blogs, and you’re willing to go back a few years, you can pick up some common threads.

IoT Developer Survey: Top IoT programming languages

According to the Eclipse Foundation’s 2018 IoT Developer Survey, here are the top IoT programming languages:

  1. Java
  2. C
  3. JavaScript
  4. Python
  5. C++
  6. PHP
  7. C#
  8. Assembler
  9. LUA
  10. Go
  11. R
  12. Swift
  13. Ruby
  14. Rust

Those top four positions haven’t budged since the 2017 IoT Developer Survey, when Java, C, JavaScript, and Python topped the chart.

Looking deeper, though: The 2018 survey also ranked IoT programming languages by where the code will run: in IoT devices, gateways, or the cloud. For devices, C and C++ lead Python and Java, while for gateways, the order is Java, Python, C and C++. In the cloud, it’s Java, JavaScript, Python, and PHP.

Based on that data, according to Chicago-based software shop Intersog, “If it’s a basic sensor, it’s probably using C, as it can work directly with the RAM. For the rest, developers will be able to pick and choose the language that best suits them and the build.” Intersog also cited Assembly language, B#, Go, Parasail, PHP, Rust, and Swift as having IoT applications, depending on the task.

IoT programming languages that pay the most

Back in 2017, IoT World took a different approach, trying to suss out which IoT programming languages pay developers the most. The results?

“Java and C developers can, on average, expect to earn higher salaries than specialists in the other languages used in the IoT, although senior Go coders have the highest salary potential. Skilled Go developers are among the best paid in the industry, even though junior and mid-level Go developers earn modestly compared to their peers.”

App development firm TechAhead, meanwhile, named C, Java, Python, JavaScript, Swift, and PHP as the top six programming languages for IoT projects in 2017.

Finally, over on Quora, the arguments over IoT programming languages continue to rage, with one long-running thread attracting more than 20 answers ranging starting in 2015 and continuing through 2018 (Which programming languages will be most valuable in the IoT). The nominees mostly revolve around the usual suspects, with Java, Python, and C/C++ predominating.

A multilingual future for IoT?

Clearly, there’s a consensus set of top-tier IoT programming languages, but all of the top contenders have their own benefits and use cases. Java, the overall most popular IoT programming language, works in a wide variety of environments — from the backend to mobile apps — and dominates in gateways and in the cloud. C is generally considered the key programming language for embedded IoT devices, while C++ is the most common choice for more complex Linux implementations. Python, meanwhile, is well suited for data-intensive applications.

Given the complexities, maybe IoT for All put it best. The site noted that, “While Java is the most used language for IoT development, JavaScript and Python are close on Java's heels for different subdomains of IoT development.”

Perhaps, the most salient prediction, though, turns up all over the web: IoT development is multi-lingual, and it's likely to remain multi-lingual in the future.

Join the Network World communities on Facebook and LinkedIn to comment on topics that are top of mind.

Let's block ads! (Why?)


Thanks to Fredric Paul (see source)

No comments:

Post a Comment