|Home » Resources » Software » Reviews
A Software Manifesto for the New Millennium
Bad software hurts everyone. It hurts the customer but it also hurts the industry. At the very least, it makes the lives of purposeful conscientious software engineers just a little bit more empty and meaningless.
Common sense and a good idea of proportion have largely been lost today. In what was once a respected science people now do things that were unthinkable just a few years ago, leaving our work environment completely topsy turvy.
Now that there's a PC in nearly every home and on every desk people are turning to computer science as a new approach to whiling away the boring hours otherwise spent in front of the television. The idea that software engineering might demand a rather strenuous education has been completely lost. The commercial PC software market has become a shameless free-for-all.
And software vendors are realizing what has happened and pulling out all the stops. Instead of quality software we have beta campaigns. Instead of improving products they bloat them. While the automotive industry learned its lesson long ago, the software industry is doing things even Detroit would have blushed to think of.
The Bond movie caricature of the software giant deliberately producing bugged systemware so people will be forced to pay for expensive upgrades is not so much a caricature as a sign of the times.
Somewhere in Nevada
Once upon a time General Motors and the others held a big meeting in Las Vegas to discuss their deteriorating situation. American cars were just too good, and too many people had them. Salesmen had succeeded in selling one car per family. Garages were built and they set about selling a second car to the wife. There was a little room in the front driveway so they could sell a third car for the college student to use. After that the market was dried up. The cars were just too good. They lasted. There was no one more to sell to - or that's at least the way GM and the others saw the future.
The solution they proposed was something they named 'planned obsolescence'. The idea was simple, and twofold:
- Make sure new models come out regularly and make a big fanfare about them. Also, make sure the new models look radically different so that the past year's models really look old. Also, drive home the idea that old is bad and new is the only acceptable way to go.
- Introduce new technologies to make this belief in the new unavoidable. Introduce new metal alloys which rust easier, construct new engine blocks which more readily crack, etc. Make sure the actual hardware cannot take the march of years.
Planned Obsolescence Today
As we all know, Detroit succeeded - for a while. Then came Volvo, and right in their wake the ominous Japanese manufacturing machine, and suddenly Detroit had to resort to ad campaigns stressing that it was unpatriotic to buy a foreign car, etc. For Detroit had had it - other companies had found a way into the American market by producing quality goods.
Planned obsolescence in automobiles is hopefully behind us once and for all. And one would have hoped that the very idea of planned obsolescence had been banned and sent into oblivion for all time. But it was not to be so. Bill Gates and the PC industry were yet to happen.
It is no coincidence that every upgrade of Microsoft Windows demands four times the power in the hardware as its predecessor. It is no mistake either that Redmond right up to the very last minute denies that any such hardware upgrade is necessary.
Bill Gates and the Common Man
Bill Gates was never the programmer he says he was. It's been long proven that he not only did not write the bulk of so-called software his company was supposed to have authored, but that his company bought or outrightly stole most it. Bill Gates was not made from the same mold as William Shockley and the others who pioneered this science of ours. Bill Gates' only motivating factors are power and money, not a respect and a love for a calling.
We could have lived with DOS and expected no more of our personal computers, suffered no grievous disappointments, and kept the same machines for decades; but with the advent of Bill's monster Microsoft Windows all the flood gates broke - and Bill got rich at the same time.
The hysteria that his company has generated has resulted in so many classic blunders and nightmare scenarios already that it's not funny:
- Tim Paterson wrote MS-DOS, not Bill Gates. Tim Paterson didn't even work for Microsoft. MBASIC for the Altair was a theft of DEC's BASIC interpreter.
Bill Gates once said that 640KB should be enough for anybody. And it was, basically, until 1990, only ten years ago. His current pestilence will demand a minimum of 128MB - over two hundred times as much.
In fact, Microsoft has just revised their system requirements for Win2K Server and Win2K Advanced Server: the new minimum spec (according to Microsoft, meaning you really need a lot more) is 256MB.
In the early days of the PC era Bill Gates pulls a hat trick:
- He buys a relatively cheap source code license to UNIX, gives it to SCO, and tells them to write Xenix for him.
- He approaches Lattice Corporation and buys them outright.
- He uses his newly acquired staff to re-design the architecture of Lattice C to be in line with UNIX C.
Quite a good move.
In the intermim, however, postorder warehouses are selling both Lattice C 2.0 and Microsoft C 2.0, which is just the 2.0 Lattice C with the new Microsoft logo, nothing else has changed.
The catch is that Lattice C still costs only $225 whereas Microsoft C (again, the identical product) costs $275, or $50 more.
The customers bought the Microsoft version, even though the Lattice version was identical and cheaper, because, as Microsoft lied to them so often back then, 'we wrote the operating system'.
The original Microsoft update to Lattice C, Microsoft C 3.0, came on two floppy diskettes together with two very well written bound manuals in a big clear plastic box which opened as a bookstand (nice). A very stable product.
The current version of 'Microsoft C', Visual Studio 6.0, comes on three compact discs. It is horrendously bugged.
- UNIX pipes have always been implemented as RAM buffers. MS-DOS pipes, written by Redmond developers who had access to the UNIX source code, are implemented as temporary files in the current working directory. Picture if you will what it's like running a pipe through two or more applications on a floppy disk...
- The complexity of a PC of today almost surpasses that of a mainframe, even though the latter has substantial tasks to perform and a capacity the PC cannot even dream of. Whereas matters in the mainframe world get leaner and meaner, matters in the PC world get more tangled and messy. One shudders at the thought of what the likes of Bill Gates would do to a System/370.
- When UNIX was first taught at university level, its hallmark was that the complete operating manual would fit comfortably into an attache case.
- WordPerfect Corporation was once the mainstay of the word processing industry after An Wang's dedicated machine got the dust covers, but their transition to MS Windows was a rocky road. They'd been promised classified information by Microsoft on the internal details of the latter's graphical user interface but never got them. WordPerfect did what they could to compensate according to some, did all too little according to others. For years the joke was that if the network was going down, it was because WordPerfect for Windows was attempting a print-out.
- The WordPerfect for Windows dialogs with their gray background were the envy of Redmond. But rather than add a simple attribute to dialog scripts to enable specification of a background color, the Afx team set about writing 14KB of object code that used multiple system hooks instead. A dialog script is a text file that is read in and compiled by a resource compiler. It specifies the origin and width and height of the dialog, its caption, font, and other characteristics. It would have been child's play to add a token such as 'BACKGROUND' followed by an RGB value. But that would have been too easy. Even today the background colors of dialogs cannot be specified generically any other way.
A programmer from Alsace relocated to the American west coast, then after several years in the profession there decided he'd rather buy and sell. A product supposedly found in Copenhagen became his first hit and brought us into the era of TSRs. Soon afterwards he began marketing 'poor man's compilers'. Where professional compilers of the day cost between $200 and $300, these compilers of his were always one dollar beneath the first hundred mark. They were fast - and, for the little they attempted to do, very good. And, when Microsoft left the Windows development field wide open, the Alsatian stepped in, and Microsoft realized their mistake all too late. A war was on.
But in the ensuing struggle the Alsatian's development team lost a screw. From one day owning an industry standard they became the dubious authors of one of the quintessential examples of bloatware and bugware the next, and ultimately the Alsatian's company was bought and sold across the American continent like he once did with his software catalogue.
- Novell, a company known for its rock solid developers, suddenly releases a veritable bug farm in NetWare 4. The reason? Novell fears the imminent first release of Windows NT. Result? Novell's reputation was tainted permanently. Ray Noorda eventually moved on.
- Corel, a company once respected for its graphics software, releases a new version that is so bugged they have to call it in and then re-release it twice, using the same version number all three times and denying ever having had multiple releases of the same version.
- Off the record, IBM staff will tell you that the initial release of OS/2, version 1.3, was so horrendously bugged that they didn't even dare use it internally. And for years this was the story with the ill-fated IBM/Microsoft joint venture. Then Steve Ballmer travelled to White Plains and broke the contract. Since that day OS/2 has been stable and relatively bug-free.
- Redmond officially measures productivity in KLOCs - kilo lines of code. Programmers who want to look sharp there use Copy and Paste as their foremost development tools. Design pattern recognition goes out the window.
- Redmond values skills in strategic programming and ignores skills in good programming. If half the ingenuity used to produce the AARD code had been used in MS-DOS, there would never have been any competition or reason for the industry to look elsewhere.
- The software industry in the United States has turned into a sweat shop. Cheap programmers, with or without proper credentials, are imported like slave labourers and exploited until their work permits run out.
- IBM, who once felt threatened by the giant AT&T, denies for years that they know anything about UNIX or C. Then they suddenly release PC/IX for the AT and then later AIX. And now they want to support Linux.
- Microsoft's answer to the Netscape challenge was initially given away at computer and department stores world-wide. Bins of diskettes with Internet Explorer were everywhere. That's right - the initial IE fit snugly on a single diskette.
Nowadays IE takes up to - and sometimes more than - 100MB disk space.
- Microsoft, that Artful Dodger of the industry, succeeds in wooing over David Cutler, who brings his entire DEC Prism source tree with him. DEC later sues Microsoft for stealing their operating system, the companies settle out of court, and Microsoft has to support the Alpha processor. Microsoft touts this new operating system of theirs as 'new technology' when in fact it is only DEC's VMS re-written in C, something that had been a life-long dream of Cutler's. Innovation at its absolute nadir.
- An airline pilot in Minnesota starts playing around with graphics during his layovers and writes some of the most conscientious code in the PC software industry. Even people who don't need his program admire it. It is stable and completely conformant with Microsoft's Consistent User Interface design guidelines - more so even than Microsoft's own software. After many lean years the product finally takes off. Revenues are generated and the airline pilot builds up a local office, hiring software engineers to continue his work. The result? The current version of Paint Shop Pro is a fourteen megabyte monster bloatware download; the original release would have fit on a floppy disk several times over.
- The first PC had an Intel 8088 processor and precious little RAM and secondary storage. Current PCs have hundreds of times the processing power and thousands of times the storage capacity, yet programs still seem to run slow and disk space is still running out.
- The foremost secondary storage medium for the PC, the hard disk, gets 60% cheaper per annum and increases in capacity by as much. And you get a guarantee.
- You don't get guarantees, money-back or otherwise, on software the way you get them on any other consumer products; in fact, if you run into trouble with your purchase and need the manufacturer to bail you out, it costs extra.
If the PC hardware industry didn't have Bill Gates they would have to invent him. With quality products and systemware and software that should improve in efficiency and performance over the years the market would dry up in no time. The PC industry needs the hardware OEMs and the hardware OEMs need customers who continually have to trash their equipment despite the fact that it could and should last much longer.
It's a vicious circle - or, to use automotive terminology, it's planned obsolescence. Homes of the future will be built with a junkyard out back, right under the window where the PC will be used. Every second year or so the delivery man will come with a new playtoy, and the owner of the house will simply open his window and throw the old machine out.
Think that's extreme? Think again - it's being done today. That's right, there are corporations where the employees simply throw their old PCs straight out a window and into a junk heap whenever support buys new hardware. Straight out the window.
It isn't exactly ecologically sound, either. And it wastes a lot of money - our money!
What We Can Do About It
Some people are already doing things. Linus started working on his variant of UNIX years ago and the idea has really swept the industry. People are taking assessment of their computing needs, looking at them objectively, and squinting when sales sharks come at them with new flashy things.
People have learned to distinguish between what looks good in a showroom and what works well at home. People have started to learn that it's functionality and not the number of colors in the toolbar that determine how good the software is. Common people have begun to understand that 'bug' is actually a four letter word, and that the industry has any number of euphemistic cover-ups: 'issue', 'problem', etc.
PC users are supposed to be stupid, Bill Gates is counting on it, but they are letting him down. PC users are getting crass. The common man has learned too much, seen too much. Newbies come and go all the time, they can still be hoodwinked and cheated, but those who do stay on learn after a while. And the trend is clear: people are leaving Bill Gates' empire behind. Bill Gates is the Ray Croc of computer science; you can only have so many Big Macs before you feel the craving for a real meal.
The Halloween Documents
If you haven't seen these gems, please do so now. They're available at the Open Source site. What are the Halloween Documents? They're two documents stolen out of Redmond Washington which show what Microsoft is up to as regards Linus and Linux. More than showing once and for all what kind of software giant we really have, specializing not in advanced programming algorithms but in dirty tricks tactics a la Richard Milhaus Nixon (fudding, embracing and extending, et al.), they show just what Microsoft really thinks of the Linux threat. The consensus in Redmond is that Linus cannot be beat unless Microsoft can destroy his product or him personally by illicit means. They admit that their own systemware cannot attain the same level of stability, that Linus' development system is something they can't even dream of approaching.
The industry has changed. The future money makers will not produce systemware and software from highly secret source code. The future money makers will support open source systems. The future money makers are already here.
Bill Gates is a dinosaur - just as out of time and just as mean and carnivorous as the T-Rex in Spielberg's movie. It would be better for all of us if he would just get out.
Bill Gates' time has come long ago, and he knows it. He says so outrightly in so many words in his first book. No industry can stay stagnant that long. The PC industry is woefully behind the times today, and only because Bill Gates is holding onto the hands of the clock, hoping they won't move.
But they do move. This is now a new millennium. Things are changing. And here's a grab bag of some good resolutions for not just the new year but the next thousand years or so. Most of these will happen by themselves, but...
- If you're an end user, stay that way. Don't try to interfere with our work. Your opinion has always been critical, but we need your perspective as an end user, not as a wannabe developer yourself. Software engineering needs software engineers, and software engineers usually have engineering degrees. Software engineering is a science. Remember that and respect that - and respect us.
- If you're a developer and your heart's not in your work, get out. Leave the business to people who still care and have the spiritual wherewithal to do so.
- If you're living in a cash cow that kills your soul, get out. Once upon a time you found your work fascinating, exciting. You haven't changed - the world around you has. But there are still areas of the business where the old rules apply. Find them and migrate to them.
- If the end user is not out of line; if the end user is not trying to 'lord it over you', then respect what that end user says. After all, the product you are developing is for use by end users. Only to the degree that these end users are really satisfied will your product be a success.
- If you're only in it for the money, get out. Buy a fishing boat. After all, your purpose in life is exactly like everyone else's: you're supposed to serve humanity. If the connections you make and the contacts with your customers don't give you the soul food you really need, if you have become too callous to see these people as people like yourself, your time has come.
- Don't bloat the industry. Don't contribute to the vicious circle of planned obsolescence. If the hardware OEMs can't make it, that's their problem, it's not yours. You never have an excuse for releasing junkware. And if you don't know what bloat is all about and how to spot it and eradicate it - go back to school.
- If you were raised on a pabulum of C++ and classes and objects, consider taking a substantial course in assembler programming. Learn how a machine really thinks. Learn what your job really is - translating human ideas into mechanical thoughts. Start regarding the classic OO cornerstone precept that 'hardware is never a problem' as the cow manure it really is.
- Read Al Aho's 'dragon books'. If you make ten pages a day and keep at it, you're a struggler. Know what it is to translate even your low level programming ideas into something a computer can really understand. And incorporate your new insights into your own development style.
- Start thinking while you work, and not just working. Be critical, be intuitive. If your corporation fears 'thinkers' as Microsoft does, then get out now before it's too late - before they come and claim your soul.
- A PC is just a glorified pocket calculator. You don't have to have one. Your life might even be better without one. Don't get drugged on it or on your job or on the industry. Remember you are a free agent and be ready, when the time comes, to claim back your own life.