Slashdot Mirror


The History of the "Undo" Function?

TheLocustNMI asks: "So, earlier today as I was typing out some magnum opus of a stored procedure, I highlighted to copy it, and hit SPACE instead of Ctrl-C. Without thinking, I hit Ctrl-Z to 'undo' my folly. Pausing a moment to reflect, I realized that I own countless hours of thanks to whomever came up with the "undo" button. In short -- my question is this -- where did it come from? What are the earliest implementations of the 'undo'? (a quick googling returns this page, a cornucopia of undo and history related treatises)"

9 of 61 comments (clear)

  1. alt.folklore.computers by Anonymous Coward · · Score: 4, Insightful

    A better place to ask this question would be alt.folklore.computers on usenet.

    1. Re:alt.folklore.computers by crisco · · Score: 5, Informative

      Best advice here. A search of google groups yields one thread that points to Undo existing in the late sixties.

      --

      Bleh!

  2. Re:Before Computers by stefanlasiewski · · Score: 4, Funny

    And the second "undo" button was the penknife, which you could use to scrape off the white-out that you applied by accident.

    --
    "Can of worms? The can is open... the worms are everywhere."
  3. is it just me ... by hari · · Score: 4, Funny

    .. or do you find yourself saying "Control-Z" in your mind whenever you find yourself making mistakes while not sitting in front of a computer..spilling a glass of milk...etc

  4. Try thinking "Command-Z" ... by tdelaney · · Score: 5, Informative

    That's right people ... Apple did it first (at least in a consumer machine).

    The original Macintosh had "undo" functionality in its applications, right from the start.

    The Apple IIGS also had "undo" functionality.

    There may have been one or two individual applications before it (I don't know) but the Mac made "undo" ubiquitous.

    1. Re:Try thinking "Command-Z" ... by tdelaney · · Score: 4, Informative

      Although, IIRC there wasn't originally a command key associated with it ... you had to go to the menu.

      "Command-Z" was chosen to match with the existing command keys of "Command-V" (paste), "Command-C" (copy) and "Command-X" (cut). All the major editing command keys were in the one location.

  5. ancient history of undo/redo by js7a · · Score: 5, Informative
    was there a documented implementation of Undo on a computer before the original Mac?

    Yes, MIT's Lincoln Reckoner had multiple-level undo/redo in 1968. That used a screen editor, so it would be the kind of undo you are talking about, however it was probably inspired by IBM's APL line-based workspace editor.

    APL programmers had multiple-level undo/redo on their selectric typewriters around 1965. Each interaction was numbered, and you could select the number of the last interaction you wanted to keep. This would reset the entire workspace so that all variables, your program image, and options would be restored. This worked by saving the workspace each time a command completed, and was also useful for restoring sessions after interrupted connections.

    Single-level undo appeared much earlier -- the first IBM teletype line editors in the late 1950s had single-level undo.

  6. Re:I'd like to know by exp(pi*sqrt(163)) · · Score: 4, Interesting

    Here's what one well known Academy Award winning 3D package does. Every command is an object. When you execute a command that object is stored in a 'history'. The command has two methods, a do() method and an undo() method. As long is the object remains alive it can undo or redo the associated operation.

    --
    Doesn't it make you feel good to know that our freedoms are protected by politicans, lawyers and journalists.
  7. "Commit" = "Undo" by dpbsmith · · Score: 4, Interesting

    I remember a rudimentary CAD program for the Apple ][+, circa 1982 or 1983. I wish I could remember the name...

    I personally first encountered "Undo" on the Mac in 1984. But this CAD program had a function... they didn't call it "commit." I don't remember the exact language they DID use.

    The idea was that you never had to worry about making mistakes, because every action you took was tentative, and would be shown to you as a preview before taking effect.

    So you'd give a command to draw a line, you'd see the line onscreen, and you could either accept it (in which case it became part of the drawing) or reject it (in which case it disappeared).

    The weird thing about all this is that logically, it is exactly equivalent to an "undo" function.

    And the even weirder thing is that while an "undo" function feels empowering and liberating... when the exact same function was presented as "tentative action, preview, accept/reject" it felt clumsy and laborious.

    To me, anyway.