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
Comments
11 IoT Programming Languages Worth Knowing
Threaded  |  Newest First  |  Oldest First
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.
Brian.Dean
50%
50%
Brian.Dean,
User Rank: Ninja
3/11/2015 | 7:58:52 AM
Re: Foundational
C, C++, Java and JavaScript, provides the developer with the familiarity and scale that is required to get a project completed. At the other end, B# type languages are also good because they create newer functionality and frameworks to enable a productive IoT device. And one day, a newer platform will need to be created to bridge the gap between the C++, etc., world and B# world.
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.
Brian.Dean
50%
50%
Brian.Dean,
User Rank: Ninja
3/11/2015 | 8:20:47 AM
Re: Assembler language for embedded systems: please do not
@maddoghall, I completely agree, from an IoT standpoint, it is difficult to determine the processor architecture that will dominate the IoT segment. Great devices and ecosystems are being created everywhere that uses the x86, ARM or Power architecture but, it is too early to pick a favorite and lock a product into a vertical. 
Li Tan
50%
50%
Li Tan,
User Rank: Ninja
3/14/2015 | 7:06:13 AM
Re: Assembler language for embedded systems: please do not
I cannot agree with you more - IoT is fast growing and there is no clear outwitter at this moment. The industry should attempt different ways/tools of doing things instead of getting locked down in one cage.
Some Guy
50%
50%
Some Guy,
User Rank: Strategist
3/16/2015 | 1:11:53 PM
Re: Assembler language for embedded systems: please do not
Agreed. I always think of C as the world's first portable assembler. C++, C# have just extended it into the object-oriented approach. There are times, especially in embedded and IoT, where for timing or memory (or parts cost) constraints you actually need assembler, but those cases are rare. Especially if you learn how to code C efficiently (Efficient C by Plum & Brodie is likely out of print, but available for $0.01 on Amazon; there appear to be similar titles for C++). I recall coding a motor inverter on a microcontroller with only 512 bytes of code in C. It needed a couple of lines of assembly to initialize the data structures to save the 50 generated by the compiler, and that was well commented with the replaced lines of C code as the comments and the #asm compiler directive for the initialization assembler code. Could have done it with a separate subroutine and the linker, but didn't want to incur the extra call and return code space overhead. It's certainly a choice for more complicated timing-/space-critical optimizations because it limits what you have to recode on the next machine (although it assumes the next machine needs the same optimizations and can't forsee what else needs to be optimized).
SabineN855
50%
50%
SabineN855,
User Rank: Apprentice
11/18/2015 | 3:53:30 PM
Re: Assembler language for embedded systems: please do not
per my later comment...you might want to check out Julia. julialang dot org is the site. 
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.
LakshminarayanT008
50%
50%
LakshminarayanT008,
User Rank: Apprentice
4/11/2015 | 3:31:45 AM
Re: Why no love for ADA?
Why not Visual c#.I am using it for my learning of IOT using Netduino plus 2
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)? 
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 :-)
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.
Rob Purser
50%
50%
Rob Purser,
User Rank: Apprentice
9/22/2015 | 5:53:33 AM
What about data analysis?
Your article appears to focus on the edge node and data collection side of IoT systems -- what about analytics and visualization?  Didn't see anything about the programming languages there -- some of which are a lot more important for IoT systems than the more esoteric ones listed...
SabineN855
50%
50%
SabineN855,
User Rank: Apprentice
11/18/2015 | 3:51:46 PM
The Julia programming languages is one to note
It is important to note the Julia programming lanugage....stemming from the labs of MIT, I believe that this to be the language for the IoT.  Programming is easy for both engineers and programmers and the language is: 
  • Julia performs as well as C and Fortran

  • 10X faster than Python, R and MATLAB

  • Distributed parallel execution

I have found this to be an exceptional tool!!!!  I suggest an article on this, as it appears to be a real disruptive offering. 

 

 
JoshF813
50%
50%
JoshF813,
User Rank: Apprentice
5/17/2016 | 12:27:30 PM
node.js & C
For IoT I think node.js/javascript is the best option. The websockets offer real-time communication which if perfect for zigbee/zwave applications and keeping the user always informed of the latest events. 

C is also a requirement to write firmware for Arduino and other microcontrollers. 

With those two languages you can pretty much make anything you can dream up. 
Goyapa
50%
50%
Goyapa,
User Rank: Apprentice
5/23/2016 | 9:39:17 AM
Re: node.js & C
Yes we made as well good experiences with node.js an where needed C/C++ and also Python, but i would like to see C/C++ switched with Rust in near future, and a Embedded-OS written in Rust in the immediate step, like redox-os.
Sylvanus NuhC774
50%
50%
Sylvanus NuhC774,
User Rank: Apprentice
7/29/2016 | 4:21:40 AM
top programming languages
amongst all the programming languages, I prefere C/C++ though it's difficult. i also think VB should be included in the list.
joheben
50%
50%
joheben,
User Rank: Apprentice
8/31/2016 | 7:30:08 PM
Passing knowledge
Using C with only (as said in the article) "passing knowledge" of the language is a terrible idea. Null pointers and memory leaks would kill your software for sure. For good programmers with solid experience in using C, sure thing.


State of the Cloud
State of the Cloud
Cloud has drastically changed how IT organizations consume and deploy services in the digital age. This research report will delve into public, private and hybrid cloud adoption trends, with a special focus on infrastructure as a service and its role in the enterprise. Find out the challenges organizations are experiencing, and the technologies and strategies they are using to manage and mitigate those challenges today.
Commentary
Enterprise Guide to Edge Computing
Cathleen Gagne, Managing Editor, InformationWeek,  10/15/2019
News
Rethinking IT: Tech Investments that Drive Business Growth
Jessica Davis, Senior Editor, Enterprise Apps,  10/3/2019
Slideshows
IT Careers: 12 Job Skills in Demand for 2020
Cynthia Harvey, Freelance Journalist, InformationWeek,  10/1/2019
Register for InformationWeek Newsletters
Video
Current Issue
Getting Started With Emerging Technologies
Looking to help your enterprise IT team ease the stress of putting new/emerging technologies such as AI, machine learning and IoT to work for their organizations? There are a few ways to get off on the right foot. In this report we share some expert advice on how to approach some of these seemingly daunting tech challenges.
White Papers
Slideshows
Twitter Feed
Sponsored Live Streaming Video
Everything You've Been Told About Mobility Is Wrong
Attend this video symposium with Sean Wisdom, Global Director of Mobility Solutions, and learn about how you can harness powerful new products to mobilize your business potential.
Sponsored Video
Flash Poll