When overnight delivery services like Federal Express first appeared on the American landscape, people marveled at their efficiency. Imagine a pony express that would get your package to someone across the country not in a month or a week, but overnight. To many it was a dream come true. This service revolutionized the way we do business today.
The rapid ascent of Federal Express and other overnight delivery services raised a serious question: Why couldn't the U.S. Postal Service provide this service? As we all know, the U.S. Postal Service can and does provide overnight delivery today. Still, many people believe that the commercial package delivery services do a better job. Why? It's because the commercial services implement the 90-percent solution.
Doing 90 percent of anything is always easier than doing 100 percent. In Federal Express's case, they do not provide the same level of service out in the hinterlands as they do for an area near a major city. In major U.S. cities, it seems as though Federal Express pickup boxes are on nearly every other street corner. But try to find one in a remote town in the hills of Montana. It simply isn't profitable for Federal Express, so it isn't done. The U.S. Postal Service, being a U.S. government organization, must provide equal service to all U.S.
By government fiat, the U.S. Postal Service must carry out the 100-percent solution. Meanwhile, operating as an independent carrier, Federal Express can focus on the highly profitable and much easier to optimize 90-percent solution. The result? Federal Express delivers packages the
The 90-percent solution is one that results from deliberately ignoring those aspects of the problem that are costly,
When fast-track Unix and Linux software developers design an application program, they strive for the solution that will give them the biggest bang for their buck, so to speak. This means eliminating those functions that few people use and that are costly to implement. They ruthlessly cut such functions from the product requirements, often with the attitude of if someone needs this capability
Obviously, there are some situations, such as heart transplants, where a 90-percent solution won't suffice. These are rare in the computer world, though. Remember that most software is a compromise in that it is never finished, only released. If, by definition, software can never be finished, one can never develop software that offers a 100-percent implementation. By recognizing the 90-percent solution as a reasonable measure of completeness, it becomes easy to write applications that
That is part of the reason for Unix's success. While it avoids trying to be everything to everyone, it meets the needs of most. The rest can write their own operating systems.
Anyone who has ever been in the military
The "right way" is the way that I know is right, you know is right, and every normal person knows is right. It is what we consider correct-in every aspect. It is undeniably proper. The shoe fits. It works.
The "wrong way" stands as the inverse of the right way. Blatantly incorrect, it is wrong, dead wrong, no matter who looks at it. Your mother and father know it's wrong, your kid brother agrees, and your broker
The most enigmatic, the "military way" is by far the most interesting of the three. While the right way and the wrong way coexist in an inverse relationship, the military way enshrouds itself in a cloud that is
The "Unix way" is akin to the military way. If you listen to the
Ingrained within the Unix way is the paradoxical notion that "worse is better." Many claim that Unix is not nearly as good as such-and-such system because its
Yet, if Unix is worse than most other systems in so many ways, then it only proves that "worse" has a better chance of survival than that which is either "right" or "wrong." For Unix and Linux have shown a
There exists a school of thought in the computer world that says that all proper designs should have four characteristics: simplicity, correctness, consistency, and completeness. Designs should be simple, correct (bug-free) in all observable aspects, consistent throughout, and complete in that they must cover all cases one can reasonably expect.
Most Unix programmers will agree that applications and systems should be simple, correct, consistent, and complete. The key is how they prioritize those characteristics. Although the proper system designer strives for completeness at the expense of simplicity, Unix developers elevate simplicity to the primary priority. So the proper system designer levels criticism at Unix, not so much because it is improper, but because its priorities are
Unix aficionados, on the other hand, point to the survival characteristics of worse and say that worse is better. Look at the VHS videotape format, they say. VHS tapes are big and "
Similarly, the user interface on the Windows PCs comes nowhere near the practically flawless user interface on the Apple machines. Still, PCs are on more desks than Apple machines, even if PCs are much worse than Macintoshes from a user perspective.
One reason for the success of Unix is that it has always been regarded as an operating system that is worse than others in many respects. It was never used for any so-called serious work, as such tasks were usually left to industrial-strength commercial operating systems. Unix typically occupied the lower echelon of hardware configurations instead. It found a home on the minicomputer, a machine that lacked the brute force of a large mainframe, but was powerful enough for more mundane work. Since minicomputers were typically used for less important
Today it isn't very difficult to find commercial versions of applications that are better than the free software available on Linux. Most free software lacks the features and polish of good commercial packages. Yet the growth of the free software applications easily outstrips that of commercial packages.
Some vendors and industry consortiums today are working to make Linux better. In doing so, they hope that it will lose its worse-is-better character and finally will be taken seriously. This could a fatal mistake. For if Linux is made into something that is truly better in all respects, then it runs the risk of