It s the content, stupid

10.1 It's the content, stupid!

If you were born after the late 1970s, your first meaningful encounter with a computer was probably with a WIMPy (Windows, Icons, Menus, Pointers) personal computer. Your computer has always had a GUI where you would point at and click on small graphical images called icons. As far as you're concerned, Microsoft invented windows and menus and all the visual delights that make PCs so much fun.

The truth is that Microsoft didn't invent the WIMP user interface after all. Xerox-yes, the copier people-did. The Xerox Star, introduced in 1981 by Xerox's Palo Alto Research Center (a.k.a. "Xerox PARC") was the first significant release of a product with a WIMP user interface. Other early systems, such as Smalltalk and the Alto, embodied some of the ideas found in the Star, but in the Star, the developers brought all of the elements together for the first time.

Many aspects of the Star system can still be seen in Microsoft Windows, the Apple Macintosh, and the various Linux GUI environments available today. The desktop metaphor, where the user is invited to view the screen objects as objects found on top of one's office desk, came from the Star. The use of bit-mapped displays, icons, and the mouse all originated in the Star's user interface.

Microsoft did not invent the World Wide Web, either. Tim Berners-Lee holds that distinction. His vision for the Web was based not on dreams of becoming a wealthy information czar, but on a sincere desire to see people communicate better. He and Robert Cailliau began implementing his vision by writing a simple, no-frills Web browser in 1990 at CERN, the European physics laboratory straddling the French-Swiss border.[3]

The WIMP user interface and the World Wide Web exist primarily for one reason: content. The Star's bit-mapped display brought us the ability to display photographs, animations, video, and more readable text. The Web gave us the means to move the data from powerful servers to the user's machine for display. The combination of these two technologies facilitated the delivery of rich content to the desktop.

In the early days of AltaVista, the first "super search engine" of the Web, the developers were fond of saying, "It's the content, stupid!" What they meant by this was that it doesn't matter whether you have the fastest search engine, the brightest graphics, or the flashiest desktop. Users will be impressed with flash and glitter for only so long. Eventually, you must provide information that meets the needs of the individual. Otherwise, the user will look elsewhere. If you don't have content of real value, you have nothing.

While Microsoft Windows helps deliver content to the desktop, Microsoft doesn't create the content. Others generate the content: the syndicated news services, the film studios, the independent producers, and the millions of users of word processors, spreadsheets, and graphical editors. Windows only provides the vehicle to deliver that content. For all its flashy GUI and slick desktop, Windows provides the sizzle, but it doesn't provide the steak. The steak, in this case, is the application's content. How you deliver the content is important, of course. But the GUI's importance is dwarfed by the content that you're trying to deliver.

Indeed, content rules. In fact, content is so important that even if computers didn't exist, the producers would still find a way to get it to you. In the beginning, content passed from village to village by word of mouth. With the invention of the printing press, content passed from city to city by the written word in the form of books and newspapers. Later on, radio and television became the media for delivering content to huge masses of people. The World Wide Web and the Internet are merely the next means of delivering the all-important content.

If Microsoft, Linux, and the Web didn't exist, the content would still find its way to you. It's that important. One way or another, if the information matters, you will get it. There are people who have commercial or ideological reasons for seeing to it that it does. And they will use whatever means is available to get it to you.

So whether or not a GUI is available is of secondary importance. What counts is the information being conveyed. If you are not seeing the content that matters to you, you will send the messenger on his way and look for the next messenger.

But aren't some kinds of delivery mechanisms better at delivering content than others? In a word, yes. While you may be tempted to think that video has no equal, however, you may be surprised to learn that it pales in comparison to the power of the written word, even in this day and age.

Let's take a look at the three main delivery mechanisms: visual, audible, and textual. By examining these, it is hoped that you will begin to understand why Unix, which is primarily a text-oriented system, is still incredibly powerful, even in the age of CNN and MTV.

Let's start by looking at the visual media first, the least powerful of the three. Huh? What do you mean, "the least powerful of the three"? Everyone knows the power of video. Stick with me for a minute. You may think differently in a page or so. Keep in mind that we're driving to a conclusion about Windows-a visual type of operating system-versus Unix, a text-oriented operating system.

10.1.1 Visual content: "I seen it with my own eyes."

