GUIdebook: Graphical User Interface galleryHome > Articles > “Microelectronics and the Personal Computer”
GUIsTimelinesScreenshotsIconsSoundsSplashesApplicationsAdsVideosArticlesBooksTutorialsExtras
Go backArticlesMicroelectronics and the Personal Computer

Reprinted from Scientific American, September 1977, pp. 230-244.

COMPUTER SIMULATIONS generated on a high-resolution television display at the Evans & Sutherland Computer Corporation show the quality of the images it should eventually be possible to present on a compact personal computer. The pictures are frames from two dynamic-simulation programs that revise an image 30 times per second to represent the continuous motion of objects in projected three-dimensional space. The sequence at the top, made for the National Aeronautics and Space Administration, shows a space laboratory being lifted out of the interior of the space shuttle. The sequence at the bottom, made for the U.S. Maritime Administration, shows the movement of tankers in New York harbor. Ability of the personal computer to simulate real or imagined phenomena will make it a new medium of communication.
This image can be zoomedCOMPUTER SIMULATIONS generated on a high-resolution television display at the Evans & Sutherland Computer Corporation show the quality of the images it should eventually be possible to present on a compact personal computer. The pictures are frames from two dynamic-simulation programs that revise an image 30 times per second to represent the continuous motion of objects in projected three-dimensional space. The sequence at the top, made for the National Aeronautics and Space Administration, shows a space laboratory being lifted out of the interior of the space shuttle. The sequence at the bottom, made for the U.S. Maritime Administration, shows the movement of tankers in New York harbor. Ability of the personal computer to simulate real or imagined phenomena will make it a new medium of communication.
Rates of progress in microelectronics suggest that in about a decade many people will possess a notebook-size computer with the capacity of a large computer of today. What might such a system do for them?

The future increase in capacity and decrease in cost of microelectronic devices will not only give rise to compact and powerful hardware but also bring qualitative changes in the way human beings and computers interact. In the 1980’s both adults and children will be able to have as a personal possession a computer about the size of a large notebook with the power to handle virtually all their information-related needs. Computing and storage capacity will be many times that of current microcomputers: tens of millions of basic operations per second will manipulate the equivalent of several thousand printed pages of information.

The personal computer can be regarded as the newest example of human mediums of communication. Various means of storing, retrieving and manipulating information have been in existence since human beings began to talk. External mediums serve to capture internal thoughts for communication and, through feedback processes, to form the paths that thinking follows. Although digital computers were originally designed to do arithmetic operations, their ability to simulate the details of any descriptive model means that the computer, viewed as a medium, can simulate any other medium if the methods of simulation are sufficiently well described. Moreover, unlike conventional mediums, which are passive in the sense that marks on paper, paint on canvas and television images do not change in response to the viewer’s wishes, the computer medium is active: it can respond to queries and experiments and can even engage the user in a two-way conversation.

The evolution of the personal computer has followed a path similar to that of the printed book, but in 40 years rather than 600. Like the handmade books of the Middle Ages, the massive computers built in the two decades before 1960 were scarce, expensive and available to only a few. Just as the invention of printing led to the community use of books chained in a library, the introduction of computer time-sharing in the 1960’s partitioned the capacity of expensive computers in order to lower their access cost and allow community use. And just as the Industrial Revolution made possible the personal book by providing inexpensive paper and mechanized printing and binding, the microelectronic revolution of the 1970’s will bring about the personal computer of the 1980’s, with sufficient storage and speed to support high-level computer languages and interactive graphic displays.



