|
OS Dead Weight: Common OS Features I'd Like to See Die
|
Modern OSes are a combination of intentional design and
elements retained for historical or compatibility reasons. This
kind of compromise is more or less inevitable, but it also leads
to some unpleasant situations at times. These are a few such
situations, common facets of modern OSes which, IMO, should be
eliminated.
General OS Dead Weight
- File Extensions as File Type Encoding
The use of the characters after the last dot in a filename as
a representation of the file's type (that is, data
organization, classification, means of interpretation,
preferred "default application", etc.) is troublesome.
Unfortunately, it's also difficult to get away from for
interoperability reasons. I object to this antiquated
mechanism for a variety of reasons. There's no system for
allocating file-type extensions so they remain unique.
Conceptually, the act of naming a file is distinct from the
act of marking a file with instructions on what format its
data is written in, and that information should survive any
renaming operation. The practice of displaying file
extensions has also fallen out of favor in GUI environments, and
this has led to various subtle and not-so-subtle problems.
- Use of Text Formats as a Lengua Franca
A whole pantheon of file formats these days are actually text
files with some structure or syntax imposed upon them. The
rationale is that such files are easier to view, or more
convenient to read and write. To an extent, this is true, but
only because nothing more powerful is standard enough to be
used instead. Text files are inherently inefficient for many
of the jobs for which they're being used: 8 byte numbers can
be stored in about 20 bytes, for instance, and the
complexity of the serialization and parsing processes is
typically hidden by standard library code made to deal with
textual data. We are trained to think textual data is easier
to process because we've already been supplied with a wealth
of tools (libraries, routines, horrendously overcomplicated
editors, etc.) that deal with it. I contend that standard
meta-formats for binary data are a better choice in the
presence of adequate support utilities, and have the added
benefit of making interoperatability with the data easier to
achieve.
CLI-specific Dead Weight
- Backquotes and Backslashes
Backquotes are used in Bourne Shell as a syntax for turning a
command's output into another command's arguments.
Backslashes are used on MS-DOS as directory path separators,
and on Unix as an escape character. In both cases, they are
visually similar to characters with different meanings
("normal" single or double quotes, forward slashes) which
themselves have various meanings on the different platforms.
The distinction between quotes and backquotes becomes
especially problematic when using a proportional font for text
display. Although backslashes and forward slashes are
visually easy to tell apart, I expect there will be
individuals who get them confused. I'd like to avoid the
ambiguity and confusion of these forms.
Mail GEC