No doubt about it; the visual media are powerful indeed. They are particularly adept at evoking emotion in the viewer. When you see something, it's as if a bond takes place between you and the scene on the screen or page. Whether in a positive or negative way, most visuals will cause you to respond in an emotional fashion.

There are two kinds of visual media, static and dynamic. Static visual media are drawings and photographs. In the age of the World Wide Web and the Internet, static images abound. Nearly every Web site that one visits contains static images. Many of the large commercial sites display so-called "banner ads," commercial graphics designed to lure you into clicking on them to whisk you away to another Web site where you're likely to spend money on a product or service that you have been selected to receive information about by virtue of your demographic makeup.

Static images are normally easy to produce, making them a relatively inexpensive medium. Photos can be quickly captured these days with digital cameras or as static frames obtained from video sources. Other graphics can be produced using common graphics applications such as Adobe's Photoshop® or the popular open-source application known as "The Gimp."

One drawback to static images is that they can be difficult to catalog and retrieve without some sort of textual explanation of their content. For example, if you were told to locate a photograph of a lumberjack chopping down a tree, you could spend a long time poring over thousands of photos to find one. Large stock photo services make this task much easier by providing text descriptions of photo contents. Consumers of these services then search through the text descriptions-usually with the aid of a sophisticated search engine-to locate the photos they are interested in.

On the typical computer desktop screen, static images are often used as icons to represent a function to perform or an object to be manipulated. Because people can normally recognize images faster than they can recognize text, users often find that the icons accelerate their performance when using GUIs. The problem is, until you have some idea as to what the icons represent, the icons can actually slow you down. You may even find yourself referring to the text accompanying the icon to describe its purpose.

Dynamic visual media today largely consist of video and, to a lesser extent, film. While film and video have obviously been hugely successful with the introduction of the motion picture and television, they haven't had quite the impact on the written word that some predicted they would. While many people prefer to watch the evening news on television, for example, surprising numbers of people still prefer to read a newspaper or magazine article. And although television has long held the top role as entertainer in many households, it is beginning to lose ground to more interactive pursuits, as new forms of Internet-based entertainment become available. Video may have killed the radio star, but on-demand forms of interaction are now killing the television star.

Although static images are relatively cheap to produce, video has proven to be prohibitively expensive to produce at more than rudimentary levels of quality. It often takes large amounts of computing power and storage to produce even short video segments. Putting together reasonable video presentations takes a level of skill that goes beyond that required to operate a still camera. Also, with today's video formats, a two-hour film requires more than 500 MB of storage. Contrast this with static images; hundreds or even thousands of images can be stored in less than a gigabyte of space.

Video still has the same drawbacks as static images when it comes to cataloging and retrieving video clips. Some sort of textual representation is still required to make it easier to retrieve video clips on particular topics. The problem is compounded further by the large amounts of storage required for the actual video clips. Imagine if one had a library of 100,000 video clips without labels. Locating one that shows clever animals outsmarting stupid people would be an arduous task.

It should be evident thus far that while visual media can be powerful and dynamic, they still require "backup" assistance from textual representations. Without the text used for purposes of search and retrieval, producing images and videos would be a labor-intensive process and the costs would soar. Hence, the amount of video available would be reduced to a small trickle without textual representation. While the text used to label the visual media isn't quite as "good" as the visuals, it is cheap and effective. It's the "worse is better" idea again that we spoke of in an earlier chapter. Hmmmm. Maybe there's a pattern here? Picture that in your mind while we move on to audible content.

10.1.2 Audible content: "Can you hear me now?"

Audible content, another component of multimedia, has been around longer than video but not quite as long as static visual media. It consists of raw audio, music, and the spoken word. Let's take a (brief) look at each of these.

Raw audio represents any of the innumerable sounds that the human ear can perceive. Many of these have been captured on magnetic tape or digitized and stored as audio files on computers. Often referred to as "sound bites," they can be anything from the frantic blasts of a gunfight in East L.A. to the almost imperceptible sounds of stillness on a mountain lake at sunrise.

To add more words to the audible content known as music would only be redundant. Music is a communications medium that traverses international boundaries and generation gaps as easily as one steps over cracks in a sidewalk. Many volumes have been written about music, as something both to create and to enjoy.

Music shares many of the same characteristics as visual content. It can be relatively inexpensive to produce-especially in the case of live performances-or it can be painstakingly recorded and engineered in a studio using equipment costing huge sums of money. With both visual and audible content, the quality often depends on the amount of money one is willing to spend.

