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.