This year marks Embedded System Programming 's 15th year of publication. Fifteen years represents about half the life of the embedded industry, which started in 1971 when Intel introduced the first microprocessor, the 4004. Before the 4004 an “embedded” system was a device with a minicomputer, a now-extinct machine that cost tens of thousands of dollars, weighed a lot, probably did not have a disk drive, and had core memory instead of RAM.
The first embedded developers were EEs, not computer science types. Early processors were finicky and difficult to use. The 8008 had a hardware stack just seven levels deep — push or call more than seven times and your program ran off into the weeds. RCA's 1802 didn't have a stack at all. Most work was done in assembly, or in PL/M, a crude, not-very-high level language Intel derived from a more useful IBM lingo.
Development systems used paper tape for mass storage, sucking in even the tools at a breathtaking ten characters per second over an ASR-33 teletype. I worked on a project that required three days to completely assemble the code. Debuggers were crude; early ones had a single hardware breakpoint the user flipped into a switch matrix on the computer's front panel.
Despite the poor tools and slow interaction with the machine, we built systems of astonishing complexity, cramming complete instruments, even with floating point curve fitting routines into 4k of ROM. I suspect that today our modern languages and decent tools would compress those months of work to a few short weeks, though ROM requirements might be a lot higher.
Tedious? Yep, but what fun we had!
Everything has changed in the intervening decades. The 32-bit processors we take for granted now weren't even in our dreams in the olden days. Tools have greatly improved, and our knowledge of software engineering has evolved to a much more mature level. Everything changes, except for the fun of building these systems.
Talking to developers at last week's Embedded Systems Conference in San Francisco only confirms the fact that we all love crafting new embedded products. Yes, polls suggest that job satisfaction levels are at an all-time low today. But it appears to me that most of the grumbling stems from unhappy work environments, not from the work itself. I heard lots of bitching about bosses, but saw the light dance in excited eyes when folks described their latest technical triumph.
As a kid I loved making things. That's why I became an engineer, and that's why I remain one. My career has always been on the border of hardware and software, as (to me) working up and troubleshooting a digital circuit is thrilling, almost as exciting as making motors twirl and LEDs flash by writing and debugging my code.
The people in my neighborhood complain noisily about their jobs. All except for the one engineer, who in his 60s still gets worked up talking about his latest 8051 project — while his wife's eyes glaze over.
Sometimes I despair that too many people have lost their passions in life. I rail against couch potatoes who seem to idly wait for their boring lives to end. At the Embedded Systems Conference, though, I saw a crowd of excited and passionate folks totally immersed in the arcane yet thrilling (to us) world of embedded systems.
Perhaps this is why I get so many emails from embedded wannabes. Our passions are contagious. Who wouldn't want a career that offers a decent salary and a ton of fun?
Jack G. Ganssle is a lecturer and consultant on embedded development issues. He conducts seminars on embedded systems and helps companies with their embedded challenges. He founded two companies specializing in embedded systems. Contact him at . His website is .