From owner-freebsd-chat Sat Aug 30 17:39:38 1997 Return-Path: Received: (from root@localhost) by hub.freebsd.org (8.8.7/8.8.7) id RAA09717 for chat-outgoing; Sat, 30 Aug 1997 17:39:38 -0700 (PDT) Received: from obie.softweyr.ml.org ([199.104.124.49]) by hub.freebsd.org (8.8.7/8.8.7) with ESMTP id RAA09703 for ; Sat, 30 Aug 1997 17:39:29 -0700 (PDT) Received: (from wes@localhost) by obie.softweyr.ml.org (8.7.5/8.6.12) id SAA03408; Sat, 30 Aug 1997 18:41:23 -0600 (MDT) Date: Sat, 30 Aug 1997 18:41:23 -0600 (MDT) Message-Id: <199708310041.SAA03408@obie.softweyr.ml.org> From: Wes Peters To: Peter Korsten CC: chat@freebsd.org Subject: Re: Microsoft the GUI King (was Re: ATT Unix for Windows) In-Reply-To: <19970829025323.52918@grendel.IAEhv.nl> References: <199708251245.WAA23142@oznet11.ozemail.com.au> <19970825204932.12036@grendel.IAEhv.nl> <34020362.7DB1@fps.biblos.unal.edu.co> <19970825224258.55928@grendel.IAEhv.nl> <19970826083051.FR52594@uriah.heep.sax.de> <19970826235525.22143@grendel.IAEhv.nl> <19970827093336.NX00626@uriah.heep.sax.de> <19970828002532.43939@grendel.IAEhv.nl> <19970828083703.OY21311@uriah.heep.sax.de> <19970828174348.17499@lemis.com> <19970829025323.52918@grendel.IAEhv.nl> Sender: owner-freebsd-chat@freebsd.org X-Loop: FreeBSD.org Precedence: bulk Peter Korsten writes: > What I do care about, is indeed the fact that Joerg mentioned: the > inability to edit these settings with a preference editor. If you > have a graphical application, it's _stupid_ that you have to edit > a text file to alter something in the appearance of that application. > > I don't know if you people have ever read a book about how a user > interface should be constructed (I have), but you could learn a > lot out of it. I've read several, and even written one: a standard for GUI development at a previous employer. Most of the GUI applications available for X11, Windows, and Macintosh are pure trash developed by people who had a bunch of features to present and absolutely no idea of how to present them to the user in a meaningful manner. One of the great disservices Microsoft has done to computer users of the world is to give us MS-Word as an example of how not to write a graphical application. Word has some 10,000 features and function points, and yet most users of it haven't yet figured out how to set tabs or make a table. No, I'm not kidding, almost every Word document I get from someone other than myself has people lining up columns of numbers with the space bar and wondering why they don't quite line up. (My wife, a talented technical writer, tells only programmers use paragraph tags in Word, writers are too technophobic to "program" a paragraph style.) Good thing Microsoft developed that fancy table tool, huh? I've even seen documents where the page headers and footers were typed into the body of the document! And yet these documents were created on a user interface with dozens of icons, pull down menu items, tabbed dialogs with combo boxes, check boxes, radio buttons, you name it. When using the default interface on Word, nearly one half of the visible screen is taken up with graphical gew-gaws that mean *nothing* to the average user, as opposed to the text that is their actual work. As evidence of this great disservice visited upon is by Microsoft, I offer the "App Wizard" in VC++, and the on-line documentation in MSDN. Unlike related tomes, such as "Inside Macintosh," MSDN has no information at all on how to present visual information to the user in a matter that increases his understanding of the problem at hand. Instead, they offer canned organizations for certain menu items which may or may not apply at all to your application. As an example, why would a graphics viewer application have a "file" menu on it? Graphics viewers don't work with files, they work with pictures, so why don't they have "Picture" menus instead? You see: Picture->New, Picture->Save, Picture->View, etc. Why does the picture viewing application have to call these File->New, File->Save, and File->Open? Most Windows applications are developed by people who just don't have any idea how bad their application is, because they're doing it exactly the same way everyone else is. Of course, to paraphrase my mother, in this case everyone else is running off the cliff. At the very least, GUI designers should read the seminal works in the areas of graphics (Foley and Van Dam) and human-computer interaction (Card, Moran, and Newell). If you think you GUIs have nothing to do with cognitive psychology or human motor skills, you're probably mistaken. For a more direct look at modern computer interfaces, and refreshing viewpoint on how bad we are doing with the silly "desktop" metaphor, see Bruce Tognazzini's book on software engineering. > You're reasoning from the Unix point of view. You do everything > from a text file, so you want to be able to do that in Windows too. > Well, you can't and you shouldn't be able to do so, because the > average user (who is kept more in mind with Windows than with > Unix) will certainly screw it up. Obviously you don't read Windows-oriented magazines; they are stuffed every month with "tips" on how to make 95 and NT behave in reasonable ways by editing the registry directly, because Microsoft did not have the foresight to put the settings in question in a GUI. Or, more likely, they did put them in a GUI, but they are buried somewhere so non-intuitive that *nobody* can or will configure them that way. So, we arrive at the conclusion that the "big step forward" in system administration on NT vs. UNIX is that the entire configuration is buried in this undecipherable, non-searchable "registry" that NT seems to wantonly destroy once a quarter. > But what it lacks is a common base that describes how programs > should work (and the professional Windows programs do work the same > way), a file manager/Explorer like thing to move your files around, > drag-and-drop, the fact that every decently written program behaves > in the way you expect it to. Mac, Amiga, Atari, Archimedes, and > NeXT all have this. X and it's windows managers don't. Bullshit. Apparently you've never heard of Motif, or of CDE. You can argue they are too little too late, but you cannot reasonably argue "X" doesn't have drag-n-drop or a file manager, that just isn't true. The difference between X and Windows is that you can opt out of the standard if you wish to use something simpler, or more complex, or completely different with X. With MS, you get what Bill wants you to have. > I can understand why this is. If you write a program, at least half > of your time will get into the time to develop a good GUI. It's a > hard thing to do. I've done it for the Amiga, but I must say the > result was worth the trouble. If the GUI would have been worse, > the program would have gotten bad reviews. Now, the reviews were > good. The GUI wasn't mentioned. So that means it lived up to the > expectations. Yes, the problem is few of the reviewers even understand what constitutes a GOOD gui. You've hit on a very important point here -- if they even comment on it, you've probably done a poor job. If they mention the toolbars or the menu layout, even if they're complimentary, it took their mind off accomplishing work to attract them to your user interface -- you have failed. The only good gui is a "transparent" gui. It's nice to see *someone* else has hit upon this idea. Actually, this has a certain orthogonality with my favorite Terry Lambert quote: "Good programming looks obvious." ;^) > > Yup. There's no good way to represent errors graphically. > > Nonsense. I agree! I'm certain there is at least one, and probably several, I just haven't hit upon it/them yet. And I've tried! The true challenge in gui programming is not in creating objects and making them do things to other objects, but rather in building a visual grammar with the user, something very few gui programmers understand. I once spent a year designing a gui tool for administering UNIX systems; it was an exciting and frustrating time of my life. The system architecture we came up with I still believe could have taken the UNIX world by storm. It was a "push" architecture with some smarts at the network level about which computers belonged to which administration groups and what user accounts and groups could be replicated to each administration group. The hard part was getting the gui correct. For instance, consider two views that have icons representing user accounts: one is all users on a particular system, the other all users in a group. Now consider the action of selecting one or more user accounts and hitting the delete key. When viewing "all users", does this mean "delete the user account from the system?" When viewing "users in a group," does this mean "delete the user from the group" or "delete the user from the system." The first makes sense but is inconsistent, the second may cause some nasty surprises. There are deeper semantic questions also: if the account exists on a given computer only by way of belonging to a group, and that group has been "added" or "applied" to a particular computer, does this mean removing the user account from the group should remove the user account from said computer? As I said, gui design is far less a programming problem and far more a cognitive/linguistic problem than most programmers realize. Firms that do a GOOD job of design typically hire user interface designers, like Tog (mentioned above) who have some understanding of *how* people come to understand a problem. Far too many Windows programs just follow the straight and narrow path of "make it look like Word." This is an actual quote from the executive moron I worked for while designing the wonderful technological marvel mentioned above. Not a wonder I left the company, or that they never produced it, huh? (They bought some lame "enhanced security" technology from another company, slapped a silly GUI on it, and called it done. The whole thing relies on NFS mounts to distribute security information across your network. Can you possibly imagine anything LESS secure?) > But you can nitpick as much as you want on MS, Windows and NT, > but some things just work better with them. Security in NT has > a better base (VMS) that in Unix, despite the security bugs that > reguraly show up. As someone who worked side-by-side with engineers who developed security analysis programs for VMS, I can tell you sincerely that while VMS has a lot more security "knobs" than UNIX, it is most often less secure because people have less of a chance to understand all those knobs. Which is easier to secure - a cabin with a door and two windows or a 97-room mansion with doors, balconies, french windows, skylights, etc.? UNIX security problems are generally well known and discussed in the open; as a system administrator you have thousands of resources around the world from Usenet news to mail lists to books where you can learn more about how to secure your system. As an NT administrator, you can by a few books from Microsoft that tell you nothing about security, you can pay some screwball "training" company thousands of dollars to have someone who is incapable of being an administrator to read these books to you, or you can sit and wait for your precious sever to get hacked. > Another thing, not to be forgotten, is that very many people > use Windows 95 at the moment. It's pretty easy to couple it > with NT. So, for an intranet, NT is probably more suited than > Unix is. Perhaps, but only if you're not going to hire a system administrator, in which case you should probably give up on NT also. Microsoft has done a good job of creating the illusion that NT is easy to administer, and that the administration load is low enough that most NT users don't need an administrator. Nothing could be further from the truth. The TRUTH is NT administrators are much harder to find than UNIX admins, and therefore cost more and are harder to keep. Doh! > NT is something like five to ten years old. I don't expect all > the bugs to be out of it, also considering MS's strategy to > release first and fix bugs later. Unix had 25 years to mature. > MS has 20,000 programmers and a lot of cash. You meant to say "MS's strategy to release first and then release the next version with thousands more bugs, without ever fixing any." Many of the points you make are perfectly valid, and you seem to be one of the few people that realize that near-universal acceptance of Win 95, Win NT, etc. on business desktops doesn't spell doom for UNIX, or for other offerings like BeOS, etc. Sure, if you're making money from an OS you'd rather have Win95 sales figures than Solaris x86 sales figures, but that doesn't mean there isn't money to be made in Solaris x86. The existence of General Motors hasn't threatened either Ferrari OR Kenworth, any more than NT threatens the survival of Sun or SGI. The problems threatening Sun and SGI are those of not offering what their customers want; customers who don't want NT, just want a *better* UNIX. Personally, I suggest they look into FreeBSD. ;^) -- "Where am I, and what am I doing in this handbasket?" Wes Peters Softweyr LLC http://www.xmission.com/~softweyr softweyr@xmission.com