Music also shares the ability of visual content to communicate emotion to the individual. Just as people often associate feelings of joy, fear, or sadness with particular motion pictures, so do people associate similar feelings with favorite songs heard down through the years. And with so many motion pictures these days containing songs by popular artists on their soundtracks, the line between the two continues to blur with each passing year.

Finally, the spoken word consists of audible content that could be represented in textual form. The spoken word can be anything from news broadcasts and radio talk shows to historic speeches. It frequently appears in situations where listeners find their time divided between absorbing the spoken word and completing some other task, such as commuting or doing household chores. Information that is carried in print media frequently crosses over to the spoken word, so that the same information found in, say, a newspaper such as USA Today will also be detailed in local and national news broadcasts.

One disadvantage of the spoken word is that it is language-sensitive. The speaker must speak the same language-in some cases the same dialect of the language-as the listener. Otherwise, little communication occurs, and the value of the spoken word is greatly diminished. Even worse, in some instances, the spoken word can be culturally biased, as words can have different meanings depending on the context and the background of both the listener and the speaker. Human-based translation services do exist, but the cost of good interpreters and the immediacy of the spoken word often preclude the translation of most spoken content into one's native tongue.

All three types of audible content share a common need for cataloging and categorization in order to be useful. All musical productions, sound sites, and recorded speeches must be documented in some sort of textual medium that allows for reasonably rapid retrieval. For example, suppose one had a collection of a thousand musical compositions on compact discs without labels. One can only imagine the amount of frustration one would have in seeking out the particular piece one was interested in listening to at any given time. The text labels, even if they are worn or barely legible, help classify the contents of each compact disc.

Should the music be stored on another medium, such as on a personal computer, the same text-cataloging requirement still exists. Suppose that instead of a collection of compact discs, one had stored the 10,000 songs on a computer as a set of files with similar names. This obviously would not be very useful. By comparison, if the names of all the songs were stored as a list in a flat ASCII file or a simple database, locating your favorite song would be a simple task. Whether the catalog text data is printed on labels or stored in a database, the value of such data cannot be overstated.

It should be evident by this point that while the visual and audible media are powerful conveyors of imagery and emotions, they cannot stand alone. They need assistance from textual data catalogs once the amount of content exceeds, say, several dozen pieces. Indeed, without textual representations used to identify those media, the number of films, speeches, and musical compositions within your grasp would be limited to a minuscule fraction of what is available today. Text is a fundamental enabler for audio and video media. That's why text is the most powerful form of content of all.

10.1.3 Textual content: "Video killed the radio star, but it couldn't kill the tabloids."

While visual and audible content have emotional impact, it is the written word that keeps us coming back for more. A Web site may have glitzy graphics and the coolest sounds, but these will not hold your interest forever. Unless a site has good written content of interest to you, you will not stay for long, and you won't be back again.

Many people believed that once the television came along, it would be the end of radio. For the most part, radio has succumbed to the onslaught of television. No longer do people rush home to listen to the latest radio broadcast. They might listen to news on their car radio, but only until they can get home and turn on CNN or watch their favorite television show. Radio simply doesn't hold the appeal that it once did. Why get half the picture on the radio when you can get all of it on video?

While video has all but killed the radio star, video is finding its dominance usurped by a still more powerful medium-the Internet. The same people who used to watch television for hours at a time are finding that they are equally addicted to the interactive aspect of the World Wide Web, perhaps even more so. And what is the most popular form of content on the Web? Here's a clue. It's not music files (although these are indeed popular), and it's not video clips. It's text, pure and simple.

The reason people flock to the Internet and the World Wide Web is to absorb textual content. The Web is the largest library in the history of man-kind, and it's ever-changing. Whatever your interests, no matter how obscure, you're liable to find something about it somewhere on the Web. And nearly all of the content is text. For every video clip or music file, there are thousands of Web pages containing minimal graphics and lots of text.

Text rules. Why? Despite the onslaught of radio, films and television, newspapers exist and are still flourishing. While everyone first thought that the computer would turn our world into a paperless society, people today find that the amount of junk mail arriving daily is a testament to the fact that textual matter-both printed and online-is alive and well and growing in your mail box faster than Caltiki, the Immortal Monster. [4] Let's take a look at some of the reasons why text content is so powerful and why it has continued to flourish over the years.

