How C# Really Came About
A long time ago there was a company named Sun Microsystems (now owned by Oracle Corporation.) Like many computer companies of the day it had proprietary computer hardware and operating systems. Unlike most computer companies of its day, it had direct involvement with embedded systems and to some extent video games. The embedded systems market was becoming an expensive pauper's child and some high minded individuals at Sun looked to solve this problem. Indeed, they could not achieve their vision of Internet connected appliances unless they could create a prepackaged and ready to program embedded computer for only a couple of dollars.
Embedded systems are so prevalent in today's world that most of you cannot imagine life without them. That coffee maker which you program to start brewing at some point in the morning has an embedded system in it. That DVD player and the remote control for it? Yep, both of them. If you happen to drive a car which was builtin the past ten years it has somewhere between dozens and hundreds of self contained embedded systems on board.
Let's consider for a moment the DVD player that retails for $40 in the U.S. That thing most likely has a production cost of less than $8, including all packaging. How do I figure that? Most retailers purchase inventory via a distributor, not direct from the manufacturer and both of them will expect at least a $10 cut of that $40 list which leaves
about $12 per unit profit for the manufacturer, less shipping costs, warranty claims, and returns.
Just how much do you think they actually spent on the embedded systems in both the player and the remote control? It was pennies. Some little geek had to spend months of their lives burning ROMs, continually shrinking the footprint of an “application” which continually was getting new features added. He/she wasn't coding with a high level language, but working in the assembler language for the chosen CPU trying to squeeze everything to the cheapest CPU and smallest chip count. If someone in purchasing got a “better deal” on a different CPU, the little geek had to start over.
The original concept was an embedded Java processor. Almost everything on a single chip on a little card with connector pins for serial, parallel, network, and possibly even some display type device (normally LED connections.) The unit would come in several different flavors and sizes. It would contain both flash ROM and actual memory so that it could be updated on the fly. The production cost would be driven down by selling billions of units.
Yes, the current embedded system model would still be cheaper, but this model would be both cheap and fast. Code would be transportable between devices so instead of taking 610 months to develop the next version programmers could have it to the testing group in 610 days. The presence of Internet capabilities, not to mention all of that RAM meant features which were once science fiction could easily be implemented. Rather than simply displaying some cryptic flashing lights or a fault code, your washing machine could signal the manufacturer it needed repair and what parts it needed. It would send along its serial number and the message would actually get to the service department of the vendor who sold it and the service department would call you to