# David Canfield Smith

David Canfield Smith is an American computer scientist best known for inventing computer icons and the programming technique known as programming by demonstration. His primary emphasis has been in the area of human–computer interaction (CHI) design. His goal was to make computers easier for ordinary people to use. He is one of the pioneers of the modern graphical user interfaces (GUI) for computers, having invented such techniques as the desktop metaphor, dialog boxes, and universal commands.

## Personal life and influence

Smith was born in Roanoke, Virginia on March 29, 1945. Smith graduated from Chillicothe (Ohio) High School in 1963 and was inducted into the Chillicothe High School Distinguished Alumni Hall of Fame in 2007

### Oberlin College

Smith attended Oberlin College, where he earned a Bachelor of Science degree with honors in mathematics in 1967. During his senior year, Smith realized he didn't want to pursue a career as a mathematics professor, which had been his goal up to then. Fortunately, the field of computer science was just getting started; it seemed tailor made to funnel his interest in mathematics into solving real world problems. He developed an initial interest in artificial intelligence (AI) after reading Computers and Thought by Edward A. Feigenbaum and Julian Feldman. That inspirational book suggested that AI was the future of computing, and Smith wanted to be involved.

### Stanford University

In 1967, he began pursuing his Ph.D. in computer science at Stanford University. He joined the Stanford Artificial Intelligence Laboratory (SAIL). Following Feigenbaum and Feldman, Smith wanted to make a computer able to learn. His thought was that if a computer could learn, then it could apply that ability to the task of learning itself, and thus learn how to learn better. After a few iterations, it should become an expert learner. At that point people could apply it to some of the thorny problems of human civilization, and real scientific progress could be made. However progress was slow in AI and would remain slow for the rest of the century, due to the underpowered computers of the day. It wasn’t until the turn of the century that computers finally became powerful enough for artificial neural networks (ANNs) to reach their potential.
In the meantime, Smith was becoming disillusioned with AI. He turned to Alan Kay, an assistant professor in computer science at Stanford who also worked in the AI lab, for help. One day Kay said one of the most consequential statements in Smith’s life. Kay said, “I don’t want to make a smarter computer; I want to use computers to make people smarter.” This was an epiphany for Smith. “I want to do that too!” he thought. He asked Kay to be his thesis advisor, and Kay agreed. In their first meeting to discuss the thesis (an ill-formed desire to do computer programming visually), Kay handed Smith a stack of books on art and philosophy, including Visual Thinking by Rudolf Arnheim, The Act of Creation by Arthur Koestler, Art and Illusion by Ernst Gombrich, and The Psychology of Invention in the Mathematical Field by Jacques Hadamard. This surprised Smith a great deal, since he had been expecting books on algorithms and data structures, programming language design, compiler construction techniques, etc. But Kay believed that ideas outside of computer science were essential to advance the field. Smith was baffled by this at first. Now he realizes that those books have been the most important ones in his career; he has referred to them repeatedly, and they have guided his thinking ever since.
Smith completed his Ph.D. in 1975.

## Pygmalion

Pygmalion is the name of Smith's thesis at Stanford. It contained two new innovations: the concepts of computer icons and programming by demonstration. Smith named this program Pygmalion after the famous sculptor Pygmalion from Roman mythology. The program was implemented in the brand new programming language Smalltalk on the brand new personal computer the Xerox Alto.

### The development of icons

Smith and his fellow students at Stanford would often come together to brainstorm solutions to problems. This typically involved a blackboard. They would sketch out images and diagrams describing the solution. Then they would sit down and translate those diagrams into a programming language that a computer would accept. That is where problems arose. The translation distance between the images and the linear code was large. Trying to bridge it led to many errors. It occurred to Smith that if the computer could just execute the blackboard sketches directly, they would be done. And a whole class of errors would go away. So he decided to make this the goal of his Ph.D. research. He would create an executable electronic blackboard.
When creating Pygmalion, Smith wanted objects that could be directly manipulated in the system. Smith was inspired by the belief within certain religions, that images portraying holy figures embody some of the holiness of that figure. Smith viewed the objects in Pygmalion as having both visual and mechanical schematics that they represent. He saw a religious icon and the objects he was drawing as having the same double meaning, thus he named these objects icons.

## Career timeline

