Top 17 Programming Languages for Embedded Systems Work

From your car dashboard to your microwave, the world around you is sprinkled with embedded systems powered by microprocessors and microcontrollers. As consumers continue to embrace “smart” devices, the need for technologists who have mastered embedded hardware and software will only increase. 

And it’s not just the consumer realm: Embedded devices are present in pretty much every industry, from manufacturing to medical. Companies such as GE have wholeheartedly embraced weaving sensors and SoCs into jet engines and other machinery that powers the world.

For developers and other technologists interested in this segment, there are a few key things to consider. First and foremost, embedded systems often don’t have screens; and even if they do, there’s usually no need for complex UI and UX. User interactions and flow are often very different than what you would find in, say, a consumer mobile app (unless the embedded system outputs to a custom-made app, of course). The software can end up interacting with complex, customized, and sometimes low-power hardware. 

The bottom line is, if you aspire to become an embedded-systems software developer, you’ll almost certainly need to learn a lot about hardware, as well. Successful developers in this arena might supplement their software learning with knowledge of electronics and components. Many newer technologists have begun to master embedded systems by playing around with Raspberry Pi (here’s a quick walkthrough of Raspberry Pi development). 

And on the software side of things, which programming languages should you learn? IEEE Spectrum recently ran its annual analysis of top programming languages for the web, mobile, enterprise, and embedded arenas. Here are its top languages for embedded systems:

An aside about IEEE’s methodology: It pulls 300 programming languages from GitHub, then narrows that down to the 52 that earned the most search results in Google. Those 52 are subsequently analyzed using 11 metrics, including data from Twitter, GitHub, and Stack Overflow, in order to arrive at IEEE’s aggregate score. As previously mentioned, the organization then does separate “cuts” for mobilewebenterprise, and embedded.

As with so many other arenas, Python, C, and C++ are immensely useful when it comes to embedded systems, although many lesser-known languages such as Elixir and Ada are also utilized in this context. Keep that in mind if a career pathway in embedded systems interests you; some of the languages you learn in order to work with a “smart” device might serve you well if you move laterally into mobile, enterprise, or broader web work. 

12 Responses to “Top 17 Programming Languages for Embedded Systems Work”

  1. Design Engineer

    The fact that you think Labview or python could have anything to do with real embedded systems says you don’t even know what an embedded system is. I want to see Labview on an Arduino…

        • William

          Labview is in fact used in embedded systems. It is useful for complex systems that will never be mass produced. In many cases the cost of programming such a system in C or C++ more than offsets the cost of buying the special hardware and software of doing it in Labview.

  2. Verilog, VHDL were used for logic device (PLD, CPLD, FPGA) devices on designs at companies I worked at about twenty years ago. Are these programming languages even used today? What languages are used for microcontroller implementation?

    Could a current engineer using

  3. Accidentally posted previous reply before I completed typing. Am using my child’s tablet and fat fingered the screen.

    Could a design engineer currently working in this field please reply with their take on which language(s) would be useful to learn for embedded design.

  4. Robert Wilkinson

    I tried to get access to the original report, and so far I can’t do that. Maybe I shouldn’t make any comment without looking at the report, but in these days when facts are less important maybe I can be bold enough to make some observations.
    It really depends on what you mean by popularity. Do you mean what language is used in most devices in service by number, most devices in service by value, most devices being developed at the moment regardless of market value, or perhaps which language has the most questions posted on Google – or one of a million other possible definitions. I suspect that the IEEE article used some statistics that they could measure and to a degree verify as being accurate. I would guess that almost certainly they could not measure the first two measures of popularity.
    My guess would be that most popular by number of embedded devices installed would be assembly, using the native order code of the processor.
    Most existing devices by value would be C
    Most devices in development, driven by an army of hobbyists using Rasberry Pi, but arguably not embedded systems – Python
    Most devices in development and in fairly widespread use – Arduino/C**/C
    YMMV