Daddy, Are We There Yet? A Discussion with Alan Kay

Much of what you do each day can be traced back to an idea that Alan
Kay was working on many years ago. Work with a laptop computer? Kay was
working on a notebook computer called the Dynabook 35 years
ago. There weren't even desktop computers then and he was trying to invent
a flat-screen portable with a wireless network and local storage. Use a
word processor where you can select bold and see the text you type
rendered as bold? Ever use a computer that had a GUI that featured windows
that could overlap each other? Ever use a program written in an
object-oriented language? Kay and his cohorts worked on projects like
these over 20 years ago.

A Look Back

With the passing of Kristen Nygaard and Ole Dahl, the creators of SIMULA, this
past year, I ask Kay if he had taken a look back at the nearly 40-year
history of object-oriented programming (OOP). He corrects me that actually
Sketchpad predated SIMULA by a few years and its 40-year anniversary
passed with no commemoration. A recurring theme in our conversation is
that much is lost to the programming community because we don't have a
good sense of history.

Kay characterizes SIMULA as a great transitional set of ideas. With
SIMULA, Algol blocks could be used as independent things that could carry
data and behavior. In 1966, Kay had just learned Sketchpad when he read an
early paper on SIMULA by Nygaard and Dahl. Kay put a biological twist on
what he would later call object-oriented programming. "Everything is a
cell," he explains. "The main thing I added is that everything could be an
object. There is an interface algebra that today might be called
polymorphism. There was a collision of these ideas and LISP." Kay admires
the great set of ideas present in LISP and refers to it as the
"greatest single programming language ever designed."

In his keynote address at the 2003 O'Reilly Emerging Technology Conference, April 22-25 in Santa Clara, California, Alan Kay draws the analogy that the true personal computing revolution will happen when all people, especially children, become fluent with the deeper powers of expression that only the computer makes possible, and when these powers of expression bring forth a new way to discuss, think, and argue about important ideas.

While at Xerox PARC, Kay invented Smalltalk. Although the present day
hot OO languages, Java and C#, make a lot of their C-like syntax, much of
their real roots can be found in Smalltalk. In addition to an OO language,
Smalltalk was also a development system and an operating system for
Smalltalk programs. The five person Smalltalk team at PARC created both
the software and the hardware to run it on. As a result, Smalltalk
applications performed quite well on these systems.

In the 1980s, Kay explains, Intel and Motorola were not producing
processors that could run these higher level languages. As a result,
programmers interested in performance were programming in C and early
bound languages. When Stroustrop developed C++ he wasn't trying to emulate
the work done at PARC, he was creating support for objects using a
preprocessor for C. The relationship between C++ and C was much like the
relationship between SIMULA and Algol. Kay sees Java as falling between
Smalltalk and C++. In some ways it is an improvement, in other ways it is
mainly C++ with garbage collection. One of the most obvious deficiencies
of Java, says Kay, is that "Java has a difficult time of adding to
itself."

What Didn't Happen

"Twenty years ago at PARC," Kay says, "I thought we would be way
beyond where we are now. I was dissatisfied with what we did there. The
irony is that today it looks pretty good. The result of our work is
techniques for doing software in an interesting and more powerful
way. That was back in the seventies. People today aren't doing a lot of
work to move programming to its next phase."

I ask Kay with the foundations of OO that have been established, what
it is that programmers don't understand. He answers that we "could ask the
same about architects. What don't people get about Frank Lloyd Wright?
Today we still have buildings that are ugly and towns that are
ugly. Simplicity and beauty aren't high on people's requirement
lists."

He differentiates between a carpenter and an architect and considers
the analogous case for developers. "You can claim to be a programmer," he
says, "if you can write a couple of lines of C code. The real questions in
programming is the stuff you don't have prefabricated modules for. A
programmer is always in the business of specifying the goals and the
purposes of a system. Can you come up with an advanced architecture for
rendering the idea?"

Squeak

Squeak is an actively maintained, free, open-source version of
Smalltalk available from www.squeak.org
. With Squeak the entire VM (virtual machine) is written in
Squeak. Kay explains, "That means the Squeak spec is debuggable. Whatever
it does is what the VM is. This thing runs fast enough, when you're
working on a music demonstration, to generate three to four voices in real
time. The VM is written in Squeak and then transformed mathematically to
C. It runs on thirty different platforms 'bit-identically'. A bug in the
VM is the same on all machines." How hard is it to port Squeak to a new
platform? Kay says the longest port took less than one month on a
completely bare chip and that, for example, the port to the Sony
PlayStation took only a few days.