EXPERIMENTAL PERSONAL COMPUTER was built at the Xerox Palo Alto Research Center in part to develop a high-level programming language that would enable nonexperts to write sophisticated programs. The author and his colleagues were also interested in using the experimental computer to study the effects of personalcomputing on learning. The machine is completely self-contained, consisting of a keyboard, a pointing device, a high-resolution picture display and a sound system, all connected to a small processing unit and a removable disk-file memory. Display can present thousands of characters approaching the quality of those in printed material.
This image can be zoomedEXPERIMENTAL PERSONAL COMPUTER was built at the Xerox Palo Alto Research Center in part to develop a high-level programming language that would enable nonexperts to write sophisticated programs. The author and his colleagues were also interested in using the experimental computer to study the effects of personalcomputing on learning. The machine is completely self-contained, consisting of a keyboard, a pointing device, a high-resolution picture display and a sound system, all connected to a small processing unit and a removable disk-file memory. Display can present thousands of characters approaching the quality of those in printed material.
Ideally the personal computer will be designed in such a way that people of all ages and walks of life can mold and channel its power to their own needs. Architects should be able to simulate three-dimensional space in order to reflect on and modify their current designs. Physicians should be able to store and organize a large quantity of information about their patients, enabling them to perceive significant relations that would otherwise be imperceptible. Composers should be able to hear a composition as they are composing it, notably if it is too complex for them to play. Businessmen should have an active briefcase that contains a working simulation of their company. Educators should be able to implement their own version of a Socratic dialogue with dynamic simulation and graphic animation. Homemakers should be able to store and manipulate records, accounts, budgets, recipes and reminders. Children should have an active learning tool that gives them ready access to large stores of knowledge in ways that are not possible with mediums such as books.

How can communication with computers be enriched to meet the diverse needs of individuals? If the computer is to be truly “personal,” adult and child users must be able to get it to perform useful activities without resorting to the services of an expert. Simple tasks must be simple, and complex ones must be possible. Although a personal computer will be supplied with already created simulations, such as a general text editor, the wide range of backgrounds and ages of its potential users will make any direct anticipation of their needs very difficult. Thus the central problem of personal computing is that nonexperts will almost certainly have to do some programming if their personal computer is to be of more than transitory help.

To gain some understanding of the problems and potential benefits of personal computing my colleagues and I at the Xerox Palo Alto Research Center have designed an experimental personal computing system. We have had a number of these systems built and have studied how both adults and children make use of them. The hardware is faithful in capacity to the envisioned notebook-size computer of the 1980’s, although it is necessarily larger. The software is a new interactive computer-language system called SMALLTALK.

SMALLTALK is a new programming language developed at the Xerox Palo Alto Research Center for use on the experimental personal computer. It is made up of “activities,” computerlike entities that can perform a specific set of tasks and can also communicate with other activities in the system. New activities are created by enriching existing families of activities with additional “traits,” or abilities, which are defined in terms of a method to be carried out. The description of the family “box” shown here is a dictionary of its traits. To create a new member of the family box, a message is sent to the trait “new” stating the characteristics of the new box in terms of specific values for the general traits “location,” “angle” and “size.” In this example “new” has been filled in to specify a box located in the center of the screen with an angle of zero degrees and a side 100 screen dots long. To “show” the new box, a member of the curve-drawing family “brush” is given directions by the open trait “shape.” First the brush travels to the specified location, turns in the proper direction and appears on the screen. Then it draws a square by traveling the distance given by “size,” turning 90 degrees and repeating these actions three more times. The last trait on the list is open, indicating that a numerical value is to be supplied by the user when the trait is invoked by a message. A box is “grown” by first erasing it, increasing (or decreasing) its size by the value supplied in the message and redisplaying it.
This image can be zoomedSMALLTALK is a new programming language developed at the Xerox Palo Alto Research Center for use on the experimental personal computer. It is made up of “activities,” computerlike entities that can perform a specific set of tasks and can also communicate with other activities in the system. New activities are created by enriching existing families of activities with additional “traits,” or abilities, which are defined in terms of a method to be carried out. The description of the family “box” shown here is a dictionary of its traits. To create a new member of the family box, a message is sent to the trait “new” stating the characteristics of the new box in terms of specific values for the general traits “location,” “angle” and “size.” In this example “new” has been filled in to specify a box located in the center of the screen with an angle of zero degrees and a side 100 screen dots long. To “show” the new box, a member of the curve-drawing family “brush” is given directions by the open trait “shape.” First the brush travels to the specified location, turns in the proper direction and appears on the screen. Then it draws a square by traveling the distance given by “size,” turning 90 degrees and repeating these actions three more times. The last trait on the list is open, indicating that a numerical value is to be supplied by the user when the trait is invoked by a message. A box is “grown” by first erasing it, increasing (or decreasing) its size by the value supplied in the message and redisplaying it.
In the design of our personal computing system we were influenced by research done in the late 1960’s. At that time Edward Cheadle and I, working at the University of Utah, designed FLEX, the first personal computer to directly support a graphics- and simulation-oriented language. Although the FLEX design was encouraging, it was not comprehensive enough to be useful to a wide variety of nonexpert users. We then became interested in the efforts of Seymour A. Papert, Wallace Feurzeig and others working at the Massachusetts Institute of Technology and at Bolt, Beranek and Newman, Inc., to develop a computer-based learning environment in which children would find learning both fun and rewarding. Working with a large time-shared computer, Papert and Feurzeig devised a simple but powerful computer language called LOGO. With this language children (ranging in age from eight to 12) could write programs to control a simple music generator, a robot turtle that could crawl around the floor and draw lines, and a television image of the turtle that could do the same things.

