TITLE: Alan Kay's "The Reactive Engine" AUTHOR: Eugene Wallingford DATE: June 11, 2007 4:31 PM DESC: ----- BODY: Last week I somehow came across a pointer to Matthias Müller-Prove's excerpt of "The Reactive Engine", Alan Kay's 1969 Ph.D. thesis at the University of Utah. What a neat find! The page lists the full table of contents and gives then gives the abstract and a few short passages from the first section on FLEX, his hardware-interpreted interactive language that foreshadows Smalltalk. Those of you who have read here for a while know that I am a big fan of Kay's work and often cite his ideas about programming as a medium for expressing and creating thought. One of my most popular entries is a summary of his Turing Award talks at the 2004 OOSPLA Educators' Symposium. It is neat to see the roots of his recent work in a thesis he wrote nearly forty years ago, a work whose ambition, breadth, and depth seem shocking in a day where advances in computing tend toward the narrow and the technical. Even then, though, he observed this phenomenon: "Machines which do one thing only are boring, yet exert a terrible fascination." His goal was to construct a system that would serve as a medium for expression, not just be a special-purpose calculator of sorts. The excerpt that jarred me most when I read it was this statement of the basic principles of his thesis:
Probably the two greatest discoveries to be made [by pre-literate man] were the importance of position in a series of grunts, and that one grunt could abbreviate a series of grunts. Those two principles, called syntax (or form) and abstraction, are the essence of this work.
In this passage Kay ties the essential nature of computing back to its source in man's discovery of language. In these short excerpts, one sees the Alan Kay whose manner of talking about computing is delightfully his own. For example, on the need for structure in language:
The initial delights of the strongly interactive languages JOSS and CAL have hidden edges to them. Any problem not involving reasonably simple arithmetic calculations quickly developed unlimited amounts of "hair".
I think we all know just what he means by this colorful phrase! Or consider his comments on LISP and TRAC. These languages were notable exceptions to the sort of interactive language in existence at the time, which left the user fundamentally outside of the models they expressed. LISP and TRAC were "'homoiconic', in that their internal and external representations are essentially the same". (*) Yet these languages were not sufficient for Kay's goal of making programming acceptable to any person interested in entering a dialog with his system:
Their only great drawback is that programs written in them look like King Burniburiach's letter to the Sumerians done in Babylonian cun[e]iform!
Near the end of his introduction to FLEX Kay describes the goals for the work documented in the thesis (bolded text is my emphasis):
The summer of 1969 sees another FLEX (and another machine). The goals have not changed. The desire is still to design an interactive tool which can aid in the visualization and realization of provocative notions. It must be simple enough so that one does not have to become a systems programmer (one who understands the arcane rites) to use it. ... It must do more than just be able to realize computable functions; it has to be able to form the abstractions in which the user deals.
The "visualization and realization of provocative notions"... not just by those of us who have been admitted to the guild of programmers, but everyone. That is the ultimate promise -- and responsibility -- of computing. Kay reported then that "These goals have not been reached." Sadly, forty years later, we still haven't reached them, though he and his team continue to work in this vein. His lament back in 2004 was that too few of us had joined in the search, settling instead to focus on what will in a few decades -- or maybe even five years -- be forgotten as minutiae. Even folks who thought they were on the path had succumbed to locking in to vision of Smalltalk that is now over twenty-five years old, and which Kay himself knows to be just a stepping stone early on the journey. In some ways, this web page is only a tease. I really should obtain a copy of his full thesis and read it. But Matthias has done a nice job pulling out some of the highlights of the thesis and giving us a glimpse of what Alan Kay was thinking back before our computers could implement even a small bit of his vision. Reading the excerpt was at once a history lesson and a motivating experience. ---- (*) Ah, that's where I ran across the link to this thesis, in a mailing-list message that used the term "homoiconic" and linked to the excerpt. -----