Editorial delays being what they are, I'm writing these words in the dead of New England winter. You get to read them under balmier, equinoctial circumstances. I have recently deduced that January is the rock-bottom low of my annual manic/depressive cycle. So in case you're starting to feel cheered by the onset of spring (or autumn, in some parts of the world), let me drag you down for a spell.What has me depressed lately is complexity overload. Seems everywhere I look I find more detail than I can stomach. Every chunk of software I buy proudly provides two kilograms of documentation. Libraries are huge and come in multiple flavors. Interfaces have recreated all the excesses of early mainframe systems. And still the complexity grows.
I own four computers and five C/C++ compilers a luxury I might have killed for a decade ago. But my ability to write my own tools with all that gear is now but a fraction of what it was back then (with much less). There's now so much software earnestly trying to help me that it mostly gets in my way. I am seriously thinking of abandoning C and C++ for Visual Basic for a spell, just to knock off a few coding chores that are not getting done.
Whatever happened to Hello, world? Brian Kernighan crafted the little gem of a program that produced just that message many years ago as the ideal way to establish a beachhead on a new system. It proved to be a particularly tiny program when written in C a portent of many compact programs to come. Now I find myself writing the moral equivalent of, "Whereas the aforementioned compiler, hereinafter referred to as the party of the first part, ..." It's not quite the same.
In my better moments, I tell myself that a phase like this is inevitable. UNIX, C, and the personal computer all represent a tremendous simplification over what had gone before. They led to an explosion of innovation and greatly expanded the uses of computers throughout society. Such success always leads to complexification. Everyone demands new features, and many more market niches are large enough to warrant the development effort to provide those features.
Please understand that I welcome all the new gadgets and capabilities. I don't want us to go back to a simpler time. Rather, I'm waiting for a few smart people to better tame all this neat stuff, to eliminate the excess complexity. I don't want us to go back, I want us to go forward.
P.J. Plauger
pjp@plauger.com