Text is an inexpensive way to store and transmit ideas. In terms of storage space required, text is considerably more compact than audio or video. For example, this entire book fits in less than 1 MB of space. It costs a fraction of a cent to store it on a CD or DVD. If I were to record the book as an audio book, the amount of storage required would be hundreds of times more than that required by the text files. As a video presentation, it would be even more costly.

Transmittal of textual content across networks is also inexpensive. Even as network bandwidth improves, textual material will always be less expensive to transmit because of the vast difference in size between text files and audio or video files. On a fast network, this entire book can be transmitted in a fraction of a second. Other forms of content take longer, possibly substantially longer, depending on the sizes of the files and the network throughput rate.

For the 2002 Winter Olympics in Salt Lake City, Qwest Communications built a network with a capacity of more than 388 trillion bits per second. [5] To put it into perspective, that's the equivalent of transmitting the entire U.S. Library of Congress-currently more than 17 million volumes-twice per second. With network capacity like that, it is theoretically possible to transmit all of the world's books in a few minutes (or less!). Audio and video aren't nearly as efficient. With textual content, you never have to worry about having enough bandwidth.

Text can be indexed and searched highly efficiently. What good is the ability to transmit at 2 LOCS (Libraries Of Congress per Second) unless you know what book to look in? Here is where today's ultrafast, gargantuan text search engines come in. As of this writing, Google, the popular Internet search engine, indexes more than 2 billion Web pages, over 700 million Usenet forum messages, and over 35 million non-HTML (i.e., non-Web page) documents. Despite quantities like these, with a little forethought one can locate most needles in this megahaystack in a few seconds or so. Try doing that with your family's 2-billion-page photo album. Images may be interesting to look at, but you'll never find them very fast without text.

Google also bears a closer look for its technical architecture. Interestingly, Google doesn't employ huge RISC servers from the major Unix system vendors. It uses more than 10,000 off-brand Intel-based PCs running Linux in a cluster arrangement. The PCs are rack-mounted and connected by 100-Mbps network links. So the world's fastest text search engine runs on a large array of cheap, small PCs using a free, open-source operating system.

Not only is smaller better, it's cheaper, too. The calculation of Microsoft Windows license fees for 10,000 PCs is left as an exercise for the reader.

An interesting feature of Google and other major text search engines is that they offer instant machine translations of foreign-language pages into many other languages. The KDE Konqueror Web browser found on Linux even has a "translate this page" menu option that goes to the AltaVista Web site and translates your current page from and to all of the popular languages. But wait; we're getting ahead of ourselves here.

Text can be inexpensively machine-translated into other languages. Machine translation of text has been the Holy Grail of linguists since as far back as the seventeenth century. The idea of automatically translating text from a foreign language to your own has been the subject of countless science-fiction stories down through the years. It wasn't until the latter part of the twentieth century, however, that it became not only possible, but practical. Powerful servers on the Internet have made machine-translated text a commodity today. Virtually all of the major search engines provide a means of translating the contents of Web pages between the most popular Western languages and even a few Asian ones. Science fiction, as in many other cases, has become science fact.

Machine translation (MT in linguistic lingo) is far from perfect. But relative to the cost of having a human translator at your beck and call during all hours of the day, MT is cheap and effective. It doesn't offer the same level of accuracy as a human translator. It's particularly ineffective in dealing with idiomatic expressions in most languages unless the expressions are handled explicitly. So in a sense, MT is worse than human translation. But what have we said before about cheap and effective things? That's right. Worse is better.

What about motion pictures? Does text have an advantage over audible and visual content in this case? Doesn't one get some idea of what a foreign film is about by watching the moves and expressions of the characters? That's partly true. Once again, video and audio tend to be fairly good at transmitting emotion. But to really understand the subtleties of what is happening in, say, Wo hu cang long (Crouching Tiger, Hidden Dragon), one has to read the subtitles. Again, text rules. It holds the key to understanding.

Text can be very precise in its meanings. The first time one sets one's eyes on a new GUI, one becomes acutely aware of the fact that icons and images are very imprecise means of identifying objects. If you've seen similar GUIs in the past, the knowledge of what the icons and images on the screen represent is transferable. You won't have much difficulty identifying word processor documents, programs, and so on. Icons and images are optimally useful in helping you quickly identify what you have.

