It's been said that programming languages are akin to religion. Engineers and developers will go out of their way to defend the use of their favorite language. (Perhaps it's more the pain of learning a new language that keeps us using the old). Surely you've seen many surveys on programming language preferences. As with all surveys, the results depend on who was asked.
IEEE recently surveyed its members, asking which languages they use. Given that IEEE represents electrical engineers, we naturally expect the results to differ from surveys taken in the software community. To EEs, software is usually a tool to make hardware work as opposed to being the product itself.
IEEE has published its 2018 list of top programming languages. Python came out on top overall. Other surveys showed different results.
IEEE's survey results highlight four use categories: web, mobile, enterprise, and embedded. You can view the results for any combination of the four through an interactive results page. Figure 1 shows the top 22 languages overall.
Figure 2 limits the results to embedded applications only. Even there, Python still tops the list. Do you agree? Embedded systems designer and prolific author Jack Gnassle doesn't. “The data is sort of meaningless,” wrote Gnassle in an email to EE Times. “It's like asking what is the most popular hand tool. A woodworker might say a hammer, but a machinist might say a mill. It all depends on the domain that one is working in. In my biz, embedded, we know that C is king as it usually scores 60% to 70%. But I bet few use it for programming Windows applications or iPhone apps.”
“To make it even odder,” continued Gnassle, “in the embedded space, they rank C++ above C, but every survey refutes that — even AspenCore's!”
Gnassle has a point. AspenCore's EE Times' and Embedded.com's own 2017 survey contradicts that of IEEE. Not only is C well above C++, but both bury Python. According to IEEE, Python tops C and C++ even among embedded systems engineers.
To continue Gnassle's point that the results depend on who you ask, according to the TIOBE Index for August 2018, Java is on top, followed by C, C++, and then Python (Figure 3 ). TIOBE produces software for testing software.
David Ewing, president of Firia, notes: “Lots of K–12 schools are teaching Python nowadays. In fact, our company has a product aimed at teaching coding, and we do it with Python on microcontrollers. The fact that an extremely powerful language used widely in industry also happens to be a great starting point for learning to code is a testament to the design of that language. It speaks to the growth we've continued to see in Python adoption.” If Ewing is right, the Python's popularity could continue to grow.