Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Posting-Version: version B 2.10.1 6/24/83; site watmath.UUCP
Path: utzoo!watmath!idallen
From: idallen@watmath.UUCP
Newsgroups: net.unix,net.cog-eng
Subject: Re: hang vol_ser=123456 file=mytape mode=read_write density=1600
Message-ID: <7265@watmath.UUCP>
Date: Mon, 19-Mar-84 01:38:41 EST
Article-I.D.: watmath.7265
Posted: Mon Mar 19 01:38:41 1984
Date-Received: Mon, 19-Mar-84 07:31:09 EST
References: <3533@utcsrgv.UUCP>, <135@looking.UUCP>, <363@dual.UUCP>, <1817@rlgvax.UUCP>
Organization: U of Waterloo, Ontario
Lines: 22

The B Programming Language and environment distributed by Honeywell and
written by the U of Waterloo Software Development Group started out using
"-" to indicate options without values, and kwd=value for options with
values.  Several years ago, it changed to use both "+" and "-" for options.
"+" turns the option on, e.g. +warnings or +w; "-" turns it off. 

I was concerned about the extra shift for the "+", but after using it for
a while, I find it's good.  Options are full words.  This means it's
easy to see what an option does when you spell it out, but it means you can't
bunch options together (-alxww) like some (sigh) UNIX commands allow.

Whatever the syntax, the two best features of the B Environment are the
use of full words for options and the fact that everything is the
*same*.  The same option word means the same thing in every command.
The position of options with respect to arguments is almost always unimportant.
"lc idallen -catalogs +files" and "lc -catalogs +files idallen" are identical.

Waterloo has both B and C library routines that let a programmer just
fill in a table of option words and corresponding variables -- the
routine does all the command line parsing and sets the variables for you.
-- 
        -IAN!  (Ian! D. Allen)      University of Waterloo