1963-1967: Pursued a B.A. in mathematics at Oberlin College
1967-1975: Pursued a Ph.D. in computer science at Stanford University. During this time, Smith also worked at Xerox PARC, where he associated with Alan Kay’s Learning Research Group which developed Smalltalk, one of the first object-oriented programming languages. Smith’s thesis project Pygmalion was written in Smalltalk.
1975-1976: Programmer in Douglas Engelbart’s Augmentation Research Center (ARC) at the Stanford Research Institute (SRI). Smith was drawn to ARC because of the many forward-looking papers coming out of it and by Englebart's The Mother of All Demos. However, Smith didn't feel that Englebart was keeping up with the cutting-edge research that he had just seen at PARC. Most importantly, Englebart was committed to time-sharing systems, whereas PARC was pioneering personal computers.
1976-1983: User interface designer at Xerox in the Xerox Systems Development Division. Smith was one of the six principal designers of the user interface for the Xerox Star computer.
1983-1984: User interface designer at VisiCorp – At the time, Smith joined VisiCorp, it was larger than Microsoft and produced four of the top ten best selling personal computer applications - including VisiCalc. He joined VisiCorp because he admired VisiCalc inventors Bob Frankston and Dan Bricklin. Similar to them, he wanted to contribute a breakthrough PC application. Consequently, he prototyped a new application that was going to do for relational databases what VisiCalc had done for financial modelling. Unfortunately, VisiCorp went out of business before he could turn his prototype into a product. Smith describes this as one of the biggest disappointments of his career.
1984-1985: Cofounder, system architect, and user interface designer at Dest Systems – Smith, and other former employees of VisiCorp, formed a start-up under the umbrella of Dest Corporation to combine Dest's optical character recognition (OCR) reader with mass storage devices, such as optical disks to transform large amounts of paper documentation into a searchable and editable electronic form. The team was influenced by statistics such as: the documentation for the Boeing 747 weighed more than the airplane itself. Again, Smith and his team prototyped the product, but Dest suffered financial difficulties before they could fully execute it.
1985-1988: Cofounder and vice president of human interfaces at Cognition – This was a Massachusetts start-up that attempted to do for mechanical engineers what workstations such as Daisy's and Mentor Graphics did for electrical engineers. Architecturally, it was based on Ivan Sutherland's Sketchpad; it used constraint-based geometry to portray mechanical devices such as the windshield raising-lowering mechanism in cars. The dimensions, angles, and other measurements in the diagrams were linked to mathematical formulas. When the values in the formulas changed, the diagrams automatically updated to represent the changes. The engineer always had an accurate visual picture of his mathematical model. Smith designed a simple interface modeled on an engineer's notebook. It had sketch notes for the diagrams, math notes for the formulas, text notes for textual descriptions, and others. These could all be placed into the pages of a notebook. It was a modular design that made it easy to incorporate new note types as users invented them. The product was finished and sold, but Cognition was never profitable and went out of business. Cognition had been implemented on dedicated high-power workstations, which became uncompetitive due to the increasing power of low-cost personal computers using Intel chips. However, the Cognition interface was successful and won a General Motors competition to become its User Interface Management System (UIMS).
1988-1996: User interface designer at Apple – Smith worked in the Apple Advanced Technology Group where he and Allen Cypher invented KidSim, with important contributions by Alan Kay. KidSim was based on Smith’s idea of programming by demonstration. But the project invented an equally powerful idea: visual rule programming.
1996-2002: Cofounder and user interface designer of Stagecast – After the Advanced Technology Group was abolished by Apple, Smith and some of his Apple coworkers formed a start-up called Stagecast to turn KidSim into a product. They renamed KidSim to Creator. Creator was developed, refined, and extended by a dedicated team of engineers at Stagecast. Creator was completed (versions 1.0 and 2.0) and was sold into schools. But that was a tough market around the turn of the century before the iPad, and eventually Stagecast went out of business due to a lack of funding.
2002-2003: Human-computer interface designer at IBM

## Xerox Star

Smith served as a user interface designer for the Xerox System Development Division between 1976 and 1983. His role as one of the six principal designers for the Xerox Star constitute his main contributions to the field of human–computer interaction. The other five designers were Larry Clark, Eric Harslem, Charles Irby, Ralph Kimball, and Jim Reilly. While working on the Star, Smith helped develop four main features: the desktop metaphor, dialog boxes, the icon designs, and universal commands.

### Desktop metaphor

The desktop metaphor is the representation of common office objects in a computer's user interface. Smith and his colleagues were trying to develop a computer for the office. Prior computers were not tailored to the office and what Smith called "knowledge workers". He made a distinction between how these knowledge workers and secretaries - who were the common computer users at the time - wanted to use a computer. To introduce a computer that knowledge workers could easily understand and interact with, Smith believed it was imperative to incorporate objects and ideas they were already familiar with. This led him to represent common office items, such as documents, folders, file cabinets, and wastebaskets, in his icon designs for the Star.

### Dialog boxes

A dialog box is a small window that contain clickable options, allowing users to communicate a command to the computer. By presenting a list of options within these boxes, users don't need to memorize them.

### Icons

