Chapter 12: Brave New (Unix) World

Overview

A map of the world that does not include Utopia is not worth even glancing at.

-Oscar Wilde

If you listen to the marketing messages of most software companies today, you will find that each espouses its own particular path to software utopia: "Our solutions integrate systems"; "Our process accelerates the development cycle"; "Our graphical user interface gets you going quickly"; "Run your database applications at lower cost." There is no doubt that they have spent countless hours and mountains of dollars rationalizing their approaches. They make their arguments sound pretty convincing. And many of them have killed more trees getting their messages out than we've bulldozed to make room for housing.

I'm no oracle, but I have made a simple observation. The Unix operating system and its concomitant philosophy have been around for more than 25 years. In an industry where the pace of innovation is constantly accelerating, it is most unusual that a single approach to system design and software architecture has endured for so long. Not only has it weathered the storms of thousands or perhaps millions of critics, it continues to thrive and is still gaining ground today. In fact, as the latest incarnation of Unix, Linux stands to overwhelm the world's largest software monopoly in the near future.

About every 10 years or so, a major paradigm shift has hit the computer world. In the early 1960s, mainframe computing was staunchly entrenched in computer labs everywhere. Then, in the 1970s minicomputers and timesharing engendered the golden age of third-generation hardware. The 1980s saw the advent of the graphical user interface and planted the notion that people might consider a computer a personal thing. In the 1990s, we saw the commoditization of personal computers and the rise of global networking with the Internet and the World Wide Web. In the new millennium, we are experiencing mass decentralization, mass customization, and even unprecedented cooperation with an industry phenomenon known as "open source."

Interestingly, Unix has not only been a part of those paradigm shifts, it has usually acted as a catalyst for most of them. Beginning with the minicomputer, Unix spread (some might say, like a cancer!) throughout the computing world. The X Window System, developed on Unix, was the first graphical application platform that caught on in a big way. The Apache Web server, first run on Unix, grew to become the leading Web server on the Internet. The appeal of Linux, an unencumbered implementation of Unix for the personal computer, has mobilized a massive army of programmers intent on making all important software applications freely available to everyone.

Each of these paradigm shifts has created waves of opportunity for resourceful individuals and companies that realize early on that things are changing fundamentally. Those that sense the paradigm shift earliest often stand to ride the wave the best. The Unix adherents of yesteryear and the Linux advocates of today were and are open to these world-shaking transformations.

Despite the fact that Unix and its philosophical adherents have always been on the cutting edge when major technological advances occur, some would claim that Unix and even Linux are stale, worn-out technologies that went out with the minicomputers of yesteryear. It's a brave new world out there, they say. It's a GUI world. It's a networked world. It's a commodity world.[1] It's a wireless world.

It's a Unix world, really. Because Unix has demonstrated time and again its amazing ability to adapt to whatever comes along. When people said it was too expensive to run on anything but business servers, Linus Torvalds's Linux[2] proved them wrong. When people said that it would never compete with Microsoft Windows on the desktop, the Linux-based KDE developers saw this as a challenge. And-this one's my personal favorite-today, while many people consider Windows to be a better game platform than Linux, I would point out that people were running games on Unix long before game pioneer Atari sold its first game console.

So as the technology race continues, the Unix philosophy will continue to be a driving force, not only in operating-system design, but in other areas of innovation as well. In this chapter, we're going to look at how the Unix philosophy has made its way into other projects, technologies, methodologies, and design approaches. Many of these technologies claim to bring about a kind of nirvana or a subset of a software utopia. That's fine. It's okay for them to make these kinds of claims if that will get them noticed. At least we become aware of them that way. Many of these efforts are full of very good ideas. My only regret is that I cannot participate in all of them, for each holds a particular fascination for me either because of what they have accomplished or what they promise.

To make it easier to identify those tenets of the Unix philosophy that apply to a particular endeavor, you can refer to Table 12.1 for a list of acronyms used throughout the rest of this chapter. The major tenets are in caps and the lesser tenets are in lower case.

Table 12.1: Acronyms Used in Chapter 12

SMALL

Small is beautiful.

1THING

Make each program do one thing well.

PROTO

Prototype early, as in "as soon as possible."

PORT

Choose portability over efficiency.

FLAT

Store data in flat ASCII files.

REUSE

Use software leverage to your advantage.

SCRIPT

Use scripts whenever possible.

NOCUI

Avoid captive user interfaces.

FILTER

Make every program a filter.

custom

Allow the user to tailor his or her environment.

kernel

Make operating system kernels small.

lcase

Use lowercase and keep it short.

trees

Save trees.

silence

Silence is golden.

parallel

Think parallel.

sum

The sum of the parts is greater than the whole.

90cent

Look for the 90-percent solution.

worse

Worse is better.

hier

Think hierarchically.

Most of these technologies also have a primary theme or overriding concept, which I will highlight at the beginning of the discussion of each.

[1]As of this writing, you can purchase a 1.1-GHz personal computer running a version of Linux from Walmart.com for less than USD $200. The Windows version is slightly more expensive. Of course, by the time you read this, you're probably thinking that system is overpriced. That's okay. As we've said before, next year's machine will be faster. And cheaper, too!

[2]Unix even adapted by changing its name to Linux because the market perceived that Unix was too old to make it in the postmodern computing era. But everyone knows that Linux is simply the latest implementation of the Unix philosophy.



Linux and the Unix Philosophy
Linux and the Unix Philosophy
ISBN: 1555582737
EAN: 2147483647
Year: 2005
Pages: 92
Authors: Mike Gancarz

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net