Article
The Real History of the GUI
The 40s - GUI Forefathers: Bush and Engelbart
Let’s back up to 1945 (!) and a visionary named Vannevar Bush. Bush, a scientist and futurist, went public with his ideas of the “memex,” a computing device that would use what we’d call hyperlink technology to bring information to every user’s fingertips.
Bush’s ideas sparked some visionary thinking in a scientist named Douglas Engelbart. As early as 1962, while Jobs and Wozniak were still drinking Ovaltine and watching Saturday morning cartoons in their jammies, Engelbart was creating several items of interest to the personal computing crowd that would follow. He invented the first “mouse,” which he called an “X-Y Position Indicator,” a little gizmo housed in a wooden box on wheels that moved around the desktop and took the cursor with it on the display. Engelbart saw the mouse as being an integral part of a “graphical windowed interface,” and invented what he called "a windowed GUI" that fascinated co-workers but wasn’t considered useful outside the lab. In 1968 Engelbart created NLS (oNLine System), a hypermedia groupware system that used the mouse, the windowed GUI, hypermedia with object addressing and linking, and even an early version of video teleconferencing to wow its audience, a group of technicians, engineers, and scientific types at Stanford University.
However, Engelbart was not the only visionary in the history of GUI. In 1963 a grad student at MIT, Ivan Sutherland, submitted as his thesis a program called “Sketchpad,” which directly manipulated objects on a CRT screen using a light pen.
"Sketchpad pioneered the concepts of graphical computing, including memory structures to store objects, rubber-banding of lines, the ability to zoom in and out on the display, and the ability to make perfect lines, corners, and joints. This was the first GUI (Graphical User Interface) long before the term was coined."
–- from a Sun Microsystems biography of Ivan Sutherland
The idea of direct manipulation of objects on a screen is integral to the concept of a graphic interface. In fact, the idea of a GUI derives from cognitive psychology, the study of how the brain deals with communication. The idea is that the brain works much more efficiently with graphical icons and displays rather than with words – words add an extra layer of interpretation to the communication process. Imagine if all the road signs you saw were uniform white rectangles, with only the words themselves to differentiate the different commands, warnings, and informational displays. When the “Stop” signs hardly look different from the “Resume Highway Speed” signs, the processing of the signs’ messages becomes a slower and more difficult process, and you’d have even more wrecks than you have now.
Combine this with Alan Kay’s concept of “biological computing,” where computer components function like organic “cells,” either independently or in concert whenever appropriate, and you have an idea of the thinking behind both modern computing, and the GUI.
The 70s - SmallTalk and Xerox
"The best way to predict the future is to invent it."
-- informal PARC slogan
The underground buzz stayed underground, but Engelbart’s and Sutherland’s creations were not lost on the creative fellows at Xerox’s PARC facility. PARC was (and is), at least in some respects, a computing “think tank,” where brilliant and brilliantly erratic minds cranked out ideas and tried, with varying success, to implement them on the workbench.
In the early 70s, as part of a (sadly abortive) project called “Dynabook” that envisioned notebook-sized, hyperlinked computers, Alan Kay and others developed an interactive object-oriented programming language called Smalltalk. Kay had previously worked with a team at the University of Utah that developed a programming system called Flex. This was a design for a flexible simulation and graphics-oriented personal computer, with many ideas derived from the Norwegian-developed Simula programming language, another programming language called LISP, and Sutherland’s Sketchpad. Kay also borrowed ideas from a highly graphical language called Logo, which was designed to teach programming to children. Smalltalk featured a graphical user interface (GUI) that looked suspiciously similar to later iterations from both Apple and Microsoft.
Smalltalk didn’t stop with an innovation in user interface: it featured a multi-platform virtual machine years before the folks at Sun came up with Oak/Java, object orientation, overlapping “windows,” and the first instance of bit-blt or "bit-blitting," the last two contributed by Dan Ingalls (the object-oriented language featured in ST actually showed up in the Simula-67 program in the late 1960s; “bit-blitting,” or bit block transfer, is, in simplistic terms, the protocol by which objects on a screen can be manipulated). A lot of observers feel that ST’s clean, easy-to-use interface has yet to be surpassed even today. The first program to be written under Smalltalk was Pygmalion, which is most notable for its demonstration that computer programming could be graphically based and not restricted to text. The idea of using icons to stand for data was reflected in Pygmalion.
The first real-life, usable GUI appeared in Xerox’s Alto computer, which debuted in 1974 and was envisioned as a smaller, much more portable replacement for the mainframes of the time. The Alto, which didn’t have a GUI as you and I are used to using, but instead featured graphically driven applications, was about the size of a Volkswagen (well, not quite, but the thing was big) and certainly not useful for the average user, even though it started its life showing an image of Sesame Street’s “Cookie Monster.” The Alto featured a bit-mapping display, which was essential for displaying graphics and WYSIWYG printing. Kay, David Canfield Smith, Bill Verplank, and others also developed iconic representations for various programs for the Alto, most noticeably the drawing program “Markup,” the text editor “Bravo,” and the painting program “Superpaint.”
In 1981, the design and concepts which gave birth to the Alto led to the development and production of the much more streamlined, and more usable Xerox Star – the first true GUI-driven PC. According to Bruce Horn, an ex-Xerox employee who wound up working for Apple, the software architecture for Smalltalk and the Star were much more sophisticated than the Mac or Windows equivalents. While the Apple machines incorporated much of Xerox’s brainstorms, many of the most innovative and sophisticated ideas never made it into the Apples, mostly due to Apple’s insistence on keeping costs down. The Star featured the first “computer desktop,” as well as overlapping, resizable windows, and the sophisticated PARC mouse, a gee-whiz gizmo that ran with no moving parts and used laser beams and a metal grid to track the cursor’s movement (though employees found that the mouse worked just as well on Levis as it did on the metal grid). The interface was known as WIMP – Windows, Icons, Menus, and Pointers. PARC’s consensus was that once these ideas were implemented on a wide scale, computing efficiency would increase dramatically.