The Naming of Names

Perhaps you once took a university course in Operating Systems.  Or you think you did.

In reality, the course catalog ought to have read: Dark Age Software Archaeology: A UNIX Case Study.

But do we still call it archaeology if people are still building pyramids? Moreover, if architects continue to push the pyramid as the pinnacle of architecture?

Before the advent of structural steel, the pyramid was the only form of building which could exceed a height of around five stories.  Now imagine that the building industry had simply ignored all advances in metallurgy.  This is precisely what happened in computing:  CPU architectures with built-in array bounds and type checking obsolete the entire computer security field as it now exists, in just the same way modern medicine obsoletes bloodletting – which is one reason why we are denied them.

Likewise, my dear readers, some of you may recall attending lectures entitled “Human-Computer Interaction,” or “User Interfaces.”  In fact, the course should have been called WIMP: Twentieth-Century Computing and the Cult of the Novice.” [1]  [2]

The list could go on:  I’m probably not the only person who took a Theory of Computation class which taught the Turing Machine yet breathed not a word about the Lambda Calculus.


[1] Erik Naggum: “The Novice has been the focus of an alarming amount of attention in the computer field. It is not just that the preferred user is unskilled, it is that the whole field in its application rewards novices and punishes experts. What you learn today will be useless a few years hence, so why bother to study and know anything well?”

[2] Think there’s been substantial progress in the GUI since 1981? Think again.

This entry was written by Stanislav , posted on Thursday February 18 2010 , filed under Hot Air, NonLoper, SoftwareArchaeology . Bookmark the permalink . Post a comment below or leave a trackback: Trackback URL.

12 Responses to “The Naming of Names”

  • Alf says:

    I recently read an article about the writing of a new file system. The lead of the project said it now takes 100 man years to build a new, production-ready file system. That is why UNIX is still around. To build a new system from the ground up and write all the applications is a task too large to tackle. The chance of doing it all “right” is slim and by the time it is finished there will be a new person like you who says it already sucks.

    • Stanislav says:

      Dear Alf,

      File systems are an anachronism:

      http://www.memetech.com/nofiles.html

      I have no intention of creating one.

      It is entirely true that the current method of the “compile, pray, debug cycle” leads to extremely inefficient development. I intend to dispense with it. On a system where nothing is opaque, one man could easily do what was once thought to be work for a hundred programmers.

      • danbst says:

        Link is broken. Could you post new one? Really interesting “no files” system. Return to blocks?

        • George says:

          “We don’t need no steenking files

          “The file system is an artifact of the limitations of early processors that had no memory virtualization capabilities and had an insufficient memory address word size. Programs and data had to be marshalled out of and back into a logically distinct store because 64K can only hold so much information. Modern 32 and 64 bit processors with memory management units can treat storage as large, slow, persistent memory obviating the contortions required in conventional operating systems to keep data from going away when the computer is shut down.

          “A heirarchical name space is still required for users to keep track of where they put things but virtual memory can hold that tree structure just as well as inodes can and the judicious use of separate memory spaces can side-step a 4 gigabyte limitation for storage on 32-bit machines.”

          — the entire text of http://web.archive.org/web/20081120092935/http://www.memetech.com/nofiles.html

  • gregor says:

    Interesting blog — i did a quick search for your views on Alan Kay’s FONC project, which seems to be pointed in the same directio, but found nothing. On the off chance you haven’t looked at it — http://vpri.org/html/work/ifnct.htm

  • centenary says:

    Why shouldn’t we call it archaeology? There’s a rich history behind Unix; it seems reasonable to study and document that history as an archaeological case study.

    We still build houses today, right? Does that mean studying ancient houses shouldn’t be called archaeology?

  • jessta says:

    “Think there’s been substantial progress in the GUI since 1981?”

    Progress appears to slow as an idea gets closer to it’s ideal.
    Cars still have wheels, an engine, doors, accelerator and steering wheel. But substantial progress has been made in a driver’s interaction with the car.

    It’s not that there hasn’t been attempts at different GUIs, it’s just that none of them were are good as what we currently have.

    ” CPU architectures with built-in array bounds and type checking ”
    You can’t do array bounds checking without type checking and getting a decision on what the base types should be would be near impossible at the current scale and if implemented would likely be worked around by language developers trying to target other platforms anyway.

    LISP machines died for a reason.

  • [...] We will be stuck with just one – in reality, not especially good – notion of how to build a graphical computer interface, because the non-Apple world wouldn’t lift a finger to create a credible alternative.  Apple’s GUI concepts will be taught to novice designers as the only “correct way,” in much the same way that UNIX is fraudulently taught as the final word on kernel design. [...]

  • peppermint says:

    Sounds great. What happens when this amorphous blob of virtual address space gets corrupted? Is all the data in it lost, or just some of the data? Can I write some data to a flash drive and load it on another computer? If so, how? Do I put it in… ahem… some form of variable-length records?

    How does the computer go about allocating this address space? Are they ever relocated? Does the user get direct pointers, or offsets from… ahem… record starts?

    • Stanislav says:

      Dear peppermint,

      > What happens when this amorphous blob of virtual address space gets corrupted? Is all the data in it lost, or just some of the data?

      “Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out?”…I am not able rightly to apprehend the kind of confusion of ideas that could provoke such a question.”

      You can have as many layers of redundant storage and/or error correction as you wish. If you’re worried about cosmic rays, run a dozen CPUs in lockstep tandem as well. (Does your idiot PC let you do this? Mine neither.)

      > Can I write some data to a flash drive and load it on another computer? If so, how? Do I put it in… ahem… some form of variable-length records?

      Raw data will enter and leave the machine as S-expressions. Got a problem with that?

      > How does the computer go about allocating this address space? Are they ever relocated? Does the user get direct pointers, or offsets from… ahem… record starts?

      Learn some variant of Lisp, and then come back here if you wish. Until then, you are doomed to talk nonsense.

      Yours,
      -Stanislav

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">