Thought Leadership

What language?

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.

Colin Walls

I have over thirty years experience in the electronics industry, largely dedicated to embedded software. A frequent presenter at conferences and seminars and author of numerous technical articles and two books on embedded software, I am a member of the marketing team of the Mentor Graphics Embedded Systems Division, and am based in the UK. Away from work, I have a wide range of interests including photography and trying to point my two daughters in the right direction in life. Learn more about Colin, including his go-to karaoke song and the best parts of being British: http://go.mentor.com/3_acv

More from this author

Comments

0 thoughts about “What language?
  • I prefer to be using Executable UML for coding my projects, with BridgePoint, natch! 🙂

    Most of our projects are in C, so the MC-3020 model compiler makes a nice fit.

    • I agree that the xtUML approach is very attractive for many types of development. I have been expecting it to become more mainstream for a long time, but it stubbornly refuses to do so. I think its day will come.

Leave a Reply

This article first appeared on the Siemens Digital Industries Software blog at https://blogs.stage.sw.siemens.com/embedded-software/2011/07/18/what-language/