Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!samsung!spool.mu.edu!uwm.edu!bionet!agate!ucbvax!WORLD.STD.COM!bzs From: bzs@WORLD.STD.COM (Barry Shein) Newsgroups: comp.society.futures Subject: Grumpy about Dopey Window Systems... Message-ID: <9102050349.AA13956@world.std.com> Date: 5 Feb 91 03:49:18 GMT Sender: daemon@ucbvax.BERKELEY.EDU Organization: The Internet Lines: 136 What are we going to do about these Unix window systems? Oh, when they work, they're ok, they even usually manage to produce a few rectangles on my screen and place interesting things, mostly text, within them. But once something goes even slightly wrong, watch out! I gave up on NeWS a long time ago because I decided life was too short to try to read or produce postscript code, FORTH on steroids. So I tended to focus on X11, but it's clear that it's completely out of control. Something wouldn't work today because some resource was set wrong, it even complained, but it wasn't clear what it was that was setting it this way to make it so unhappy, or how to fix it. The error message didn't even leave me much clue what I might do to override the bad value, let alone what a good value might look like. Just some cryptic string followed by "bad value", and it gave up. I'm not sure I would have been placated with merely a better error message, I suppose it would have helped. I glanced at my .Xdefaults file and realized it had grown quite a bit, a quick wc -l revealed that it indeed had almost 600 lines of obscure syntax in it. And apparently this wasn't enough to make it through today. I remember some number of years ago expressing my disgust with IBM's OS/JCL because there were about 185 things you could say to a DD (sort of like a file open()) statement. Well, here it is, 1991, and now I have basic utilities approaching 1000 options. This is progress? Perhaps I should take back what I ever said about OS/JCL? In fact, an .Xdefaults file looks quite a bit like JCL on steroids, to use that metaphor again, perhaps that's why IBM finally broke down and endorsed Unix? Unix's original appeal was its simplicity. The open() call, for example, took two arguments, a file name, and a mode (read, write, both.) Ok, later they added a third argument, but that was mostly so you could get rid of another, somewhat redundant function (creat()). Fair enough. Compared to OS/JCL and other systems of its time, this was awesome brilliance, it even worked. This brilliance was compounded by the myriad things you could feed an open statement (files, pipes, devices) without warning, and the resultant I/O statements (read, write) would pretty much behave predictably, independent of what you had opened. Being able to do this from the shell was almost a religious experience (not almost, it was a religious experience.) There are two schools of thought, it seems, in designing applications: One extreme says that you sit down and think very hard about what people will want to do with your application and try to minimize any need for customizing. You "own the problem", and try to write a piece of software that solves the problem at hand. Many Unix utilities exhibit this property, although more than a few have grown obese with flags. But, even an incredibly flag-obese application like "ls" has maybe 30 options, of which I usually use less than 5 except on very rare occasion. I never feel like I have to understand the other options when I don't need them. I don't see "ls" complaining "you forgot to set the -X flag, you lose!" The other extreme says that everything must be customizable, that you don't really solve a problem with an application, you invent a new language in which every user of your program can solve their own problems. It's a sort of puerile Zen approach, where every question is answered with a new question: Master, how shall I obtain function key nirvana? How did you obtain mouse-button nirvana, grasshopper? The syntax is similar, only different. These are the application programs which must use extensive files to manage their options in (oh, they may also have 50 or more flags on the command line, but a lot of those flags only control where to go looking for the real settings I want to use today.) You couldn't begin to type the options on a command line. These applications have system global files, user private files, methods for including other files into their files so you can manage these burgeoning files, conventions for running the files through preprocessors, filters, macro expanders, make, and other tools to help conditionalize their effects, private libraries with dozens of files to help you further customize your own files, log files, large manuals explaining the syntax of all (well, some) of these files, built-in help facilities and hypertext navigators to help you find all the options you might want to set today, point and click applications who's only purpose is to set options, etc etc etc. So, here I am wasting a few hours trying to figure out which string in which value in which of a few dozen files has made my window manager sick. A window manager! What a stupid thing to spend time on! Who cares about 500 options to allow me to control whether the green and mauve root menu with 3D highlights which pops up when I hit ALT-CTL-MOUSE-3 displays "Resize" as the first item on the menu or "Raise Window"? Or exactly what stipple pattern my scroll bars will have (chosen from several provided or I can sit and make my own stipple patterns with the scroll-bar-stipple-pattern-editor!!! Wow! Now if I can only figure out the stipple-pattern syntax...) Choose one, wire it down. If your choices are awful, well, I won't use the software. If they are merely good, I probably will use your software. If they are very good, I will rave to my friends about what wonderful taste you have and how they should all immediately write large checks and send them to you so we can all share in this experience. But don't try to convince me that you have provided me with a redecorated home when all you really have done is left the address of the local furniture store and a large book on the chemistry of paint. I think we are being played for idiots, my friends. "The Emperor's New Clothes" comes to mind. Something has to change. -Barry Shein Software Tool & Die | bzs@world.std.com | uunet!world!bzs Purveyors to the Trade | Voice: 617-739-0202 | Login: 617-739-WRLD