On 3/1/24, Steve Nickolas <usotsuki(a)buric.co> wrote:
On Fri, 1 Mar 2024, Douglas McIlroy wrote:
> One might argue that replacing "flag" by "option", thus doubling
the
> number
> of syllables, was a small step in that direction. In fact it was a
> deliberate attempt to discard jargon in favor of normal English usage.
IBM did a similar thing in their use of the term "main storage" for
what the whole rest of the industry calls "main memory". They felt
that "memory" was too anthropomorphic.
I prolly got the term "switch" from
IBM/Microsoft, but that's the term I'm
used to (and my own implementations of Unix utilities do use the term in
their error messages).
The term "switch" for command line options is pretty much
universal--it's not IBM specific and predates the existence of
Microsoft by about two decades.
Back in the 1950s when you ran one program at a time on a computer,
there were toggle switches on the control panel that could be read by
the running program. Combinations of these were in common use to
select various options of program behavior. When operating systems
came along, you couldn't pass the info to running programs by having
the operator physically flip a switch on the console. I remember that
IBM DOS/360 had a Job Control Language (JCL) statement "// UPSI" (UPSI
= User Program Switch Indicators) that allowed one to set the
"switches" as seen by the running user program.
When interactive and timesharing systems came along, they supported
command line options in place of the original switches. In DEC's
operating systems for PDP-8 -10, and -11, these were originally a
slash character followed by a single letter or digit. The slash was
used because it resembles a toggle switch. Unix was using the slash
as a directory separator in pathnames and so they used the hyphen to
introduce command options instead. Microsoft's command line interface
for the PC was modeled after DEC's RT-11 operating system and used
slash for command options. When they implemented Unix-style directory
paths, they had to use backslash as the separator because forward
slash was already in use.
-Paul W.