After observing this project we came to realize that many of the problems involved in the design of the personal computer, particularly those having to do with expressive communication, were brought strongly into focus when children down to the age of six were seriously considered as users. We also realized that children require more computer power than an adult is willing to settle for in a time-sharing system. The best outputs that time-sharing can provide are crude green-tinted line drawings and square-wave musical tones. Children, however, are used to finger paints, color television and stereophonic records, and they usually find the things that can be accomplished with a low-capacity time-sharing system insufficiently stimulating to maintain their interest.

Since LOGO was not designed with all the people and uses we had in mind, we decided not to copy it but to devise a new kind of programming system that would attempt to combine simplicity and ease of access with a qualitative improvement in expert-level adult programming. In this effort we were guided, as we had been with the FLEX system, by the central ideas of the programming language SIMULA, which was developed in the mid-1960’s by Ole-Johan Dahl and Kristen Nygaard at the Norwegian Computing Center in Oslo.

“WINDOWS,” display frames within the larger display screen, enable the user to organize and edit information at several levels of refinement. Once the windows are created they overlap on the screen like sheets of paper. When a partially covered window is selected with the pointing device, the window is redisplayed to overlap the other windows. Images with various degrees of symbolic content can be displayed simultaneously. Such images include detailed halftone drawings, analogical images such as graphs and symbolic images such as numbers or words.
This image can be zoomed“WINDOWS,” display frames within the larger display screen, enable the user to organize and edit information at several levels of refinement. Once the windows are created they overlap on the screen like sheets of paper. When a partially covered window is selected with the pointing device, the window is redisplayed to overlap the other windows. Images with various degrees of symbolic content can be displayed simultaneously. Such images include detailed halftone drawings, analogical images such as graphs and symbolic images such as numbers or words.
Our experimental personal computer is self-contained and fits comfortably into a desk. Long-term storage is provided by removable disk memories that can hold the equivalent of 1,500 printed pages of information (about three million characters). Although image displays in the 1980’s will probably be flat-screened mosaics that reflect light as liquid-crystal watch displays do, visual output is best supplied today by a high-resolution black-and-white or color television picture tube. High-fidelity sound output is produced by a built-in conversion from discrete digital signals to continuous waveforms, which are then sent to a conventional audio amplifier and speakers. The user makes his primary input through a typewriterlike keyboard and a pointing device called a mouse, which controls the position of an arrow on the screen as it is pushed about on the table beside the display. Other input systems include an organ-like keyboard for playing music, a pencillike pointer, a joystick, a microphone and a television camera.

The commonest activity on our personal computer is the manipulation of simulations already supplied by the SMALLTALK system or created by the user. The dynamic state of a simulation is shown on the display, and its general course is modified as the user changes the displayed images by typing commands on the keyboard or pointing with the mouse. For example, formatted textual documents with multiple typefaces are simulated so that an image of the finished document is shown on the screen. The document is edited by pointing at characters and paragraphs with the mouse and then deleting, adding and restructuring the document’s parts. Each change is instantly reflected in the document’s image.

In many instances the display screen is too small to hold all the information a user may wish to consult at one time, and so we have developed “windows,” or simulated display frames within the larger physical display. Windows organize simulations for editing and display, allowing a document composed of text, pictures, musical notation, dynamic animations and so on to be created and viewed at several levels of refinement. Once the windows have been created they overlap on the screen like sheets of paper; when the mouse is pointed at a partially covered window, the window is redisplayed to overlap the other windows. Those windows containing useful but not immediately needed information are collapsed to small rectangles that are labeled with a name showing what information they contain. A “touch” of the mouse causes them to instantly open up and display their contents.



