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.
![](https://eu-images.contentstack.com/v3/assets/blt69509c9116440be8/blta600cab267a93809/64cb56c176860437d65c428f/artificial-intelligence-503593_1920.jpg?width=700&auto=webp&quality=80&disable=upscale)
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.
It makes sense that a language first developed to program telephone switches would be a reasonable choice for embedded system development. C is as close to a lingua franca as exists in the world of software development: It's available on nearly every advanced embedded system platform that exists. For some platforms where it's not directly available, it's still the basis for the dedicated language used in the SDK.
The odds are good that professional programmers have at least a passing knowledge of C already -- and if they don't, an investment in learning C should pay off for both the programmer's career and your enterprise development efforts in the future. In today's terms, C is a bit of a throwback: It's procedural rather than object-oriented. It doesn't come with a built-in bias toward a graphical user interface, and it's compiled rather than interpreted. All of those factors, though, make it a strong candidate for just about any IoT development effort.
Where many of the languages mentioned here are large system languages that have been scaled down to fit into an embedded platform, B# was designed from the ground-up as a very small, very efficient embedded control language. The embedded virtual machine (EVM) that allows B# to run on a variety of different platforms only takes 24k of memory -- much less than the overhead needed for many of the other packages we've seen.
B# looks a bit like C# (which will be familiar if you or your team is accustomed to working on Microsoft .NET projects), but it strips out many of the features not required for embedded projects and adds support for the real-time control functions that are critical when making things happen in the real world.
If your project is going to live on embedded platforms that aren't as big and complex as a Raspberry Pi, then B# is a language that you will want to consider.
-
Read more about:
Internet of Things (IoT)About the Author(s)
You May Also Like