On Thursday 06 August 2009 04:11:58 am Marc H. wrote:
As far as UIs are concerned, I actually think that the smarter the UI
the better.
I couldn’t disagree more.
You could say “the easier the UI the better”, but when UIs start getting
“smart”, they inevitably lose precision. The dumber the UI the better.
An example of a better, simpler UI might be automatic transmission –
nobody
really cares what gear you’re in, you care how fast you’re going, and
how fast
you’re accelerating.
An example of a smarter, but really worse UI might be if you removed the
steering wheel and put in a voice-activated, GPS-guided system. Ok,
great,
until you say “Go to Chili’s” and it hears “Go to Chilie”, and starts
driving
to South America. A dumber interface is better – if the GPS steers you
wrong,
at least you’re still the one who’s actually holding the steering wheel.
This is why I believe the “commandline” will one day fail -
like the day when we have really awesome hardware AND software.
We do now, and the commandline hasn’t failed.
One of the main reasons for that is that it’s so much more powerful than
any
GUI that’s been developed, in a few ways. One example: Unix pipes.
Through
this simple mechanism, I can join programs together in ways they weren’t
designed to – the traditional example is tar and compress. Not only
does this
mean that tar doesn’t have to know about compression (though modern
versions
usually do), it also means it’s trivial to swap one compression
algorithm for
another – I can just use ‘tar | bzip2’ instead of ‘tar | gzip’.
GUIs just haven’t reached anywhere near even that simple power –
another
obvious example is piping the output of anything through grep. Wouldn’t
it be
nice if all GUIs supported searching? In practice, many do, but each app
has
to implement it separately, and each search works a little differently.
Contrast this to having one program that does one thing, and does it
well
(grep) which can be swapped for any other search program at any point.
Now, it may get to where the commandline is a lost art, but I just don’t
see
it being replaced, unless you’ve managed to come up with a GUI that can
do the
same things – and, more importantly, do them at least as fast.