SMALLTALK LEARNING SEQUENCE teaches students the basic concepts of the language by having them interact with an already defined family of activities. First, offspring of the family box are created, named and manipulated, and a second family of activities called “interval” is introduced. Offspring of the interval and box families are then combined to generate an animation of two spinning boxes.
This image can be zoomedSMALLTALK LEARNING SEQUENCE teaches students the basic concepts of the language by having them interact with an already defined family of activities. First, offspring of the family box are created, named and manipulated, and a second family of activities called “interval” is introduced. Offspring of the interval and box families are then combined to generate an animation of two spinning boxes.
In the present state of the art software development is much more difficult and time-consuming than hardware development. The personal computer will eventually be put together from more or less standard microelectronic components, but the software that will give life to the user’s ideas must go through a long and arduous process of refinement if it is to aid and not hinder the goals of a personal dynamic medium.

For this reason we have over the past four years invited some 250 children (aged six to 15) and 50 adults to try versions of SMALLTALK and to suggest ways of improving it. Their creations, as imaginative and diverse as they themselves, include programs for home accounts, information storage and retrieval, teaching, drawing, painting, music synthesis, writing and games. Subsequent designs of SMALLTALK have been greatly influenced and improved by our visitors’ projects.

When children or adults first encounter a personal computer, most of them are already involved in pursuits of their own choosing. Their initial impulse is to exploit the system to do things they are already doing: a home or office manager will automate paperwork and accounts, a teacher will portray dynamic and pictorial aspects of a curriculum, a child will work on ways to create pictures and games. The fact is that people naturally start to conceive and build personal tools. Although man has been characterized as the toolmaking species, tool-making itself has historically been the province of technological specialists. One reason is that technologies frequently require special techniques, materials, tools and physical conditions. An important property of computers, however, is that very general tools for using them can be built by anyone. These tools are made from the same materials and with the same effort as more specific creations.

Initially the children interact with our computer by “painting” pictures and drawing straight lines on the display screen with the pencillike pointer. The children then discover that programs can create structures more complex than any they can create by hand. They learn that a picture has several representations, of which only the most obvious – the image – appears on the screen. The most important representation is the editable symbolic model of the picture stored in the memory of the computer. For example, in the computer an image of a truck can be built up from models of wheels, a cab and a bed, each a different color. As the parts of the symbolic model are edited its image on the screen will change accordingly.

Adults also learn to exploit the properties of the computer medium. A professional artist who visited us spent several months building various tools that resembled those he had worked with to create images on paper. Eventually he discovered that the mosaic screen – the indelible but instantly erasable storage of the medium – and his new ability to program could be combined to create rich textures of a kind that could not be created with ink or paint. From the use of the computer for the impoverished simulation of an already existing medium he had progressed to the discovery of the computer’s unique properties for human expression.



One of the best ways to teach nonexperts to communicate with computers is to have them explore the levels of abstraction at which images can be manipulated. The manipulation of images follows the general stages of intellectual growth. For a young child an image is something to make: a free mixture of forms and colors unconnected with the real world. Older children create images that directly represent concepts such as people, pets and houses. Later analogical images appear whose form is closely related to their meaning and purpose, such as geometric figures and graphs. In the end symbolic images are used that stand for concepts that are too abstract to analogize, such as numbers, algebraic and logical terms and the characters and words that constitute language.

HELICOPTER SIMULATION was developed by a 15-year-old student. The user directs the helicopter where to go with the pointing device, which controls the position of the black arrow on the screen. The window at the top shows the changing topography of the terrain below as the helicopter flies over it (Actual terrains were obtained from Landsat maps.) A third window keeps track of the helicopter’s altitude, direction and speed. The variety of events that can be simulated at the same time demonstrates the power of parallel processing.
This image can be zoomedHELICOPTER SIMULATION was developed by a 15-year-old student. The user directs the helicopter where to go with the pointing device, which controls the position of the black arrow on the screen. The window at the top shows the changing topography of the terrain below as the helicopter flies over it (Actual terrains were obtained from Landsat maps.) A third window keeps track of the helicopter’s altitude, direction and speed. The variety of events that can be simulated at the same time demonstrates the power of parallel processing.
The types of image in this hierarchy are increasingly difficult to represent on the computer. Free-form and literal images can be easily drawn or painted with lines and halftones in the dot matrix of the display screen with the aid of the mouse or in conjunction with programs that draw curves, fill in areas with tone or show perspectives of three-dimensional models. Analogical images can also be generated, such as a model of a simulated musical intrument: a time-sequenced graph representing the dynamic evolution of amplitude, pitch variation and tonal range. S

