I have always been interested in programming languages. The first one I used, way back when I was at university, was FORTRAN [4, not 77]. I then moved on to do a bit of assembly, BCPL, a few flavors of Algol, Simula 67, SNOBOL 4 – just about everything that was around at the time, except COBOL. Later, in the course of my career as a software engineer, I came back to FORTRAN and assembly, then Forth, RTL/2, Pascal, C, C++ and a bit of Java. Of course, at various times, some kind of BASIC must have featured in my portfolio.
I have often mused upon which language is best for embedded. With the possible exception of assembly, there is no ideal language, as they have all been designed for other purposes. The best bet seems to be C, which, if used carefully, gives the right balance between capability/flexibility and productivity. C++ has fair potential too, but has had a lot of bad press. So, I was interested to see publication of the latest research on the topic by VDC …
Their results show that engineers are using, for their current project:
C – around 80%
C++ – 45%
Assembly – 35%
Java – 13%
C# – 10%
The first 3 results sound about right to me. I suppose that Java is used around the periphery of embedded programming – for Android apps etc. – but I wonder if the users of the language really consider themselves to be doing embedded programming. The one that I do not buy is C#. As far as I know, this language is squarely targeted at the desktop and may possibly be used with Windows CE, but I cannot see how this gets it to 10%. It makes me question the true validity of this research.
Maybe I should do my own survey. What language(s) are you using [for real embedded programming]? Please comment or email.
Posted July 18th, 2011, by Colin Walls
- Why develop embedded software bottom up?
- The Greek tragedy – what is it all about?
- Time for a new programming paradigm?
- Working on the weekend
- Authors wanted. Can you write about embedded software?
- Desert Island Discs
- ESC Silicon Valley: The RTOS Smackdown Revival
- How to run a hotel
- malloc() – just say no
- What size drink would you like?