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.