Symbolic representations are particularly useful because they provide a means of handling concepts that are difficult to portray directly, such as generalizations and abstract relations. Moreover, as an image gets increasingly complex its most important property, the property of making local relations instantly clear, becomes less useful. Communication with computers based on symbols as they routinely occur in natural language, however, has proved to be far more difficult than many had supposed. The reason lies in our lack of understanding of how human beings exploit the context of their experience to make sense of the ambiguities of common discourse. Since it is not yet understood how human beings do what they do, getting computers to engage in similar activities is still many years in the future. It is quite possible, however, to invent artificial computer languages that can represent concepts and activities we do understand and that are simple enough in basic structure for them to be easily learned and utilized by nonexperts.

The particular structure of a symbolic language is important because it provides a context in which some concepts are easier to think about and express than others. For example, mathematical notation first arose to abbreviate concepts that could be expressed only as ungainly circumlocutions in natural language. Gradually it was realized thatthe form of an expression could be of great help in the conception and manipulation of the meaning for which the expression stood. A more important advance came when new notation was created to represent concepts that did not fit into the culture’s linguistic heritage at all, such as functional mappings, continuous rates and limits.

CIRCUIT-DRAWING PROGRAM that was developed by a 15-year-old boy enables a user to construct a complex circuit diagram by selecting components from a “menu” displayed at the bottom of the screen. The components are then positioned and connected with the pointing device. An additional menu can be generated on the screen by pushing a button on the pointing device; this menu supplies solid and open dots and lines of various widths. In the sequence shown here two components are selected and added to a circuit diagram.
This image can be zoomedCIRCUIT-DRAWING PROGRAM that was developed by a 15-year-old boy enables a user to construct a complex circuit diagram by selecting components from a “menu” displayed at the bottom of the screen. The components are then positioned and connected with the pointing device. An additional menu can be generated on the screen by pushing a button on the pointing device; this menu supplies solid and open dots and lines of various widths. In the sequence shown here two components are selected and added to a circuit diagram.
The computer created new needs for language by inverting the traditional process of scientific investigation. It made new universes available that could be shaped by theories to produce simulated phenomena. Accordingly symbolic structures were needed to communicate concepts such as imperative descriptions and control structures.

Most of the programming languages in service today were developed as symbolic ways to deal with the hardware-level concepts of the 1950’s. This approach led to two kinds of passive building blocks: data structures, or inert construction materials, and procedures, or step-by-step recipes for manipulating data. The languages based on these concepts (such as BASIC, FORTRAN, ALGOL and APL) follow their descriptions in a strictly sequential manner. Because a piece of data may be changed by any procedure that can find it the programmer must be very careful to choose only those procedures that are appropriate. As ever more complex systems are attempted, requiring elaborate combinations of procedures, the difficulty of getting the entire system to work increases geometrically. Although most programmers are still taught data-procedure languages, there is now a widespread recognition of their inadequacy.

A more promising approach is to devise building blocks of greater generality. Both data and procedures can be replaced by the single idea of “activities,” computerlike entities that exhibit behavior when they are sent an appropriate message. There are no nouns and verbs in such a language, only dynamically communicating activities. Every transaction, description and control process is thought of as sending messages to and receiving messages from activities in the system. Moreover, each activity belongs to a family of similar activities, all of which have the ability to recognize and reply to messages directed to them and to perform specific acts such as drawing pictures, making sounds or adding numbers. New families are created by combining and enriching “traits,” or properties inherited from existing families.

HORSE-RACE ANIMATION shows the capabilities of the experimental personal computer for creating dynamic halftone images. The possible range of such simulations is limited only by the versatility of the programming language and the imagination of the child or adult user. In this sequence, images of horses, riders and background are called up independently from the storage files and arranged for the racing simulation with the pointing device. A single typed command then causes the two horses and riders to race each other across screen.
This image can be zoomedHORSE-RACE ANIMATION shows the capabilities of the experimental personal computer for creating dynamic halftone images. The possible range of such simulations is limited only by the versatility of the programming language and the imagination of the child or adult user. In this sequence, images of horses, riders and background are called up independently from the storage files and arranged for the racing simulation with the pointing device. A single typed command then causes the two horses and riders to race each other across screen.
A message-activity system is inherently parallel: every activity is constantly ready to send and receive messages, so that the host computer is in effect divided into thousands of computers, each with the capabilities of the whole. The message-activity approach therefore enables one to dynamically represent a system at many levels of organization: from the atomic to the macroscopic, but with a “skin” of protection at each qualitative level of detail through which negotiative messages must be sent and checked. This level of complexity can be safely handled because the language severely limits the kinds of interactions between activities, allowing only those that are appropriate, much as a hormone is allowed to interact with only a few specifically responsive target cells. SMALLTALK, the programming system of our personal computer, was the first computer language to be based entirely on the structural concepts of messages and activities.

