DUCENTESIMO QUINQUAGESIMO PRIMO
VITAE POUYAE
A number of interesting software systems were coded in SAIL, including some early versions of FTP and TeX, a document formatting system called PUB, and BRIGHT, a clinical database project sponsored by the National Institutes of Health.
In 1973, I joined Xerox Palo Alto Research Center (PARC) as a member of the PARC Online Office System (POLOS) team but spent some of my time working on Smalltalk with Alan Kay’s Learning Research Group. One reason I was interested in working with Kay was that his invention of overlapping windows was motivated by a desire to find alternatives to modes.
In the 1970s, move and copy were edits that users wanted to perform and cut/copy-paste was a new way for users to perform them. Now these terms have reversed roles. Users don’t say they want to “move” things; they say they want to “cut and paste” them.
Next up for me was the page-makeup system that Ginn and Company had requested. I used Smalltalk to build a prototype called Cypress. After the user made a selection, an edit menu would pop up automatically nearby, as on today’s iPhone.
During my first week on the job, Bill English asked me to work with another new hire, Jeff Rulifson, to develop a vision of the future of editing. Rulifson and I met several times to brainstorm. When I confided my concerns about the NLS command language, he revealed that he had designed it. He had meant it to serve as a temporary tool for software testing. Engelbart’s team had run usability studies and made incremental improvements, but they had not seriously considered suffix syntax,
[...] Rulifson and I also discussed the use of graphics in interfaces. He had recently read a book about semiotics that defined an icon as a labeled pictogram and mentioned its potential relevance to interactive computing.
We circulated a few versions of a white paper around PARC. It was entitled “OGDEN: An Overly General Display Editor for Non-programmers.” We proposed iconic user interfaces with desks and file cabinets. We also proposed modeless postfix syntax with cut and paste. Rulifson’s willingness to turn the user interface he had designed for NLS on its head made it much easier to get the rest of the POLOS team to consider my proposals.
Law of Conservation of Complexity: Every system has an irreducible amount of complexity; the only question is, who is going to have to deal with it? The user? The application programmer? Or the platform developer?
One of many contributions the Lisa made to the GUI was the dialog box, a vehicle for providing parameters to a modeless command. Rod Perkins designed Lisa dialog boxes. The typical dialog prevented the user from continuing work while it was open. That made it modal. But the widgets within the dialog could be operated in any order, making it locally modeless. And the mode escape was performed in a consistent way, by clicking dismissal buttons that were consistently located and labeled.
Tesler’s Law, also known as The Law of Conservation of Complexity, states that for any system there is a certain amount of complexity which cannot be reduced.
[...] Larry Tesler argues that, in most cases, an engineer should spend an extra week reducing the complexity of an application versus making millions of users spend an extra minute using the program because of the extra complexity. However, Bruce Tognazzini proposes that people resist reductions to the amount of complexity in their lives. Thus, when an application is simplified, users begin attempting more complex tasks.
I developed the Smalltalk Browser, an ancestor of today’s IDE’s (integrated development environments).
At least two PUB users reacted to these shortcomings by developing a better language. Brian Reid, then at CMU, developed Scribe for nontechnical users. He implemented the first version (Cafe) entirely in PUB (see "Chapter 9: An Evaluation of the System" on page 110 of Scribe: A Document Specification Language and Its Compiler). Don Knuth developed TeX for authors of mathematical texts.
In 1963, Jerry Saltzer developed RUNOFF, the first known computer-based system in which an author could insert markup codes into a digital manuscript and run the file through a markup processor to generate a formatted document. Around the same time, inspired by a demo of RUNOFF or a similar program, John Seybold founded a typesetting service bureau, ROCAPPI (1963-70). ROCAPPI is said to have developed powerful editing and layout systems and even a form of generic markup.
RUNOFF spawned Joe Ossanna's troff/nroff (1973), later enhanced by Brian Kernighan, co-developer of Unix and C, and still popular on Unix systems. IBM's SCRIPT, released circa 1967, had a similar syntax to RUNOFF. By 1974, SCRIPT had spawned the PUB-like NSCRIPT and Waterloo Script, as well as the generalized markup language, GML.
PUB is all but forgotten. It is not even mentioned in most histories of Scribe and TeX. But its reinventions, JavaScript and PHP, have become indispensible in the world of web authoring. As such, history has confirmed what Les postulated at least as early as 1971: built-in markup tags will never be able to handle the variety of formatting effects that authors and publishers require. To achieve effects that a markup language designer could not have anticipated, a powerful scripting language should be provided.
In 1978, Charles Goldfarb, the principal developer of GML, joined with other advocates of generalized markup to begin work on SGML. SGML has become a widely used language for describing industrial documents. In 1990, Tim Berners-Lee chose SGML as the basis for his World Wide Web hypertext language, the original HTML. The success of HTML spawned XML, now (February 2005) the favored format for structured data exchange.