The most amazing fact about the computing industry is the dramatic Improvement in the performance of computing machinery – a trend observed for three decades and projected to continue unabated. Not only is this trend exponential – a doubling of the power every two to four years – it also takes place at costs that are roughly constant for each machine class, CPU, minicomputer, PC or workstation. In other words, the price-performance drops the same way as performance increases.
In contrast to the hardware, the programs that make computers useful do not show anything close to steady advancement – let alone exponential progress. Historically, innovation took place in short intensive spurts, interrupted by long plateaus during which armies of programmers struggled to embody new concepts in useful software. In the field of personal computing, such a surge took place during the seventies, lead by the famous Palo Alto Research Center (PARC). The eighties, in contrast, are a rather dull period characterized by a predominant product orientation.
As the industry tries to implement the personal computing paradigm, more and more difficulties emerge. The operation systems that becalme standards fail even to capitalize on the ‘software engineering principles’ available at the time. The premature rush into standards froze innovation in that area and led to the phenomenon of grafting layer upon layer of code onto a dated base system.
A critical eyewitness may conclude that software is well on Its way to neutralizing the phenomenal gains of the hardware. The reasons are many, and there is no single patent answer. We observe, however, that despite claims of doing ‘software engineering,’ the most basic of engineering principles is rarely practiced: to strive for economy of means and simplicity of solutions. ‘Software engineers’ are still beating the lather, rather than using the razor of Occham!
It is precisely at this point that one of us started research: to build a system from scratch – led by the quote by Albert Einstein: ‘make it as simple as possible, but not simpler.’ The result of that research is Oberon: a language and an operating system for a personal computer or workstation.