[mod.std.unix] case sensitive names

std-unix@ut-sally.UUCP@ndmce.uucp (Moderator, John Quarterman) (10/18/86)

From: bzs@bu-cs.bu.edu (Barry Shein)
Date: Sun, 12 Oct 86 14:02:11 EDT

Other operating systems use case insensitivity in their file names, why?

	As I remember it is a holdover of older encoding conventions
	intended to save disk space. PDP-10s used SIXBIT, RT11 and
	others used RAD50, in the real old days people used 026's and
	ttys, all of these had only one case for A..Z. I don't think
	it was a human factor, it was an economy of a different age.
	Systems like VMS and CMS continue this due to their heritage.

At least make user names monocase.

	Is the convention that upper-case user names imply an
	upper-case only terminal being discarded? If not, what
	is the new convention? What else should we redesign?

At least make file names monocase (a)

	Please list all software this would affect, besides Make.
	How many mktemp() calls make use of case? Lock files?
	Are you *sure* none of these would be affected adversely?

...it would make emulators easier (b)

	As has been noted EUNICE doesn't seem to have too much
	trouble with exactly this. Any comments/requests from
	EUNICE developers? HCR? Why are we protecting them if they
	don't ask for this? My guess is they wouldn't consider it
	critical and would cause them as many problems as it would
	solve (they would have to now go and "fix" their software also.)

At least make flags monocase.

	Please list all current flags which rely upon case sensitivity
	and what you would replace them with. Worse, we have lost the
	thread of this proposal. Is the case fixed in filenames when the
	kernel interprets them? By the shell? Does the shell now have
	knowledge about what is a flag? If not, how *do* I pass a data
	string (such as sed s/foo/goo) in mixed-case where needed? This
	is often a can of worms in other os's (eg. VMS/DCL) and not what 
	I would call an improvement. It might require detailed syntactic
	and semantic knowledge of command formats by the shell(s) as most
	of these monocase systems have (DCL, EXEC etc.) At best it would
	require various new or further overloaded quoting conventions
	(we now have quote, double quote, backslash, ^V and backquote!)

It would be more ergonomic.

	Why is having less obviously easier? I thought the freedom
	UNIX gives in creating things like file names to suit whims
	to be a plus. Should we adopt NAME.EXT conventions? Why not?
	Doesn't the structure imposed by .EXT make things "easier" in
	the same sense? What about very long file names? Is this also
	a "pain"? Why have so many of the proponents argued about how
	all this would make it easier ON THE PROGRAMMER? (eg. emulator
	writers, argv interpreters) Is this the person the system's
	interface should be optimized for? What about text processors
	(I mean people)? Do they use the filing system in full case
	or not? Do we care? I just scanned through our dept secty's
	directories (she is a very naive user, she started here with
	UNIX this summer, it also includes a subdir which is the entire
	tree of her predecessor who was a fairly sophisticated UNIX user.)
	It is full of mixed case filenames, most for the obvious reasons
	(PhoneBill, LICENSES (probably to force sorting to the beginning),
	etc.)

	Would you please peruse *your* user's directories and report back?

Where does it stop?

	What about things like 'r' and 'R' in mail(x)? You may know
	the difference between a shell and an application program,
	but do your users have it as clear or will they see these
	things as gross inconsistencies if not brought into line?
	What about editors ('q' vs 'Q') and other fundamental software?
	Who enforces this (the application or the tty driver)?

The proposal to remove case sensitivity does not analyze the impact on
the software and the amount of change needed to accomodate this new
feature. I claim it is ubiquitous, worse, the proposal is ill-defined
as to exactly where in the software hierarchy this case insensitivity
is to be implemented. The proposal is pie-in-the-sky and unworkable,
worse, it is regressive (eg. it actually strives to emulate systems
designed to be compatible where now outmoded hardware and economies
were driving forces.)

Take your UNIX system, change everything to lower case. Add the following
line to your .login or .profile:

	stty lcase

report back to us if you still think this is a good idea.

	-Barry Shein, Boston University

Volume-Number: Volume 7, Number 60