About languages

Original author: Jack Ganssle
  • Transfer
A few years ago, the Keil compiler vendor (now owned by ARM) posted an announcement in the Embedded Systems Programming magazine (later known as Embedded Systems Design, now embedded.com) about its new compiler: COBOL for 8051.
It was a joke and it was posted on April issue. What a ridiculous and absurd product idea! COBOL for embedded systems? And COBOL for 8051! I called the company president and congratulated him on a great joke.
And he answered me that they received delivery requests!

This example characterizes certain approaches in choosing a language for embedded systems. Expectations are more important than reality.

You cannot read Slashdot or similar websites without seeing the discussions about languages ​​as they are. Is D the newest great way to write code. Or is it Swift? I keep getting emails from people wanting information on firmware development in C #. It’s not uncommon to hear from someone that the whole world is moving towards Java, and those who don’t do this risk being forever behind.

What do we really have? In the world of embedded systems, to a first approximation, only two languages ​​are used: C and C ++. Embedded.com data shows the main language used by its readers (I could not make up the picture, refer to the original, C about 60%, C ++ about 20% from 2005 to 2013 with slight deviations - pp).
Surprisingly, C ++ does not even catch up with C.

When choosing a language, you should consider the availability of developers. If you cannot hire engineers who are proficient in the language, then look forward to lengthy and costly training or prepare for failure.

I was once invited to help with a drowning project in Sweden that was done in C ++. I thought the language was reasonably chosen for this application. But why was this choice made? The company's vice president told me that he read at Business Week that C ++ accelerates development and facilitates code reuse, so he insisted on using it.
The company had 40 developers involved in the project and all of them, with the exception of a recent graduate, had no experience in object-oriented programming. The remaining 39 tried to learn in the course of work. This is the path to disaster. They gained skills as they progressed through the project. Everything would be in order if the product was not intended for delivery.

S has occupied this space for 30 years now, and there is no sign that he is leaving. He represents the best choice at the moment. I would like us to go to Ada, or, even better, to SPARK. But this will not happen until a sufficient number of trained engineers is available.

Do you think C and C ++ are with us forever?

Also popular now: