Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!uunet!husc6!cca!mirror!ima!minya!jc From: jc@minya.UUCP (John Chambers) Newsgroups: comp.unix.wizards Subject: Re: Request for human interface design anecdotes Message-ID: <407@minya.UUCP> Date: Sat, 21-Nov-87 09:47:43 EST Article-I.D.: minya.407 Posted: Sat Nov 21 09:47:43 1987 Date-Received: Mon, 23-Nov-87 04:13:46 EST References: <1721@spar.SPAR.SLB.COM> <1621@megatest.UUCP> <101@ateng.UUCP> <1402@cuuxb.ATT.COM> Organization: home Lines: 61 Summary: KISS... > This request has spawned many stories involving rm * (or > variants) that were not intentional. > > Then there was the time we did rm -rf ../* > > The moral of this is that the command interpreters need to be > modified Well, I hate to be a wet blanket (sure, sure; ya love it; admit it :-), but I've never typed anything like this. What I have typed a *lot* of is 'y' to silly suggestions that I don't know what I'm doing. This has wasted a lot of my time. One of the first things that impressed me when I first snuck onto a Unix system 'way back when was that, unlike all the other systems I'd ever used, Unix actually did what I told it to do. It didn't harass me, question my intelligence, or anything like that. When I typed "rm *", it did it. Nowadays, it has gotten recalcitrant, and I have to say, in effect, "Of course, I want that file rm'ed; that's what I said, wasn't it?" While I've grown in experience, Unix has taken to treating me as a child who needs his hand held. When I was in High School, most of the power tools in the shops had various shields and safety features. The intructors sometimes pointed out that professionals would routinely remove the shields. But that was after they had learned a certain respect for the tools, and also after they had learned work techniques that made the tools safe for them. On the other hand, such professionals didn't allow children (or unqualified adults) into their workshops. This could be well applied to computer systems. Unix, like any good tookbox, requires power tools like rm. Professionals want such tools without safeguards. But you don't hand them to novices. Anyone who hands a "bare" Unix to a novice, and teaches him/her to type "rm *.o", is doing the equivalent of teaching someone to use a circular saw with no shield or goggles. Novices should not be taught about rm, but about other tools (say, a simple script or alias called 'del') that asks the right questions. After they express frustration with such safeguards, or when they need to write a script that doesn't harass its users, they can be told "Well, there's this other library command 'rm'...". I guess this is a complain about the fact that we have a nicely layered system; its designers carefully explained to us all about this; we don't listen. The Unix community gets criticised for giving novices a command language (sh) that was intended for system developers. But Unix has a perfectly good method of giving non-hackers their own user-friendly shells; why do we teach them to use sh? It is trivial to add a library script that 'removes' files by renaming them; why don't we do it? It is trivial to say "ln /bin/cat /bin/type"; why don't we do it? My claim is that Unix in fact has a good design for user-friendliness; the problem is vendors and system developers that violate the design by using low-level tools like rm at a higher (user) level. 'Nuf preaching for now; this oughta get me lots flames to while away the hours reading... -- John Chambers <{adelie,ima,maynard,mit-eddie}!minya!{jc,root}> (617/484-6393)