Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!wasatch!cs.utexas.edu!sun-barr!apple!well!xanthian
From: xanthian@well.UUCP (Kent Paul Dolan)
Newsgroups: comp.sys.amiga.tech
Subject: Re: Why do you need metaphor? (Re: What should be learned from Unix
Message-ID: <13207@well.UUCP>
Date: 18 Aug 89 18:33:00 GMT
References: <7570@cbmvax.UUCP> <440@xdos.UUCP> <1417@bnr-fos.UUCP>
Reply-To: xanthian@well.UUCP (Kent Paul Dolan)
Organization: Whole Earth 'Lectronic Link, Sausalito, CA
Lines: 38

[Lots of stuff about how the Unix "file" metaphor isn't so great after all
omitted in the interests of retaining sanity.]

Computer science hasn't stopped progressing just because Unix(tm) was
invented.  The plaudits for the Unix "file" metaphor are not meant to
denigrate later developments, but to compare it to the systems existing
when Unix was created.

If you go back and look at the '60's operating systems (OS 360, GCOS, etc.),
you find that the OS was responsible for knowing the structure of the
bytes in a file.  The result was the JCL nightmares of fixed, varying, varying
spanned, and so on record structures, each of which was built into the OS,
and all of which had to be describable by the system user in JCL.

The glory of Unix is the realization that the OS has no business knowing the
internal structure of a file; a file is just a stream of bytes.  It is the
responsibility of the program accessing those bytes to interpret some
structure into them.

This paradigm, mapped to devices, allowed a console to be treated as a file
too, since all that ever goes to or from it is also a stream of bytes.

Most subsequent progress has been built on the base furnished by Unix of
making the OS (relatively) smaller, simpler and cleaner, since it only
has to deal with one file type, the stream of bytes.

Of course, within it's own files, the OS knows the structure, but it is
amazing how much of other OS's internal code became separate, non-OS
programs under Unix.

Somewhere in there, the idea of bundling the process and its data became
the concept of an abstract data type so dear to the object oriented
programmers of today.

Not too scruffy from a beginning of "keep it simple, stupid." ;-)

well!xanthian
Kent, the man from xanth, now just another echo from The Well.