Beautiful OSes

6/25/2004 2:14:14 AM

Beautiful OSes

Don Box has been enjoying himself, reciting the history and failures of Taligent. Taligent was this ambitious, object-oriented operating system under development by IBM and Apple to leapfrog Windows. It cost the two companies dearly and ultimately resulted in beautifully produced books. He later pointed to an online version of the books, which apparently are no longer in print.

I admit that I am in love with beautiful operating systems, so, without any practical reason for doing so, I actually purchased a used version of Inside Taligent Technology.

I wanted to learn more about the state of the art design of "Pink," in the belief that it will enable me to write good software. Yet some nagging questions naturally occur, if it was great software engineering, why did it take so long to develop and why didn't it ever ship?

I know that I am simplifying things (there are market and management issues); but I sometimes feel that I pursue elegance at the expense of timely delivery, and I just wonder whether my priorities are misplaced. It's often too easy to fall in love with technology and forget about the business objective.

Some beautiful software do ultimately ship. Java, which is questionably an operating system, was successful, as did Cocoa on the Mac, which is based on NextStep, another beautiful OS. I also think .NET is both beautiful and successful.

One the other hand, there are counterarguments:

  • NextStep was actually one turn away from oblivion, before Apple purchased it.
  • MFC endured one total rewrite in which it suffered from "OOPaholism," in the words of one developer. The problem was that the various different objects, developed in isolation, didn't integrate very well, but, in the second time around, Microsoft opt for a thin object-oriented wrapper over the Windows API. MFC was prettier than Windows, but not beautiful in my opinion, as it didn't pursue MVC and other object-oriented concepts fully. It was a compromise between pragmatism and object-orientation, which did proved commercially successful.
  • Avalon is beautiful, but the first of its two incarnation, actually was in many ways more beautiful, but, among many problems, the Windows Shell team wouldn't use the initial version because it performed poorly (hmm, beautiful and fat?).

I recall an early article by an academic researcher, who predicted C#, would fail, because it was too beautiful ("pure" was probably the word he used). In its attempt to smooth over inherently disparate concepts in order to establish a continuous integrated language, such as by unifying the type system through boxing, it would not map well to the realities of a necessarily discontinuous world. He did neglect to mention C# has unsafe programming. Of course, C# is doing well.

A number of years ago, there was a conference on software engineering. Microsoft, at the time, had a very poor reputation in software engineering: Win9x was unstable, some applications shipped with poor quality, and others slipped for many years of development, often without ever shipping. Despite this, one panelist stated to the horror of many in the audience that, since Microsoft makes the most money in software, that we should study how Microsoft develops software. Others chimed out that Microsoft, with it's infinite cash reserves from its operating system lock, is able to buy its way out of software engineering problems. (I do still wonder why Microsoft does not have more software in its portfolio, given its size.)

While Microsoft was not known for elegance, it was ruthlessly pragmatic. Microsoft has been able to regularize its software release cycle by aggressively pursuing date-driven rather than feature-driven releases. With a history of individual applications slipping endlessly, Microsoft pulled of the feat of simultaneously shipping every Office application together, starting with Office 95. In the prior version (4?), Word and Powerpoint shipped a year after the matching version of Excel.

On the other hand, Apple, which is widely admired for elegantly designed software, probably has a history of delays and missteps that exceeds that of Microsoft.

 

Comments

 

Navigation

Categories

About

Net Undocumented is a blog about the internals of .NET including Xamarin implementations. Other topics include managed and web languages (C#, C++, Javascript), computer science theory, software engineering and software entrepreneurship.

Social Media