04.14
I bet if you looked in the standard Linux advocates dictionary you’d be hard pressed to find the word ‘easy’. It’s probably cowering somewhere among the Z’s, hoping that the the torture will stop.
What am I referring to? Comments such as this (or Google your own) …
Maybe if it wasn’t so easy to change it would matter a little but now it’s starting to sound like a bunch of spoiled babies crying because mommy didn’t cut the crust off of their sandwich. Get over it people…
In the above example the zealot is saying how you shouldn’t complain about a usability regression because it’s so easy to change back. Here’s what people are referring to as easy:
It is easy to change back to the traditional top RHS.
Alt +F2 to open launcher
gconf-editor
select: apps/metacity/general/button_layout
Place ‘spacer, after ‘menu:’
menu:spacer,maximize,minimize,close
It’s almost as if you say something is easy enough times it’ll suddenly be easier – such as ‘updating is easy, just type sudo apt-get dist-upgrade’ – ignoring the fact that words have actual meanings, and changing the meaning to make something seem better than it is is dishonest. Here’s the dictionary definition of ‘easy’:
Easy: achieved without great effort; presenting few difficulties : an easy way of
Of course when you actually bring up the fact that it’s not easy you’ll get this fun little qualifier added ‘It’s easy when you know how‘. But as far as all the dictionaries I have checked none have ‘when you know how’ anywhere in the description. And why not? Because ‘when you know’ negates the whole meaning of ‘easy’. Here’s a bunch of other things that are ‘easy when you know how’.
- C Pointers
- Regular Expressions
- Mod Rewrite
- Juggling
- Professional Snooker
- Tightrope Walking
- Multidimensional Arrays
- Assembly Language
- Windows Arabic Edition (it’s easy once you learn Arabic)
You see where I am going with this. In fact I can’t think of a single thing that isn’t ‘easy once you know how’. Even the deliberately obfuscated languages such as Brainfuck are probably fairly simple once you get to know it well enough.
CLI vs GUI
Think of a GUI as a complex network of roads and paths. You have all the paths in front of you and can see the main highways (start button) and little hidden side-roads (control panel) but although they are sometimes twisty and poorly signposted it is possible to get from A to B without a map. Not that a map wouldn’t help, and not that the signs can’t be better, but getting from A to B does not require one.
The CLI on the other hand is like the same network of roads, but instead of having signposts you have a blindfold. You need to know exactly what road you need, where it is and how to get down it. One mistake and you are lying in the ditch. It’s the whole point of a GUI and why they have been so wildly successful – they make things easy.
I remember telling a veteran Linux user about tail -f to monitor updates on a log file. It’s not because he was stupid, it’s because he had never ever read the particular bit of documentation that described this feature. That is, to effectively use a CLI based interface you must have already read and remembered everything about it.
If we take the above example as a GUI then the program will often pop up a message ‘changes detected, do you want to update to the file stored on disk’, with Yes, No and Always as an option. There’s no way you could not know about it. Same thing with mounting volumes, I’ve used various GUI partition tools for the last 20 years and the only thing I need to know going in was what I wanted. I used the Linux mount command for the first time and wasted the best part of an hour due to not knowing to add ‘-umask=0666′ to the command to make it user-readable. If that was a GUI there would have been an ‘allow user access’ checkbox and the problem would not have existed.
If something requires a mass amount of prerequisite knowledge then it is not easy! If there is no way of knowing that something is even possible, let possible to figure out yourself then it is not easy! Just because once you have invested the months of practice into learning whatever you happen to be using (Bash, VI, Emacs, Perl, etc) you can do something in 5 seconds does not make it easy! If you have to copy line by line from the internet into a terminal window with no idea what you are typing means, it is not easy!
Hell, I am at the bottom of this article and I simply can’t remember what the steps were that were outlined as ‘easy’ – so if something can be written and read multiple times and you still can’t remember how to do it, it’s not easy.
Update: That’s not to say you don’t get some terrible GUI apps – you do. But the natural state of a well made GUI app is to be intuitive, obvious and easy. A CLI apps natural state is to have a mandatory RTFM requirement.
