Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!bloom-beacon!apple!austing From: austing@Apple.COM (Glenn L. Austin) Newsgroups: comp.lang.c Subject: Re: Iconitis Message-ID: <28836@apple.Apple.COM> Date: 12 Apr 89 16:59:11 GMT References: <1930@dataio.Data-IO.COM> <11555@lanl.gov> <17376@cisunx.UUCP> <28558@apple.Apple.COM> <7898@pyr.gatech.EDU> <28679@apple.Apple.COM> <7910@pyr.gatech.EDU> <2132@pur-phy> <1752@skinner.nprdc.arpa> Organization: Apple Computer Inc, Cupertino, CA Lines: 69 As a programmer who has worked on the IBM PC, VM/CMS, MVS, UN*X, Mac, ect, I have to say that as a programmer, I had more control over what the user could do under command line interfaces. If a command wasn't appropriate at that time, or was not typed correctly (how many times on the PC has anyone inadvertantly typed "DIR"), or just wasn't recognized at that time. Most of the time, I could get away with just a "simple error message" like "Syntax Error." I, as a programmer, had total control over what the user could and couldn't do. Now that graphic interfaces (like the Mac, Windows, GEM) are becoming the norm, I have to take more care in writing code that doesn't know what order the user normally works with. I no longer am "in control of the user" in terms of what the user can or cannot do, and in what order. The user may want to open an old document first, or start a new document, change between the documents, close one before saving any changes, or any other thing that the interface "allows." I, as a programmer, don't know, and can't know, what order commands are going to be called. The user likes this because they have more control over how they use my program. Their boss likes it because the user can use more programs without spending hundreds or thousands of dollars to send the user to training seminars on each package they use, or spending hours of time attempting to learn the program they are using (the hidden costs of CLI and non-standard- ization). The programmer generally doesn't like it because he has to cover almost every eventuality in the order of commands. (flame on) I have written many programs under CLI and under graphic interfaces, and I prefer the graphic interface. Why? Because (1) the user generally can be productive with my programs without reading the manual, (2) the user can use the program in the way that suits him the best, (3) after writing a shell program that implements the user interface, all I have to do after that is *ONLY* write the specific code to create each program, a savings in time over designing and implementing not only the meat of the program, but the user interface as well, (4) it is a much more natural method for top-down and modular/object-oriented programming styles. It is not unusual to write a *GOOD* program for the Mac in under a day (given that it is a small, but useful program), where I can easily spend a week writing a similar program for the PC where I am spending the time beyond the meat of the program in tweaking the user interface. I have found that most programmers care only about their programs. In what I find what I call the "mainframe mentality" in that many programs change the environment that the program runs under without restoring the environment to what the user specified on exit of the program. This seems to be more prevalent in the UN*X environment than anywhere else, this "I know better what the user wants than the user does" attitude of programming. Since graphic interfaces challenge that belief, a lot of programmers are against them. However, since most users are occasional users of programs (the exceptions are word processors and secretaries), the "intuitive" interface is much better than an interface where you have to remember not only the commands, but how the programmer decided to spell the commands. A good example of this is in writing "KLOSE" to close the file, since C was already used in "COPY", or vice-versa. (flame off) If programmers do not provide what their users want, who will use their programs, and more importantly, who will use computers? ----------------------------------------------------------------------------- | Glenn L. Austin | The nice thing about standards is that | | Apple Computer, Inc. | there are so many of them to choose from. | | Internet: austing@apple.com | -Andrew S. Tanenbaum | ----------------------------------------------------------------------------- | All opinions stated above are mine -- who else would want them? | -----------------------------------------------------------------------------