No modes: An exception?In computing history, there was a famous crusade by Larry Tesler -- a titan of the industry; he worked at Xerox PARC (Smalltalk), Apple, Amazon, and Yahoo -- which he called "no modes." He said, for example, that you shouldn't have to enter a "mode" just to type text. You should be able to click and type. It was a revolutionary idea back then. There are still some popular modal programs today such as vi and Emacs, and the mode combinations make their users look like wizards, but in general, modes are dead. However, I have a humble proposal. There should be a single exception: a mode to enter the "rm" (remove) command. I was recently investigating a problem and saw this in the history: cd /usr Do you see the mistake? The user wanted to delete all javacore files in the current directory, but accidentally put a space before the wildcard. This resolves to: delete any single file named javacore, and then delete everything else! In this case, the -r (recursive) flag was superfluous (since you don't need it when you're just removing files) and did the real damage, as it recursively deleted everything under that directory. I don't blame the person. I've done this before on my own machines (luckily, never on anything of importance). Once I even did a rm -rf /* and Ctrl+C'ed before it did too much damage. The problem is that after a while you become too comfortable flying through a machine, copying this, deleting that. I will even admit that the latest defaults on Linux distributions to confirm every deletion even if you don't specify -i really annoy me, and I usually turn them off. There's something about rm that is different. It's hard to slow down sometimes or not to use -f or -r gratuitously. Therefore, I think there should be a mode to run rm, and it should be difficult to disable (kernel compile flag?). Your brain needs to do a context switch and give itself time to answer a few questions: What am I deleting? What would I like to delete? Is there a difference between the two? I wonder how many major website issues have been caused by one extra whitespace character... |