On 2020-05-22 7:09 AM, arnold(a)skeeve.com wrote:
Tyler Adams <coppero1237(a)gmail.com> wrote:
So, now Im curious about embedded systems. In my
limited experience, every
"embedded system" I programmed for from 2002-2011 had C as its primary
language. After 2011, I stopped programming embedded systems, so I don't
know after that. Why was C so dominant in this space?
First of all, because C is the (almost) perfect language for embedded
systems - tight code generated, language close to the metal, etc. etc.
To my recollection, in 1985 C wasn't firstly considered an embedded
language; it was considered an applications language (so was assembly,
but we could say that was tapering off).
I believe the explosion in popularity was due to that lesson from Unix,
that you could have a single portable language for both "system" code
and applications code, with a modern looking syntax, that could be self
hosted and compiled to reasonably efficient machine code.
All those tradeoffs and definitions are very different 40 years later,
of course. (And C was far from the first or only language that met those
criteria before 1975. It just happened to take off.)
Is it because adding
a backend to gcc was free, C was already well known, and C was sufficiently
performant?
Cygnus Solutions (Hi John!) had a lot to do with this. They specialized
in porting GCC to different processors used in embedded systems and
provided support.
Having to get a paid consultant doesn't exactly argue for the idea that
C compilers were "easy" - plus it's almost a decade after the period of
high growth. So this doesn't seem strong support for the thesis quoted
by OP.
--Toby
Arnold