The third and newest framework for high-level communication is the observer language. Although message-activity languages are an advance over the data-procedure framework, the relations among the various activities are somewhat independent and analytic. Many concepts, however, are so richly interwoven that analysis causes them virtually to disappear. For example, 20th-century physics assigns equal importance to a phenomenon and its context, since observers with different vantage points perceive the world differently. In an observer language, activities are replaced by “viewpoints” that become attached to one another to form correspondences between concepts. For example, a dog can be viewed abstractly (as an animal), analytically (as being composed of organs, cells and molecules), pragmatically (as a vehicle by a child), allegorically (as a human being in a fairy tale) and contextually (as a bone’s way to fertilize a lawn). Observer languages are just now being formulated. They and their successors will be the communication vehicles of the 1980’s.

Our experience, and that of others who teach programming, is that a first computer language’s particular style and its main concepts not only have a strong influence on what a new programmer can accomplish but also leave an impression about programming and computers that can last for years. The process of learning to program a computer can impose such a particular point of view that alternative ways of perceiving and solving problems can become extremely frustrating for new programmers to learn.

At the beginning of our study we first timidly considered simulating features of data-procedure languages that children had been able to learn, such as BASIC and LOGO. Then, worried that the imprinting process would prevent stronger ideas from being absorbed, we decided to find a way to present the message-activity ideas of SMALLTALK in concrete terms without dilution. We did so by starting with simple situations that embodied a concept and then gradually increasing the complexity of the examples to flesh out the concept to its full generality. Although the communicationlike model of SMALLTALK is a rather abstract way to represent descriptions, to our surprise the first group and succeeding groups of children who tried it appeared to find the ideas as easy to learn as those of more concrete languages.

MUSICAL SCORE shown here was generated as music was played on the keyboard. The simplified notation represents pitch by vertical placement and duration by horizontal length. Notes can be shortened, lengthened or changed and the modified piece then played back as music.
This image can be zoomedMUSICAL SCORE shown here was generated as music was played on the keyboard. The simplified notation represents pitch by vertical placement and duration by horizontal length. Notes can be shortened, lengthened or changed and the modified piece then played back as music.
For example, most programming languages can deal with only one thing at a time, so that it is difficult to represent with them even such simple situations as children in a school, spacecraft in the sky or bouncing balls in free space. In SMALLTALK parallel models are dealt with from the start, and the children seem to have little difficulty in handling them. Actually parallel processing is remarkably similar to the way people think. When you are walking along a street, one part of your brain may be thinking about the route you are taking, another part may be thinking about the dinner you are going to eat, a third part may be admiring the sunset, and so forth.

Another important characteristic of SMALLTALK is the classification of objects into families that are generalizations of their properties. Children readily see themselves as members of the family “kids,” since they have common traits such as language, interests and physical appearance. Each individual is both a member of the family kids and has his or her own meaning for the shared traits. For example, all kids have the trait eye color, but Sam’s eyes are blue and Bertha’s are brown, SMALLTALK is built out of such families. Number symbols, such as 2 or 17, are instances of the family “number.” The members of this family differ only in their numerical value (which is their sole property) and share a common definition of the different messages they can receive and send. The symbol of a “brush” in SMALLTALK is also a family. All the brush symbols have the ability to draw lines, but each symbol has its own knowledge of its orientation and where it is located in the drawing area.



MUSIC CAN BE REPRESENTED on the personal computer in the form of analogical images. Notes played on the keyboard are “captured” as a time-sequenced score on the display.
This image can be zoomedMUSIC CAN BE REPRESENTED on the personal computer in the form of analogical images. Notes played on the keyboard are “captured” as a time-sequenced score on the display.
The description of a programming language is generally given in terms of its grammar: the meaning each grammatical construction is supposed to convey and the method used to obtain the meaning. For example, various programming languages employ grammatical constructions such as (PLUS 3 4) or 3 ENTER 4 + to specify the intent to add the number 3 to the number 4. The meaning of these phrases is the same. In the computer each should give rise to the number 7, although the actual methods followed in obtaining the answer can differ considerably from one type of computer to the next.