Kay's best guess is that there are between forty and fifty thousand
Squeak users. A few thousand people work with it in the same manner that
you think of the Linux user core. They hear from a few hundred regularly
and between thirty and forty people spend a couple of hours a day working
on the Squeak code. Most important for Kay are the children, parents, and
teachers who use Squeak. The
www.squeakland.org site is a resource for these groups. There is a
kid's version, tutorials, and examples on the Squeakland site.

In addition to the lab work, research, and work with graduate students,
Kay has spent many years working with elementary school teachers and
students. He recognizes how hard teachers work and how much they are asked
to do. How do we help these teachers teach math or technology? He
recommends that we "work with motivated teachers and their students and
support them with regular visits. It's a lot of work." Squeak and the
modules being developed are designed to create a rich world that students
can explore and experiment with.

So, Daddy, Are We There?

Years ago I saw Kay speak to parents at a private school in
Cleveland. He showed a video of a two year old turning on a computer,
selecting a disk, inserting it, and starting the program contained on the
disk. The audience gasped. At that time, that was seemed incredible. You
think, "so what." That's the point. Now it is no big deal. Kay says, "all
the little girl was doing was the equivalent of going to a shelf, making a
choice, and opening a book. That isn't real literacy."

"The trick," Kay continues, "is that like Montessori we think of the
main instincts of kids is to play. There just aren't any twentieth and
twenty-first century toys to play with. Seymore Pappert's LOGO pioneered
this and lead kids to real mathematical learning." Kay says, "once kids make stuff, you start to see real computer literacy."

As the two year old girl from the video grows up she'll see younger
children even more comfortable with computers. Just as kids in a high
print environment tend to read, Kay predicts that as "kids grow up in a
world where computing is there, it will be these children that will invent
personal computing." I tell Kay that both of my daughters' Montessori
teachers recommended we not let the kids use the computer. "For younger
kids," he answers, "it is important that they learn about the physical
world. But, Montessori would have been a great innovator with
computers. She would embrace and enrich toys that have interesting side
effects. It is not part of the traditional Montessori curriculum because
she didn't live during a time when there were computers."

Kay and the other founders of The Viewpoints Research
Institute are using Squeak as a media for highly interactive and
constructive materials to support the teaching of math and science to K-12
students. After complaining about the current state of software targeting
children, I ask Kay how we encourage the production of better educational
software for kids. He answers, "don't buy bad stuff."

As simple as that sounds, he points out that "the market needs to
reject what is bad. The stuff that got put out wasn't rejected. It's a
certain kind of laziness. PARC had taste and built guidelines. Even small
teams can produce quality software." He believes that for the consumer it
also is a matter of taste. People shouldn't legislate what other people
should do. On the other hand, you have to make sure people are aware of
their alternatives. A popular fast food restaurant might be across the
street. Meanwhile, a mile a way is a better restaurant where a good meal
costs just a little more than at the place across the street. We need to
help get the word out for the alternative.

There are times with software that this is difficult. Kay describes
these as large bandwagons that everyone jumps on. There are companies who
won't consider not using Microsoft products because of the size of the
Microsoft market share. One of the many things that Kay likes about his
present employer, HP, is that they support a variety of operating systems,
including Microsoft. They didn't make a decision on one side or the other
but embraced both.

Kay considers how to get programmers to move to that next phase. He
says, "There are more powerful ways of doing programming, but they have
steeper learning curves. The problem is to move programming from a popular
field to a richer field and to help people with the learning curve.

Daniel H. Steinberg
is the editor for the new series of Mac Developer titles for the Pragmatic Programmers. He writes feature articles for Apple's ADC web site and is a regular contributor to Mac Devcenter. He has presented at Apple's Worldwide Developer Conference, MacWorld, MacHack and other Mac developer conferences.

Richard Koman's WeblogSupreme Court Decides Unanimously Against Grokster
Updating as we go. Supremes have ruled 9-0 in favor of the studios in MGM v Grokster. But does the decision have wider import? Is it a death knell for tech? It's starting to look like the answer is no.
(Jun 27, 2005)