Originally Published: Wednesday, 19 April 2000 Author: Matt Michie
Published to: featured_articles/Featured Articles Page: 1/1 - [Printable]

Why Does Windows Have a Leaky Roof?

Linux is ugly. There is no consistency in the command line, configuration files, or the graphical interfaces. Sure, GNU is not UNIX, but Linux looks and feels like its misbegotten child. The kernel is monolithic and outdated in Computer Science. The Windows NT and GNU Hurd micro-kernels are designed with the benefits of more modern theory. So why has Linux taken off?

   Page 1 of 1  

Linux is ugly. There is no consistency in the command line, configuration files, or the graphical interfaces. Sure, GNU is not UNIX, but Linux looks and feels like its misbegotten child. The kernel is monolithic and outdated in Computer Science. The Windows NT and GNU Hurd micro-kernels are designed with the benefits of more modern theory. So why has Linux taken off?

The immediate answer is the open source development model, and that it can be distributed at no cost. In a capitalist society, products with lower prices tend to proliferate and it is difficult to beat free. There is something deeper going on however. A better questions to ask is, "why does Linux engender such user loyalty despite being based on 1970s technology?"

This question has been asked before, usually by someone trying to discredit Linux. This kind of attitude has been fostered by the software industry ever since Bill Gates overthrew the hobbyist programmer movement. Mr. Gates' genius was as a businessman and a marketer. Selling something as ethereal as software requires a change in the users' attitudes.

People like to be seduced by the new and flashy. This was the brilliance of Windows 95. It is layers of shiny chrome. By the time users realized the foundation was rotten, Microsoft had prepared the newer and flashier Windows 98. In some way, the defects of the previous product helped sell the next. If users were completely satisfied with the system they already had, why upgrade?

So even among the Microsoft faithful, you won't find loyalty to a specific product. Usually, it is based on a hope that the next upgrade will finally live up to the promise of perfection. Contrast this with those Linux users that brag about the uptime of that 486 in the corner running a 1.2 kernel!

Similar situations can be found in architecture. Too often, new multi-million dollar, flashy buildings end up with a leaky roof! To further the insult, the building is inflexible and static. The occupants are unable to modify and improve their surroundings. The sometimes the only solution is to "upgrade" to a costly new building. Ironically, something like an old barn that was built simply and sturdy continues to find new uses. The design usually has been around for hundreds of years, improving with time.

So it is with Linux. The simplicity of the design and the availability of the source code makes it easy to knock a couple walls out when needed. Instead of throwing away all the lessons learned from the previous generation, Linux makes incremental improvements. Why throw out 30 years of hard-gained wisdom each time you build a new piece of software? Successful programming is largely based on putting together typical templates that have proven to work. We don't redesign nails every time we build a structure, why should we do it with software?

Home improvement is a multi-billion dollar industry in the United States. People want to have the option to take out a hammer and make their own improvements. Not everyone has the skills to add a new bedroom to their house or to modify the source code to their operating systems, but for structures or software to last and improve, it needs to be possible.

This is why the homely barn and the plain operating system will outlast the flashy new building with a leaky roof, or the OS splashed with chrome and the blue screen of death. Instead of asking why a piece of software is using "1970s technology," start asking why software is ignoring 30 years of accumulated wisdom.

Matt Michie is a Computer Science student living in New Mexico. He maintains a small web page at http://web.nmsu.edu/~mmichie.





   Page 1 of 1