11 IoT Programming Languages Worth Knowing - InformationWeek

InformationWeek is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them.Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.

IoT
IoT
Mobile // Mobile Applications
News
3/8/2015
12:06 PM
100%
0%

11 IoT Programming Languages Worth Knowing

Choosing which language to use for an Internet of Things project can be as big a decision as choosing a hardware platform. Here are 11 options to consider for your next coding project.
Previous
1 of 13
Next

Internet of Things (IoT) development projects are springing up at businesses all over the world. New hardware platforms make embedded systems in IoT applications easier to engineer than ever before. Once you've chosen the hardware platform, though, you still must develop the application software, and that's where more (and often, more difficult) decisions must be made.

Not so very long ago, your choice of programming language was pretty much dictated by your choice of hardware platform. More modern platforms that are based on open source standards and able to support multiple languages make for much more flexibility and, therefore, more choices. That's where we come in.

How do you decide which programming language to use in a particular IoT project? In some cases, your options still will be limited by your hardware platform. In others, though, you'll be able to choose from a language based on factors such as whether your enterprise dev team is already familiar with it, whether it works within the environment used by other components of the total IoT system, or whether it produces code that is smaller, more efficient, or more rapidly written than that of other options.

[Read about what you can and can't do with Raspberry Pi 2.]

There are 11 languages that float to the top of the consideration pool when it comes to programming embedded systems. They range from general-purpose languages like C++ and Java to embedded-specific choices like Go and Parasail. Each offers advantages and disadvantages. After you've reviewed the following pages to see what we've come up with, meet us in the comments section below to let us know what your preferred language options are when you're considering embedded and IoT development projects.

Attend Interop Las Vegas, the leading independent technology conference and expo series designed to inspire, inform, and connect the world's IT community. In 2015, look for all new programs, networking opportunities, and classes that will help you set your organization’s IT action plan. It happens April 27 to May 1. Register with Discount Code MPOIWK for $200 off Total Access & Conference Passes.

Curtis Franklin Jr. is Senior Editor at Dark Reading. In this role he focuses on product and technology coverage for the publication. In addition he works on audio and video programming for Dark Reading and contributes to activities at Interop ITX, Black Hat, INsecurity, and ... View Full Bio

We welcome your comments on this topic on our social media channels, or [contact us directly] with questions about the site.
Previous
1 of 13
Next
Comment  | 
Print  | 
More Insights
Comments
Oldest First  |  Newest First  |  Threaded View
Page 1 / 3   >   >>
danielcawrey
100%
0%
danielcawrey,
User Rank: Ninja
3/8/2015 | 1:01:58 PM
Foundational
C, C++ and Java always seem to be foundational languages that are used by all platforms. 

It's no surprise to me, then, that it is being used as the basis for programming in IoT applications. I think this is a good thing as well – it's going to capture the interests of developers with a solid computer science-based mindset. 
Curt Franklin
100%
0%
Curt Franklin,
User Rank: Strategist
3/8/2015 | 5:18:45 PM
Re: Foundational
@danielcawrey, many roads do lead back to C -- just as so many roads lead back to Algol. I agree that being able to use familiar languages will do nohing but help IoT development efforts. Not so very long ago an embedded development project meant spending time learning the very special language specific to the embedded platform. It's nice to be able to remove that particular step from the process.
maddoghall
100%
0%
maddoghall,
User Rank: Strategist
3/9/2015 | 9:40:09 AM
Assembler language for embedded systems: please do not
I coded in assembler language for eleven years, and used to teach it.  I still advocate that students learn assembler to help them with the study of operating systems, computer architecture, compiler design and so forth.

There are at least four problems with assembler: lack of maintainability, tediousness in coding, lack of portability and lack of being able to use new processor features over time.

In some of the smallest systems for IoT you may be tempted to use assembler, but when the next chip comes along or the architecture you have becomes multicore, or develops a level of cache, or uses other techniques that make it hard for assembly language coders to get the same efficiency as a higher-level language, you may be sorry.  Fight the urge...help the compiler do what you need it to do.
Curt Franklin
100%
0%
Curt Franklin,
User Rank: Strategist
3/9/2015 | 9:45:54 AM
Re: Assembler language for embedded systems: please do not
@maddoghall, I've spent time toiling in the assembler mines, starting with PDP-11 and IBM BAL. And I absolutely agree with you: assembler will teach you more about how the processor (and its related systems) works than will any other language.

And I also agree that it's terrible from a productivity standpoint. And I can't even imagine trying to do optimal multi-core assembler code -- it makes my head hurt just to think about it.
AnotherDarkReader
100%
0%
AnotherDarkReader,
User Rank: Strategist
3/9/2015 | 10:36:47 AM
Why no love for ADA?
It's a while since I was actively programming in C or ADA so I am curious as to your anti-ADA stance? I'd much prefer embedded control systems to be able to identify, trap and thus gracefully handle common errors that would otherwise crash languages such as C. Assuming, of course, that the runtime can fit :)
TerryB
100%
0%
TerryB,
User Rank: Ninja
3/9/2015 | 1:49:20 PM
Re: Why no love for ADA?
I'm a little curious also, Curtis. I went to Wright State Univ in late 70's/early 80's. They had a strong affiliation with Wright Patterson AFB (home to Air Force Logistics for those of you wondering significance of that base) so ADA was taught. I remember writing a subset of ADA compiler in Pascal for my Comparitive Languages class.

