Twenty years on
Twenty years is a long time in human terms and even longer in the microprocessor industry. Here's a look at what's transpired.
For twenty years, Embedded Systems Design (formerly known as Embedded Systems Programming) has been the only professional journal targeted at the working embedded systems developer. Twenty years is a long time, a generation in human terms, though in the microprocessor industry more like three or four generations. Some of 1988's young engineers are now grandfathers. Processors have come and gone. Once dominant companies no longer exist, new ones formed, and some giant semiconductor companies got completely out of the business.
Twenty years ago, PCs had 80386 processors operating at 33 MHz, a speed pretty well matched to DRAM cycle times. They neither had nor needed cache. Those CPUs, built with the latest 1-micron semiconductor processes, sported a quarter million transistors. That was a hundred times more than in the very first microprocessor, and a thousand times less than in today's high-end parts.
Today, 45 nm devices are in production, which is 20 times more compact than those in 1988. I'm told that gate oxides are now an astonishing six or seven atoms thick. Processor speeds have increased by two orders of magnitude, and on-board caches today hold millions of bytes, which is more memory than most early ESP subscribers had in their entire computer.
The 80386 is no more, Intel's last parts having shipped in 2007. In 1988 that CPU was utterly state-of-the-art; today it's laughably slow. Sic transit gloria.
Although the Macintosh existed and gained lots of attention, it had relatively few sales. Microsoft Windows was in its second version but was unusable. MS-DOS ruled the desktop OS landscape and by 1988 was pretty much the standard development platform for embedded systems programmers, although some workstations and custom development platforms were in use. Most engineers had hard drives with under 100 MB capacity, not even enough for a copy of today's version of Microsoft Word.
Twenty years ago, the embedded industry was merely 17 years old (based on Intel's release of the 4004 in 1971), an acned teenager, undergoing growth pains. Most of us worked in assembly language. Only a few years had gone by since Ed Lee of Prolog fame convinced too many that assemblers were evil and real programmers coded in hex. A lot of devotees drank that poisonous Kool-Aid.
C wasn't common in embedded systems. In fact, the C landscape was a battleground as every vendor implemented its own dialects of the language. Manx C, K&R C, Whitesmith's C--all were subtly different. ANSI C didn't exist, though a committee was hard at work coming up with the standard.
Ada had an ANSI standard, though, and, in 1988 the U.S. Department of Defense had just mandated its use in most new software products it acquired. That requirement was eliminated a decade later. Now Ada's market share has fallen to just a few percent, losing out to C and increasingly C++.
C++ was available; the first edition of The C++ Programming Language had been published in 1985. But there was no standard of any sort, and the language, even in 1988, didn't have multiple inheritance and many other features now codified in the 1998 ANSI standard. Virtually no one used the language in the embedded world.