|
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. |
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. |
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. |
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. |
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. |
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. |
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. |
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. |
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. |
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. |
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. |
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. |
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
| |