14.3.1.3 What are positional arguments for?
Positional arguments are for those pieces of information that your
program absolutely, positively requires to run.
A good user interface should have as few absolute requirements as
possible. If your program requires 17 distinct pieces of information in
order to run successfully, it doesn't much matter how you get that
information from the user--most people will give up and walk away
before they successfully run the program. This applies whether the user
interface is a command-line, a configuration file, or a GUI: if you make
that many demands on your users, most of them will simply give up.
In short, try to minimize the amount of information that users are
absolutely required to supply--use sensible defaults whenever
possible. Of course, you also want to make your programs reasonably
flexible. That's what options are for. Again, it doesn't matter if
they are entries in a config file, widgets in the ``Preferences'' dialog
of a GUI, or command-line options--the more options you implement, the
more flexible your program is, and the more complicated its
implementation becomes. Too much flexibility has drawbacks as well, of
course; too many options can overwhelm users and make your code much
harder to maintain.
Release 2.5.2, documentation updated on 21st February, 2008.
See About this document... for information on suggesting changes.
|