From PC Techniques #35, December/January 1996
The high road to a solution is an application that completely rebuilds itself during install, leaving out the code for everything the user doesn't want.
A friend of mine back in Rochester, New York wanted to start a software company. He was a researcher and a writer, and made his living writing arcane textbooks on Canadian environmental law, or something like that. He had an Osborne 1, but was enormously aggravated by the nature of the software he hadprimarily, dBase II and WordStar. His position was that over half of the features in both programs were completely useless, and simply served to confuse the user and bloat the executables to a totally unwarranted size. (I can only wonder what he thinks of the stuff we use today.)
He tinkered with programming a little, and wanted to create a line of software for people like himself, whose needs were simple. The line's ruling principle would be just as simple: No more features than absolutely necessary. JustEnuf Software, he wanted to call it.
I left Rochester not long after, but I don't think he went ahead with his plans. And lord knows, the industry has gone in the opposite direction. Word processors have become page layout programs, databases have become full-blown programming environments, and everything you buy these days weighs in at thirty megabytes or moreunless you're buying Visual C++, which will happily occupy several hundred megabytes.
It's a pretty obvious notion, and everybody I tell this story to nods enthusiastically and says, "I'd buy that stuff in a second." So where is JustEnuf software? Look on your own hard disk. Windows Write is probably hiding there, amidst the chinks of your hundred-megabyte compilers. Who uses it? Almost nobody.
The easy (and cynical) answer is that we buy software stupidly, counting the full pips in PC Magazine's feature comparison matrices, and then slobbering over the product with the most pips. That's a factor, pretty obviously, and if we all gave a little more thought to what we buy, we'd be buying better stuff. But the real problem is that although most people have simple needs, they're not all the same set of simple needs.
I don't need a lot of page layout in a word processor; I have a whole department that does that for me. But I write for tight spots and need a good word counter. If you do your own layout, columns and sections and fancy stuff like that could be essentialbut word counting is expendible. I hate embedded tables. Maybe you love 'em. So we end up buying the greatest common demoninator, and a larger hard disk every year or so.
The high road out of this is an application that grills the user about what features he or she wants, and then completely rebuilds itself during install, leaving out the code for everything the user doesn't want. We do a little of that now with major subsystems, but I'm talking everything--right down to italics and bolding.
Shipping the machinery for relinking or even recompiling an app at user install is no big deal: More and more products ship on CD-ROMs that are maybe one-tenth full. No, what we lack is a design paradigm for an application like that. I'm sure it can be doneand I intuit that such an app would be a lively confederation of a great many mini-interpretersbut if a design discipline for such a paradigm exists, I've never heard of it.
Many who are paid to think about the future say the future of computing is massive parallelism. Suppose in the future your CPU contains a pool of processorshundreds or even thousands of them--and when an application runs, it parcels them out, one per feature.
Would that rip or what?
Sooner or later, JustEnuf will be...enough.