PROPOSAL: Automatic wrapping of CLIs with GUIs


it occured to me that manpages (or info-files) are way too cumbersome to
use, especially for users who don't want to dive head on into the world of
the typical UNIX command-line tools.

The problem with manpages is that it takes forever to find the information
one is looking for in most simple cases. Examples: Which option do I give
to diff to produce output for 'patch' ? How do I tell 'df' to print the
file system type of the mounted devices ? How do I specify the sample rate
for 'audiorecord' ? I use these commands only infrequently, so every time I
use them, I have to look up the right options via the manpage. I believe
that this phenomenon has a big influence on the steep learning curve that
many first-time users associate with UNIX.

Life would be a lot easier if one could just select the options one wants
using a GUI and then run the command with these options. But writing a GUI
for these small tasks seems like complete overkill. Unless the GUIs could
be generated automatically.

This is exactly what the GUILE program 'wickel.scm' does: it takes a formal
description of all the command-line switches and environment variables for
a certain command and produces a complete GUI from this description. The
description is very concise: for example, less than 90 lines for all the
options that enscript uses.

I think this idea could be expanded to 'Active Manpages', where the help
comes from tooltips and help texts of a GUI and one can at the same time
learn what the options for a command do and set these options to
appropriate values. It might even be possible to generate the information
necessary to construct the GUI from SGML-source, so that info-file/manpage
and GUI can be created from the same source. (Disclaimer: I know next to
nothing about SGML)

But before I put a lot of work into this idea, I would like to hear
people's comments on it. I have written a preliminary implementation of
this idea (in GUILE). I put this and some screenshots on the page


So, here are some of the questions racing through my head: Would this be a
useful program ? Would anybody use it ? What commands would you wrap in
particular ? Is GUILE/Scheme the right language ? Would a compiler that
translates GUI descriptions to C be useful ?


You can lead a horse to water but you can't make him walk on it. G. Larson
You can lead a horticulture, but you can't make her think. D. Parker
David Lutterkort                  email:
Dept of Computer Science          tel:    +1 765 494 4359
Purdue University       
W Lafayette IN 47907-1398         office: MATH 408

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]