Unfortunately, icons by themselves provide only a symbolic representation of something. Problems occur when you have more than one of those somethings and you need to locate a specific instance. At that point, you need an identifier more concrete than a set of pictures that all look the same. You may be able to remember that clicking on the document icon on the left brings up your doctoral thesis and clicking on the document icon on the right brings up a collection of jokes from your buddies. But can you remember when you have a folder containing, say, a dozen similar icons? How useful would it be if your favorite Internet search engine returned two hundred document icons per page as a result of searching for "Linux kernel"? You would gladly pay $50 for a "Get Out of (Icon) Hell Free" card long before you finished viewing the other two million items returned.

Icons and images can be useful with direct manipulation user interfaces (e.g., Microsoft Windows), as long you're working with a very small data set. When you have more than a dozen files or so, you need text captions on the icons to help you identify the contents of the files. The captions eventually become more important than the icons themselves. Experienced Windows users usually set their "Explorer" or file manager-type application to display lists of file names instead of large icons.

The Windows folder-type views of file trees are especially cumbersome. This is an unfortunate irony, as the file-tree abstraction works quite well in both the Unix and Windows worlds. In the Windows case, navigating a file tree by clicking on icons can be very time-consuming as one drills progressively deeper. Linux and Unix power users find that the preciseness of text is a bonus here, as a textual representation of the file tree can easily be fed into a simple search command such as grep:

 find . | grep myfile 

In this case, the find command returns a list of all files and folders contained in the current folder. The find command operates recursively, so it will open all folders in the directory and all folders found within those, ad infinitum. The grep command selects the file name or names in the list containing the string "myfile."

The foregoing command has a distinct advantage with file paths that are broad and deep, such as /home/mike/eventcalendar/2004/May/19/ Bahamas/Freeport/Princess/Towers.txt. By specifying "Towers.txt" instead of "myfile" you would locate the file very quickly. Of course, Unix allows you to use the results of a command or set of commands as the input to another command. Here is a quick way to locate and edit the "Towers.txt" file under Unix:

 vi 'find . | grep Towers.txt' 

To perform the equivalent action under Windows, you would have to start at the "/home" folder and drill down through each successive folder until you found the "Towers.txt" file. Then you would have to invoke a word processor on the file. Now imagine if each folder contained not a dozen but hundreds of files. It would be a tedious task indeed to navigate through each one until you found the right folder path leading to the desired file. [6]

And if this technique weren't fast enough, consider the Linux locate command. It works almost identically to the find command, except that it uses a database containing an index of reference pointers to locate files and folders virtually instantaneously. One can locate files hiding in stacks of thousands of files in a fraction of a second.

By using text instead of icons and a GUI, you can deal easily with trees of arbitrary width and depth. This is not to say that you cannot operate on large trees under Windows. They're simply more cumbersome under Windows. As the size of the data set increases, clicking through more and more objects becomes an arduous task. The use of text, on the other hand, allows you to be very precise in specifying what to access, even if it is nested many levels deep.

People who are not familiar with this concept often shake their heads in disbelief when they see experienced Linux users typing away at their keyboards with only terminal windows visible on their screens. They regard them as relics from the dinosaur days of terminals and teletypes. They wonder why in this day and age that these Neanderthals aren't using a mouse and clicking on icons like their Windows counterparts.

The answer is quite simple. Text gets you there faster. Sooner or later, Linux users eventually resort to using text in terminal windows because that's where the power is. One can only click on icons and images so fast. Beyond that, the preciseness afforded by text is too much of an advantage to overlook. This is not to say that Linux users never click on icons in the KDE or Gnome graphical user environments. It's just that when one needs to operate quickly and efficiently, GUIs are simply not fast enough.

As Windows users become "power users," they must click faster. Linux "power users," on the other hand, simply type less to do more. Hmmm. Click faster? Or type less? You decide.

Text is more efficient at dealing with large amounts of content because of data abstraction. A common technique with icons is to present a miniature representation of a larger image. By glancing at the iconic version of the image, you have some idea of what the full-size image will look like. Text has no direct equivalent of this kind of representation. However, it has something much better.

For example, suppose you use a textual description of a file path that looks something like this:

 /home/mike/files/documents/financial/tax_returns/2002/   return.tax 

