Progaramming: how to add a gui front end to a CL command?

Karl Auer kauer at
Mon Aug 6 15:42:56 UTC 2007

On Mon, 2007-08-06 at 08:21 -0700, Matthew Voss wrote:
> If there is no benefit for your self than make sure you pick the right
> command and do it for some one else. Though, your right, it would be
> of no use to the person who wrote it!

This just isn't true. For complex command line programs, and even some
quite simple ones, the GUI makes it easier for the guru and the neophyte
alike. By preventing (or warning about) bad combinations of arguments,
or by sanity-checking parameters, a GUI can help an experienced user
avoid mistakes, just as it helps the new user avoid them.

Think about it - why do we write scripts? To condense a complicated,
error-prone sequence of commands and parameters into a simple,
easy-to-execute unit. We can forget the complexity and use the power.
Only the most masochistic guru would typeout all those commands in full
every time. The tradeoff is flexibility - typically a script does only a
very limited subset of all the things the individual commands might be
able to do.

A GUI does pretty much the same thing - it reduces complexity and
protects against error. The tradeoff is time - it is as flexible as the
command line, but it takes longer to get the results, and (usually) has
no facility for repetition of the same input parameters, so it is slower
on repetition, too.

So when we need maximum flexibility with maximum protection from error,
we take the GUI and trade off repetition and time. When we need maximum
power and maximum speed (or high repeatability), we trade off
flexibility and take the custom script. When we need maximum power and
maximum flexibility, we run the commands ourselves, trading off speed
(because it takes longer to get them all right and type them all in, and
we have to do it all again if we want to repeat the operation).

Regards, K.

Karl Auer (kauer at                   +61-2-64957160 (h)                  +61-428-957160 (mob)

More information about the ubuntu-users mailing list