The grammar of SMALLTALK is simple and fixed. Each phrase is a message to an activity. A description of the desired activity is followed by a message that selects a trait of the activity to be performed. The designated activity will decide whether it wants to accept the message (it usually does) and at some later time will act on the message. There may be many concurrent messages pending for an activity, even for the same trait. The sender of the message may decide to wait for a reply or not to wait. Usually it waits, but it may decide to go about other business if the message has invoked a method that requires considerable computation.

The integration of programming-language concepts with concepts of editing, graphics and information retrieval makes available a wide range of useful activities that the user can invoke with little or no knowledge of programming. Learners are introduced to SMALLTALK by getting them to send messages to already existing families of activities, such as the family “box,” whose members show themselves on the screen as squares. A box can individually change its size, location, rotation and shape. After some experience with sending messages to cause effects on the display screen the learner may take a look at the definition of the box family. Each family in SMALLTALK is described with a dictionary of traits, which are defined in terms of a method to be carried out. For example, the message phrase “joe grow 50” says: Find the activity named “joe,” find its general trait called “grow ___” and fill in its open part with the specific value 50. A new trait analogous to those already present in the family definition (such as “grow” or “turn”) can easily be added by the learner. The next phase of learning involves elaboration of this basic theme by creating games such as space war and tools for drawing and painting.



DISPLAY FONTS can be designed on personal computer by constructing them from a matrix of black-and-white squares. When the fonts are reduced, they approach the quality of those in printed material. The image of a pointing hand shown here is a symbol in SMALLTALK representing the concept of a literal word, such as the name associated with an activity.
This image can be zoomedDISPLAY FONTS can be designed on personal computer by constructing them from a matrix of black-and-white squares. When the fonts are reduced, they approach the quality of those in printed material. The image of a pointing hand shown here is a symbol in SMALLTALK representing the concept of a literal word, such as the name associated with an activity.
There are two basic approaches to personal computing. The first one, which is analogous to musical improvisation, is exploratory: effects are caused in order to see what they are like and errors are tracked down, understood and fixed. The second, which resembles musical composition, calls for a great deal more planning, generality and structure. The same language is used for both methods but the framework is quite different.

From our study we have learned the importance of a balance between free exploration and a developed curriculum. The personal computing experience is similar to the introduction of a piano into a third-grade classroom. The children will make noise and even music by experimentation, but eventually they will need help in dealing with the instrument in nonobvious ways. We have also found that for children the various levels of abstraction supplied by SMALLTALK are not equally accessible. The central idea of symbolization is to give a simple name to a complex collection of ideas, and then later to be able to invoke the ideas through the name. We have observed a number of children between the ages of six and seven who have been able to take this step in their computer programs, but their ability to look ahead, to visualize the consequences of actions they might take, is limited.

Children aged eight to 10 have a gradually developing ability to visualize and plan and are able to use the concept of families and a subtler form of naming: the use of traits such as size, which can stand for different numerical values at different times. For most children, however, the real implications of further symbolic generality are not at all obvious. By age 11 or 12 we see a considerable improvement in a child’s ability to plan general structures and to devise comprehensive computer tools. Adults advance through the stages more quickly than children, and usually they create tools after a few weeks of practice. It is not known whether the stages of intellectual development observed in children are absolutely or only relatively correlated with age, but it is possible that exposure to a realm in which symbolic creation is rewarded by wonderful effects could shorten the time required for children to mature from one stage to the next.

The most important limitation on personal computing for nonexperts appears when they conceive of a project that, although it is easy to do in the language, calls for design concepts they have not yet absorbed. For example, it is easy to build a span with bricks if one knows the concept of the arch, but otherwise it is difficult or impossible. Clearly as complexity increases “architecture” dominates “material.” The need for ways to characterize and communicate architectural concepts in developing programs has been a long-standing problem in the design of computing systems. A programming language provides a context for developing strategies, and it must supply both the ability to make tools and a style suggesting useful approaches that will bring concepts to life.