It takes an instant for you to determine that the file path represents my 2002 income tax return. Furthermore, the path suggests that (1) this is likely to be one of many tax returns stored on the system, (2) I probably have stored more than one kind of financial document, (3) I may be keeping more than one kind of document in general, (4) I may be keeping other kinds of files besides documents, (5) there may be other users on the system whose files are stored there, and (6) the /home area on the system is where most of the users' files are kept.

That's a fair amount of information that you can glean from the file path. If you tried to represent the equivalent graphically (and without text altogether), you would have a very difficult time as you tried to show different icons for each component in the file path. The user would have a difficult time remembering what each icon represented. One would ultimately resort to attaching a textual description of each icon as an aid to help the user identify the specifics of what the icon represents. Of course, at that point, the user is back to using textual content again.

We could go on forever here with examples of data abstraction using textual representation, but I think you already get the picture. (No pun intended.) Graphical representations using icons or images are woefully inadequate for the purposes of categorizing and abstracting data.

As we've seen in the last few pages, audio and visual content, while emotionally engaging, play secondary roles in our use of computing systems. For virtually all primary tasks, text is second to none. The greatest amount of computer systems usage centers on textual content. Without textual content, most computers would be pretty playthings of little use in our lives.

But why is this so important in comparing Unix and its variants with Microsoft Windows? It is because Windows is primarily a visual system, with all that that entails. Microsoft has, in so many words (again, no pun intended), said so. Graphical user-computer interaction represents one of the core elements of the Windows philosophy.

Unix and its variants derive their power from their ability as text-processing systems. Text is the most powerful kind of content, and the typical Unix or Linux distribution has hundreds of programs designed to access, create, and manipulate it. There is no other system in the world as capable of dealing with text as Unix.

Thus far in this chapter, we have learned about the philosophy of Microsoft Windows as a graphically oriented operating system. We have seen that GUIs, while initially useful for helping people overcome their fear of computers, pose real problems as the size of the data set increases and novice users become power users. Visual operating systems can actually hamper the user in his or her never-ending quest for content as text becomes one's medium of choice.

This is not to say that GUIs are inherently evil. They serve their purpose and can be quite handy at times. The key difference between Unix and Linux versus Windows is in how they are implemented. With Windows, the GUI is the way to interact with the system. With Unix and Linux, the GUI is one way to interact with the system. Therein lies the difference.

Having built a foundation of general understanding, it's time to reexamine the specific tenets of the Unix philosophy and see how Windows relates-or doesn't relate-to them, as the case may be. This part is going to be a bit of a whirlwind tour. By now, you probably realize how Windows stacks up, and we'll just go over some of the finer points.

Tenet 1: Small is beautiful

Back in the early days of Windows 3.1, Microsoft Windows was a small GUI layered over an even smaller MS-DOS. Over time, however, it grew into a behemoth of massive proportions. Even with shared libraries, which are supposed to help reduce the amount of space consumed, applications such as Microsoft Office and Internet Explorer have now earned the popular nickname "bloatware" because of their overwhelming size. If you think they must be so large because they offer so many features, I would invite you to refer back to the discussion about the Three Systems of Man. These are excellent examples of applications suffering from "Second System Syndrome." When Microsoft finally realizes that these applications need to grow smaller instead of larger, it will have embarked upon the path to the Third System, which we've determined to be best of the three. In the meantime, we need to plow through hundreds of features that do little to enhance our ability to perform the core tasks for which these applications were intended.

Tenet 2: Make each program do one thing well

This tenet speaks of the small-tools or component approach to computing. While Microsoft's technologies such as OLE and ActiveX are component approaches as well, they differ in one significant aspect. Unix components are designed to be manipulated and integrated by the user. While Microsoft goes out of its way to hide the fact that the components exist, the Unix approach is to inform the user of the components and encourage him or her to exploit them to their fullest. The Windows approach to components is a reflection of the mistaken idea that users fear computers and that they should not be exposed to their inner workings.

Tenet 3: Build a prototype as soon as possible

Microsoft earns high marks in this regard, as its tools (e.g., Visual Studio and other IDEs) facilitate rapid prototyping. I once attended a presentation by a Microsoft sales engineer who demonstrated that it is easy to create a simple, Web-based database application in as little as five minutes using Microsoft tools. Building a prototype in five minutes leaves plenty of time for user discussions on how best to refine the application. Note that in this regard, Microsoft has parted ways with the VMS approach in which designs must be thoroughly reviewed before a stitch of code is written. I'm not afraid to give credit where credit is due.

Tenet 4: Choose portability over efficiency

