RE: Web site up! (GUI vs. CLI)

From: O'Regan, Emlyn (Emlyn.ORegan@actew.com.au)
Date: Mon Jul 05 1999 - 19:28:45 MDT


> I'm afraid I have to disagree here (being a UNIX dweeb for 25 years
> or so...). The fundamental reason CLI's exist is that when they
> were designed, the machines were slow, memory was small and the
> libraries to do GUI had yet to be written. My first year at college,
> when all the VDTs (video display terminals for those of you who don't
> go back that far...) were busy, I'd use a 300 baud teletype to put
> my programs into the computer. There were people who did "GUIs" for
> the VDTs and even the teletype, but the results were pretty poor.
>
> The reason CLIs remain popular today is because it is still generally
> faster (and smaller) to code CLIs than GUIs. If I'm writing code for
> myself or another person comfortable with computers I would write a CLI.
> If I had to write code for a non-computer literate audience (and had the
> time) I'd write a GUI.
>
And then there's the 90's... Have you seen a GUI in the last 10 years? How
about the modern software development languages/environments.

I was a hard core CLI man myself, for a long time, basically because CLI
programming is simpler. There just aren't as many options, so you don't have
to think as hard.

The only drawback is that there just aren't as many options. The things you
can do with GUIs now... Remember writing report printing code under DOS or
UNIX, or doing stuff with the screen? Now you can just drop a couple of
components on a form, choose a couple (really! two or three!) options in a
happy little property editor, and wham, you've got printing, or database
access, or clipboard, or internet communication, or full video, etc etc....

The stuff that used to be really hard, or at least time consuming, now comes
bundled. You can scoff at this if you like, but I find that it's extremely
liberating. You don't spend all your time re-inventing the wheel in your
user interface, or with data structures (when was the last time I had to
write a hash-table/b-tree combo?) or with I/O, or with database access, or
writing low level protocol stuff (although of course you can if you want
to). You do spend time on what your program is really about, the custom
bits, the stuff that is actually interesting about your application.

Plus, you can get into new areas without learning the whole field first. I
wanted to start doing more interesting things with MIDI music recently, and
wondered where to start. I found that many of the apps which I use for MIDI
actually have COM interfaces (yep, MSEmlyn, boo hiss, although I refuse to
touch their programming languages). This means direct programmable control.
So I can do from code whatever I can do in the apps I already have. Later, I
can work out how each app does what it does, and replace it if I want.

That's what an OS is about I think; providing useful resources to the
application. When you add the internet to the mix, you can suddenly expand
those resources almost at whim (need a digital audio component? or source
code? or library? Spend a few minutes (hours?) on the net...). It just blows
my mind.

The idea of going back to the command line OSes of old, fishing out printer
manuals full of control codes, or poking frequencies into the registers in
my sound card, or trying to write ping to talk to the net over my modem...
why not just chop off my hands.

If I'm still using a desktop style GUI with tools like Delphi in 5 years,
I'll know I've failed to keep up (I'm probably falling behind right now).

Emlyn



This archive was generated by hypermail 2.1.5 : Fri Nov 01 2002 - 15:04:23 MST