But never actually wrote anything in ADA in school or ever saw it in my biz career. I always thought outside goverment it wasn't used much? A friend of mine who graduated with same degree ended up working for TRW writing the embedded weapons system for the B2 bomber. That's why I perked up at your mention of ADA, it's in some pretty heavy duty stuff.
cwaser10
100%
0%
cwaser10,
User Rank: Apprentice
3/9/2015 | 5:45:44 PM
Programming Languages
I write (wrote) in FORTRAN, COBOL, PL/I, and (godforbid) APL.  Knuth claimed you could solve any problem in FORTRAN.  OK, the older languages could use some updates to deal with graphics, but APL  did just fine with the maps I drew.

Why do we need more languages?  This is looking like the tower of Babel.  Why no open source standard (not vendor or government sponsored)? 
Charlie Babcock
50%
50%
Charlie Babcock,
User Rank: Author
3/9/2015 | 9:36:14 PM
Go appears to be going strong
Enjoyed your descriptions of Go, Rust and Parasail, Curt. Among the languages I heard mentioned at the Linux Collaborative Summit, an event that attracts Linux kernel developers, Go was the one most frequently mentioned in favorable terms.
Susan_Nunziata
50%
50%
Susan_Nunziata,
User Rank: Strategist
3/9/2015 | 10:59:40 PM
Re: Programming Languages
@cwasser10: Tower of Babel is an apt analogy. My sense is that, with IoT specificaly, it's still such early days that there hasn't been enough time or experimentation for a de facto standard to shake out.
AnotherDarkReader
50%
50%
AnotherDarkReader,
User Rank: Strategist
3/10/2015 | 8:31:47 AM
Re: Programming Languages
Why does IoT require a de facto language any more than any other system? Wouldn't that stifle future language evolution?

What are needed are open standards for the inter-connection of IoT and non-IoT devices. Those already exist to a large extent, drawing on existing intercommunication protocols.

What language are / should these APIs be written in? Who cares, provided the API exists for your personal language of choice :-)
Page 1 / 3   >   >>
Slideshows
Data Science: How the Pandemic Has Affected 10 Popular Jobs
Cynthia Harvey, Freelance Journalist, InformationWeek,  9/9/2020
Commentary
The Growing Security Priority for DevOps and Cloud Migration
Joao-Pierre S. Ruth, Senior Writer,  9/3/2020
Commentary
Dark Side of AI: How to Make Artificial Intelligence Trustworthy
Guest Commentary, Guest Commentary,  9/15/2020
White Papers
Register for InformationWeek Newsletters
Video
Current Issue
IT Automation Transforms Network Management
In this special report we will examine the layers of automation and orchestration in IT operations, and how they can provide high availability and greater scale for modern applications and business demands.
Slideshows
Flash Poll