There's a reason why it's called the "Wintel" monopoly. For years, the various Microsoft Windows operating systems were strongly wedded to the Intel x86 CPU line. In the interest of making its ever-burgeoning GUI run at peak efficiency, Microsoft needed to stay closely coupled to Intel hardware. With the introduction of Windows NT, Microsoft finally saw the value of portability. NT ran on four architectures: Intel x86, DEC Alpha, MIPS R4400, and the Motorola PowerPC. Windows XP, however, in a big step backwards, runs on only the Intel x86 architecture, while Linux runs on all architectures available today. Has Microsoft truly learned the value of portability over efficiency? If Windows XP is any indication, it's doubtful.

Tenet 5: Store data in flat text files

Microsoft gets failing marks in this area. While some Windows system configuration files are stored as ASCII text, by and large the Microsoft world is still one where the hidden nature of binary files is cherished and adored. For example, Windows stores critical configuration information in the registry, a binary formatted file vulnerable to corruption. Proponents of various open-source initiatives, such as Richard Stallman of the Free Software Foundation, have rightfully criticized Microsoft for persisting in the use of binary file formats for Microsoft Word, Excel, and other key applications. The trend in file formats is clearly toward some form of (Extensible Markup Language) XML in all areas, which is a text-based format. As of this writing, Microsoft has plans to change the Office binary file formats to XML. Linux-based office tools, on the other hand, have been XML-based for several years already.

Tenet 6: Use software leverage to your advantage

How can a corporation that adheres to a closed-source, proprietary philosophy ever take advantage of software leverage? Well, one way would be for Microsoft to absorb the software ideas produced by various open-source development efforts and incorporate them into its products. It has done this, oftentimes to its benefit. But software leverage, to be used most advantageously, is a two-way street. Microsoft needs to allow others to leverage its source code easily. And this means opening up the Windows source code for others to use and improve. The result would be a plethora of new Windows applications, most of which would probably be available on both Windows and Linux. We've already discussed the likelihood of this happening.

Tenet 7: Use shell scripts to increase leverage and portability

In order to use shell scripts, you must have a shell command interpreter. Microsoft has a few, such as the Windows Scripting Host and its MS-DOS batch mechanism. And due to the resourcefulness of the Perl fans (or is it fanatics?) of this world, Perl is available on Microsoft platforms as well. The problem is that Windows Scripting Host and MS-DOS batch files have a very limited command set to draw from, while Perl has an extensive set of modules to incorporate if you want to take the time to track them down and install them. But plain vanilla Windows has little to offer in terms of a good scripting environment. So users typically default to using the GUI to interact with the system. This means Windows will be able to perform only those tasks that someone has had the forethought to write a GUI application for. Scriptable operations-especially those typically thought of on the spur of the moment-simply won't exist.

This has an impact on the ability of Windows programs to run at optimum speed. GUI applications require you to click on buttons and make selections from list boxes from time to time, forcing programs to interact with a human being instead of another program. As we've discussed earlier, this interaction becomes a blocking factor for optimum performance. Unless a program is designed to operate without human intervention, it can run only as fast as a person can press a mouse button. Most Unix programs, on the other hand, can be driven by scripts that are limited only by the speed of the machine.

One might argue that an operating system that runs without human intervention is just a server. For that reason, some pundits have tried to down-play Linux's potential as a mainstream operating system and instead relegate it to the supposedly less interesting server role. They say that Windows' "superior" GUI will continue to rule the desktop. These critics are missing the point. Because Linux is an outstanding server, it is more capable at all aspects of computing, including the desktop. A properly constructed desktop environment is simply another task for a server. One need only look at the number of desktop environments available under Linux to realize that Linux has already become a first-rate desktop server.

Tenet 8: Avoid captive user interfaces

By their very nature, GUIs are CUIs. They tend to transfix the user's attention and not release the person to do other things until he has satisfied the input requirements of the application, whether it be choosing from a list of options or clicking on an "OK" button. Windows systems get around this problem by allowing the user to open multiple windows concurrently, thereby providing the ability to interact with more than one application simultaneously. So, at least in this regard, a window system-any window system-pays lip service to the tenet of avoiding CUIs.

