Alan
Kay
Viewpoints
Research
Institute
STEPS
Toward
The
Reinvention
Of
Programming
Abstract: Higher
level
languages
have
generally
been
invented
to
gain
more
expressive,
human-centered,
problem-oriented,
and
machine-independent
means
to
create
programs.
With
a
few
interesting
and
obscure
exceptions,
the
advances
in
level,
style
and
architectural
design
seen
in
the
1950s
–
1970s
have
tapered
off
considerably
over
the
last
25
years
during
the
commercialization
of
the
personal
computer
and
Internet.
The
great
Moore's
Law
exponential
advances
in
hardware
have
been
almost
cancelled
out
by
an
"inverse
Moore's
Law"
for
software:
millions
to
hundreds
of
millions
of
lines
of
code
seem
to
be
required
to
do
most
things,
and
the
general
lack
of
architectural
integrity
has
made
most
of
these
piles
of
code
almost
impossible
to
reformulate
(or
even
understand),
so
most
changes
are
essentially
patches
of
large
size
pasted
on
the
outside
of
systems.
An
important
question
for
computing,
and
especially
for
attempts
at
making
real
"computer
science"
and
"software
engineering"
disciplines,
is
whether
our
current
software
situation
is
intrinsic
to
"natural
limits"
of
software
(like
natural
limits
of
what
can
be
built
from
steel,
etc.)
or
whether
much
more
could
be
accomplished,
and
the
actual
limits
are
emergent
artifacts
of
weak
perspectives
by
the
human
beings
involved.
One of our current major projects at Viewpoints Research Institute is "STEPS Toward The Reinvention Of Programming". (We pose it this way because we don't know how to reinvent programming, but would like to get up the mountain to a qualitatively higher base camp that would provide better views of routes to the summit than we have today.) We decided to take a body of behaviour that most people have some sense of -- the general experience of personal computing from end-user down to the metal -- and try to make a very compact working model that can run fast enough to be useful. How compact? 200 million lines of code? 20 million? 2 million? 200,000? 20,000? 2,000?
The last one probably exceeds some intrinsic mathematical limit, but e.g. if such a complete system of facilities could be expressed in 20,000 understandable lines of code, this would constitute a positive "Moore' Law" advance for software (of three or four orders of magnitude), and could very possibly lead to new insights for a more total reinvention. We picked such a "preposterous" goal (as one NSF reviewer termed it) to force real inventions to happen (and perhaps a few miracles as well). The inventions are of a mathematical kind and because they have to also run on a computer, constitute a kind of "active mathematics."
Biography: "The
best
way
to
predict
the
future
is
to
invent
it."
—
Alan
Kay
Alan
Kay
is
one
of
the
pioneers
of
object-oriented
programming,
personal
computing,
and
graphical
user
interfaces.
In
the
late
60s,
he
invented
dynamic
object-oriented
programming;
participated
in
the
design
of
the
ARPAnet;
and,
inspired
by
children,
conceived
the
Dynabook,
a
laptop
personal
computer
for
children
of
all
ages.
At
Xerox
PARC,
he
invented
Smalltalk
(which
included
the
now
ubiquitous
overlapping
window
interface),
and
participated
in
the
development
of
the
Alto,
the
computer
that
inspired
the
Macintosh.
His
contributions
have
been
recognized
with
the
Charles
Stark
Draper
Prize
of
the
National
Academy
of
Engineering,
the
Alan.
M.
Turing
Award
from
the
Association
of
Computing
Machinery,
and
the
Kyoto
Prize
from
the
Inamori
Foundation.
He has a BA in Mathematics and Biology with minor concentrations in English and Anthropology from the University of Colorado, MS and PhD in Computer Science from the University of Utah, and Honorary Doctorates from the Kungl Tekniska Hoegskolan in Stockholm, Columbia College in Chicago, and Georgia Tech. He is currently an Adjunct Professor of Computer Science at UCLA and the President of Viewpoints Research Institute, a non-profit organization dedicated to children and learning.