We are sure from our experience that personal computers will become an integral part of peoples’ lives in the 1980’s. The editing, saving and sifting of all manner of information will be of value to virtually everyone. More sophisticated forms of computing may be like music in that most people will come to know of them and enjoy them but only a few will actually become directly involved.



INTRICATE PATTERNS can be generated on the personal computer with very compact descriptions in SMALLTALK. They are made by repeating, rotating, scaling, superposing and combining drawings of simple geometric shapes. Students who are learning to program first create interesting free-form or literal images by drawing them directly in the dot matrix of the display screen. Eventually they learn to employ the symbolic images in the programming language to direct the computer to generate more complex imagery than they could easily create by hand.
This image can be zoomedINTRICATE PATTERNS can be generated on the personal computer with very compact descriptions in SMALLTALK. They are made by repeating, rotating, scaling, superposing and combining drawings of simple geometric shapes. Students who are learning to program first create interesting free-form or literal images by drawing them directly in the dot matrix of the display screen. Eventually they learn to employ the symbolic images in the programming language to direct the computer to generate more complex imagery than they could easily create by hand.
How will personal computers affect society? The interaction of society and a new medium of communication and self-expression can be disturbing even when most of the society’s members learn to use the medium routinely. The social and personal effects of the new medium are subtle and not easy for the society and the individual to perceive. To use writing as a metaphor, there are three reactions to the introduction of a new medium: illiteracy, literacy and artistic creation. After reading material became available the illiterate were those who were left behind by the new medium. It was inevitable that a few creative individuals would use the written word to express inner thoughts and ideas. The most profound changes were brought about in the literate. They did not necessarily become better people or better members of society, but they came to view the world in a way quite different from the way they had viewed it before, with consequences that were difficult to predict or control.

We may expect that the changes resulting from computer literacy will be as far-reaching as those that came from literacy in reading and writing, but for most people the changes will be subtle and not necessarily in the direction of their idealized expectations. For example, we should not predict or expect that the personal computer will foster a new revolution in education just because it could. Every new communication medium of this century – the telephone, the motion picture, radio and television – has elicited similar predictions that did not come to pass. Millions of uneducated people in the world have ready access to the accumulated culture of the centuries in public libraries, but they do not avail themselves of it. Once an individual or a society decides that education is essential, however, the book, and now the personal computer, can be among the society’s main vehicles for the transmission of knowledge.

The social impact of simulation – the central property of computing – must also be considered. First, as with language, the computer user has a strong motivation to emphasize the similarity between simulation and experience and to ignore the great distances that symbols interpose between models and the real world. Feelings of power and a narcissistic fascination with the image of oneself reflected back from the machine are common. Additional tendencies are to employ the computer trivially (simulating what paper, paints and file cabinets can do), as a crutch (using the computer to remember things that we can perfectly well remember ourselves) or as an excuse (blaming the computer for human failings). More serious is the human propensity to place faith in and assign higher powers to an agency that is not completely understood. The fact that many organizations actually base their decisions on – worse, take their decisions from – computer models is profoundly disturbing given the current state of the computer art. Similar feelings about the written word persist to this day: if something is “in black and white,” it must somehow be true.



Children who have not yet lost much of their sense of wonder and fun have helped us to find an ethic about computing: Do not automate the work you are engaged in, only the materials. If you like to draw, do not automate drawing; rather, program your personal computer to give you a new set of paints. If you like to play music, do not build a “player piano”; instead program yourself a new kind of instrument.

A popular misconception about computers is that they are logical. Forthright is a better term. Since computers can contain arbitrary descriptions, any conceivable collection of rules, consistent or not, can be carried out. Moreover, computers’ use of symbols, like the use of symbols in language and mathematics, is sufficiently disconnected from the real world to enable them to create splendid nonsense. Although the hardware of the computer is subject to natural laws (electrons can move through the circuits only in certain physically defined ways), the range of simulations the computer can perform is bounded only by the limits of human imagination. In a computer, spacecraft can be made to travel faster than the speed of light, time to travel in reverse.

It may seem almost sinful to discuss the simulation of nonsense, but only if we want to believe that what we know is correct and complete. History has not been kind to those who subscribe to this view. It is just this realm of apparent nonsense that must be kept open for the developing minds of the future. Although the personal computer can be guided in any direction we choose, the real sin would be to make it act like a machine!

by Alan C. Kay

Page added on 24th August 2005.

Copyright © 2002-2006 Marcin Wichary, unless stated otherwise.