Many Windows applications (but not all, thankfully) have been written with the assumption that the user wants to interact with only one application. They overlook the fact that, while Windows is a graphical user environment, it is also a windowing environment, where multiple applications may be contending for the user's attention at any given time. A most blatant example of this is a pop-up dialog box that commands the user to interact with it alone until one has clicked on something in the box. This type of dialog box is called a "modal" dialog. Many modern Windows applications, especially those written since the start of the new millennium, have become more sensitive to the plight of the user who needs to interact with multiple applications to accomplish a given task and have avoided using modal dialogs. However, remnants of this older style of interaction still exist.

One way to avoid the kind of thinking that leads to CUIs is to think in terms of clients communicating with servers. The KDE Desktop Communications Protocol (DCOP) demonstrates just that kind of thinking. Developed by KDE developers Matthias Ettrich and Preston Brown, DCOP forms the basis for a generic interprocess communication facility. [7] What makes DCOP different is that while other interprocess communications protocols (e.g., RMI) deal with nonhuman communication, DCOP is a foundation of the KDE desktop environment, the chief purpose of which is human-computer interaction. With DCOP, programs can easily communicate with other programs via standard APIs, many of which offer GUIs. However, because any program that understands the DCOP protocol can be used in the KDE user environment, it opens up the possibility of scripting tools that can drive desktop objects and applications. In the case of DCOP, a KDE client doesn't really need to know what is communicating with it as long it speaks DCOP.

If you're thinking that this sounds remarkably close to the notion that "all programs are filters." you're getting the idea. Whether the communication method is a Unix pipe or a DCOP connection, it's still the same approach. Small programs are once again talking to other small programs.

I could go on a rant here about how Windows doesn't accommodate this kind of scripting easily, but I have a sense that I would only be preaching to the growing chorus of KDE developers who have found a better way to build a desktop environment. It is, however, a great lead-in to the next tenet.

Tenet 9: Make every program a filter

This tenet is a foreign notion to the Windows world in general. The Windows approach tends to be "let's build a really big program with a gazillion features and it will sell really well if we market it cleverly enough." One can build a huge software conglomerate by selling products like these and still not get it right. Applications like Microsoft Outlook don't interface very well with other programs because the developers were not thinking in terms of programs as filters. Contrast this with the MH mail handler we discussed earlier. MH, too, has a comprehensive set of features. But users and developers can easily add new components to the MH suite, while Outlook is a large but limited environment. It doesn't matter how many features the Outlook developers can come up with. They are still limited because they're only just the Outlook developers. The rest of the world has ideas, too.

When you think of programs as filters, you tend to write software that remains open to enhancement, not only by you and your company but by others who may have a different view of things than you do. In this way, your work is leveraged by others, just as you get to leverage their work.

This brings us to the end of the chapter on Microsoft Windows. But before we move on to the chapter about open systems, I'd like to leave you with a closing thought.

We've looked at the effect that the herd has on the computer industry. As of this writing, the herd is clearly riding the Microsoft bandwagon. Just as there once was a time that "no one was ever fired for buying IBM," today one can maintain one's job security (for a little while longer anyway) by joining the army of individuals recommending a Microsoft solution. But whereas some of the Microsoft software is actually quite good-and I am not afraid to admit that-it is software produced by one company and a select few of those others whom Microsoft considers its allies, if there can be such a thing. There are other developers, other companies, and other voices, all of which deserve a chance to display their creativity.

Despite the overwhelming influence of Microsoft's marketing juggernaut, Microsoft's voice is not the only one in the world of computing. Just because there is an army of people saying that Microsoft Windows is the right approach to computing doesn't mean that it's true. I can go out and get an army that says otherwise.

The soldiers in my army look like a bunch of penguins. They wear red hats and yellow stars. They adapt like chameleons. They speak a strange language with words like "grep," "awk," and "sed."

And they believe in a philosophy called Unix.

[3]"The Man Who Invented the Web," Time, Vol. 149, No. 20, May 19, 1997. For more on the history of the Web, go to http://www.cern.ch.

[4]Check out Caltiki, the Immortal Monster on the Internet Movie Database at, http://www.imdb.com!

[5]Telephony, January 14, 2002.

[6]Yes, you could use the "Find Files or Folders" option under Windows Explorer to find "Towers.txt." In the time it would take you to fill in the blank in the dialog box, the Linux user could have invoked the vi text editor on the file. The extra steps of moving back and forth between the keyboard and the mouse slow you down.

[7]See http://developer.kde.org, KDE 3.0 Architecture



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