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.