Smith designed the initial icons of the office icons for Xerox Star. As development on the Star progressed and drew closer to completion, he and the other designers decided that the icons needed a more professional look. The six of them began interviewing graphic design artists that could polish his initial drafts. They soon met Norm Cox - an artist already working for Xerox in Dallas, Texas. After Cox created several new sets of the icons, they conducted user tests to finalize which set would be more appropriate for the Star system. These tests were used to determine which of the different sets were most aesthetically pleasing, identifiable to the real world object they represented - such as a printer or mailbox - and how fast users could locate a given type of icon in a screen full of them.

### Universal commands

A universal command is a command that work in all applications of a system. In Smith's own words, “This simplifies the system as a whole without reducing its power. Some of the universal commands for the Star were: Again, Copy, Copy Properties, Delete, Move, Show Properties, and Undo.

## Apple
### KidSim

For eight years, Alan Kay, Allen Cypher, and Smith worked closely together in the Apple Advanced Technology Group to find a way to teach children how to program. During this project, they faced two main issues. The first issue was how to input programs without boring or overwhelming students, and the second was how to understand how a program works once it is written. Their efforts were ultimately successful and they developed a system called KidSim (for Kids' Simulations). The system enabled children as young as preschoolers to program video games that other children could play.

### Component software

One of Smith's side projects at Apple was component software. In hardware, the designer does not descend to the level of individual transistors and resistors, but rather, goes to a component catalogue, selects a set of integrated circuits, and pieces them together. However, in software, the designer deals with the lowest level elements: conditional statements, variables, and procedure calls. Sometimes a library will provide predefined routines that can be called, thereby saving the designer the work of implementing them. However, these libraries often don't do what is needed or they cannot be used properly. Component software attempted to enable software components for use in an analogous way with hardware components. Like many of Smith's other projects, it did not continue past the prototype stage.

### OpenDoc

Another one of Smith's side projects was OpenDoc. Apple wanted to implement a new document architecture. In OpenDoc, a user could write documents using an open-ended collection of multimedia components. The architecture was flexible enough to allow new types of components to be included as people thought of them. For this project, Smith acted as the user interface consultant and contributed a new universal command: Link. Link would later be added to the list of universal commands such as cut, copy, paste, and undo, that worked with all components. Link established a dynamic connection between components. For example, between a spreadsheet component and a database component, when a change was made in one of these components, the same change was made it the other. This command reduced the amount of manual updating needed to change materials and provided a significant increase in functionality with almost no increase in complexity. Unfortunately, OpenDoc was quickly discontinued.

### Extensible programming language

Finally, Smith designed a new extensible programming language for use within the Advanced Technology Group. This language used the PLisp technology previously developed by Larry Tesler, Horace Enea, and Smith at Stanford. Not only could new programming constructs be added to the language, enabling a programmer to use those constructs in a program, but such extensions could be made at compile time. That is, the programmer could include a preface at the beginning of a program which would dynamically add features just for the program that follows. However, this language was never implemented.

## Stagecast Creator

Stagecast Creator is a visual programming language based on the concept of programming by example. It was intended to teach children how to program. Smith believed that programming was not inherently hard, but that the true problem was that computer scientists had failed to create an easier way to learn and do it. Creator was a solution to this problem. Through user testing groups of 4th, 5th, and 6th graders, Smith and his team discovered the programming language was most successful within the 5th grade groups. He believed that the 5th graders were “around the age where they didn’t have the creativity and enthusiasm crushed out of them by the education system, yet old enough to be inventive”. Smith wanted a new way to engage kids and actually teach them how to think, instead of how to memorize facts. Although the kids looked at creating simulations with Creator as making video games, Smith believed he was implicitly teaching them the scientific method. By using Creator, kids were creating theories and hypotheses, and experiments to test them, executing those experiments, and then observing the results to confirm or disprove their hypotheses.
Creator is a continuation of Smith's KidSim project at Apple. In 1997, Steve Jobs eliminated the Advanced Technology Group that Smith was working for. This meant that KidSim would no longer receive funding. However, Apple gave Smith and about 12 other employees of the former Advanced Technology Group permission to continue the project on their own. In 1997, Smith and his fellow employees created a start-up, Stagecast, Inc., to continue their work with KidSim. The goal of that firm was to finish the Java implementation of KidSim and sell it as a commercial product. Soon after founding the company, KidSim was renamed Creator. The first version was finished in 2000 and the second version in 2001. Stagecast, Inc. went out of business in 2002 due to a lack of funding from venture capitalists in Silicon Valley. In his own words, Smith said several venture capitalists told his company, "We love your software, and could we please have a copy for our kids? But we aren’t going to fund you because we’ve never made money on educational software." Smith called the disbandment of Stagecast, Inc., the second greatest disappointment of his career.

## Retirement

Smith and his wife Janet retired at the beginning of 2004. After several years traveling in an RV, Smith began writing a book about those years called Travels with Janet, inspired by John Steinbeck's Travels with Charley: In Search of America. Smith also began collaborating with Henry Lieberman on radically new user interfaces.