Alan Kay (VPRI Co-founder) – The computer revolution hasn’t happened yet (Oct 1997)


Chapters

00:00:48 Early Work on Smalltalk at Xerox PARC
00:03:15 Early Days of OOP: Beyond Syntax and Superclass Libraries
00:13:46 Architecture Over Material: The Key to Complexity
00:17:47 Creativity and Innovation Outside Traditional Contexts
00:21:39 Data Abstraction and Object-Oriented Programming Evolution
00:32:58 Biological Complexity: Inspiration for Building Complex Systems
00:36:51 Objects, Ma, and Encapsulation
00:39:46 Object-Oriented Programming: Beyond Design Space and Virtual Machines
00:45:10 Evolution of the ARPANET and Its Implications for Software Development
00:48:08 Concepts of Metaprogramming
00:50:37 Interoperability in the Age of the Internet
00:58:56 Thinking Grand to Stay with the Future

Abstract



Revolutionizing Programming: Alan Kay’s Journey Through the Evolution of Object-Oriented Programming

Alan Kay, a pioneering figure in object-oriented programming (OOP), presented his insights at Uppsala University on the 25th anniversary of Smalltalk. Emphasizing the importance of beauty, practicality, and architectural integrity, he urged for a more holistic approach to programming. His reflections reveal a paradigm that transcends mere syntax and libraries, akin to an evolving art form akin to biology and architecture.

The Origins of OOP and Its True Essence:

Alan Kay’s journey with OOP began in the early 70s at Xerox PARC, where he witnessed children’s effortless interaction with Smalltalk. Chris Jeffers’ “The Happy Hacker,” a musical piece created using the Alto computer’s real-time FM synthesis, exemplified the synergy between creativity and programming. Kay also noticed that creativity often involves learning and the emergence of something new within an individual. He uses the metaphor of thoughts as ants crawling on a pink plane, representing a fixed context, and highlights that progress within such a fixed context often takes the form of optimization, rather than genuine creativity. In contrast, creative acts typically involve stepping outside of the existing context, leading to sudden insights or revelations, or “blue thoughts,” that occur outside of the current context. Art serves as a reminder that there are other contexts beyond the one we are currently in, and great art takes us out of our current context and exposes us to new perspectives. To have blue thoughts, one needs to have a diverse knowledge base and experience different things, emphasizing the importance of diverse knowledge and avoiding the limitations of specialization.

The Japanese Concept of Ma:

Beyond its syntax and superclass library, Smalltalk’s significance lies in its architectural principles and structural integrity. Kay compared this to the construction of the Chartres Cathedral, emphasizing the harmony of its intricate elements. Smalltalk’s data abstraction allowed for easier and more flexible processing of complex data formats, contrasting with the reliance on browsers to understand formats in HTML, which Kay likened to a return to the “dark ages” of computing. Additionally, the Japanese concept of “ma,” or the space between objects and the unseen processes connecting them, further highlights the importance of clear communication and avoiding misunderstanding in system design.

OOP: Beyond Syntax and Libraries:

Beyond its syntax and superclass library, Smalltalk’s significance lies in its architectural principles and structural integrity. Kay compared this to the construction of the Chartres Cathedral, emphasizing the harmony of its intricate elements. Smalltalk’s data abstraction allowed for easier and more flexible processing of complex data formats, contrasting with the reliance on browsers to understand formats in HTML, which Kay likened to a return to the “dark ages” of computing.

OOP in the 1960s: Simple Mechanisms:

Early OOP programs, akin to interlocking gears, exhibited remarkable complexity despite their small size. Kay likened these programs to mathematical antecedents, highlighting their elegant simplicity. He also described his personal experiences with creativity and the concept of blue thoughts, emphasizing the importance of nurturing creativity and recognizing sudden insights.

Creativity and Blue Thoughts:

Creativity, akin to an act of creation, involves learning and the emergence of something new. Alan Kay uses the metaphor of thoughts as ants crawling on a pink plane, representing a fixed context. Progress within such a fixed context often takes the form of optimization, rather than genuine creativity. Creative acts typically involve stepping outside of the existing context, leading to sudden insights or revelations, or “blue thoughts,” that occur outside of the current context. Emotional reactions to blue ideas vary: jokes with a “ha-ha” response represent a sudden realization of a different meaning, scientific discoveries elicit an “aha” response signifying a sense of discovery and understanding, while art appreciation evokes an “ah” response as we appreciate alternative contexts. Art serves as a reminder that there are other contexts beyond the one we are currently in, and great art takes us out of our current context and exposes us to new perspectives. To have blue thoughts, one needs to have a diverse knowledge base and experience different things, emphasizing the importance of diverse knowledge and avoiding the limitations of specialization.

Data Abstraction in the Air Force and HTML on the Internet:

Criticizing the outdated approach of HTML on the internet, Kay advocated for a more sophisticated system where data carries all necessary information. He cited an innovative data organization method developed in the Air Force in 1961 as an example of good design. This method, developed by an enlisted person, involved dividing magnetic tapes into three parts: a header with pointers to procedures, a section with the actual data, and a middle part with procedures to handle the data formats. This approach, known as data abstraction, allowed for easier and more flexible processing of complex data formats. Kay contrasted this with the reliance on browsers to understand formats in HTML, likening it to a return to the “dark ages” of computing. He argued that a more effective approach would be to follow the principles of data abstraction, where the data and the procedures to handle it travel together, eliminating the need for a browser.

Encapsulation and Nouns vs. Verbs:

Kay discussed the concept of encapsulation in OOP, likening it to a cell membrane that protects the internal structure. He also contrasted the focus on nouns and verbs in Western languages with the Japanese concept of “ma,” representing the unseen spaces between objects.

Ivan Sutherland’s Sketchpad and Simula’s Technological Advance:

Kay recognized the pioneering roles of Ivan Sutherland’s Sketchpad and the Simula programming language in modern OOP. He emphasized the importance of acknowledging paradigm shifts in technology. Kay also discussed his experience with Simula, an early object-oriented programming language. He emphasizes the importance of recognizing when a new technology represents a truly novel concept rather than just an incremental improvement. Embracing such new concepts can lead to significant breakthroughs and paradigm shifts in computing.

Molecular Biology and Computation Speed in Living Creatures:

Drawing analogies from biology, Kay compared the complexity of living organisms to programming systems. He highlighted the need to address scalability challenges in technology, learning from the efficiency and computational speed found in biological systems. The biological perspective influenced his thinking about the design of computational systems, leading to the development of object-oriented programming concepts. Kay described the astonishing complexity of living cells, with their vast number of components and their ability to process information rapidly. He pointed out that the speed of computation in cells rivals that of modern computers, particularly considering the parallel nature of cellular processes. He used an analogy to illustrate the remarkable speed of protein movement within cells, with proteins traveling up to 50 cell diameters per second.

ARPANET’s Evolution and Programming Complexity:

The evolution of ARPANET served as a metaphor for the challenges of building complex, adaptable systems. Kay critiqued the tendency to view programming as a small task, leading to unwieldy programs. He also pointed out the limitations of languages like Java in accommodating changes.

The Challenge of Building Complex Systems:

Alan Kay emphasizes the limitations of relying on compile-and-reload cycles for developing complex systems. He highlights the importance of understanding interoperability with existing systems when building complex systems.

The ARPANET as a Metaphor for Evolving Systems:

Kay shares his involvement in the design of the ARPANET, a precursor to the internet. He notes that the internet has expanded by a factor of 100 million since its inception. Kay points out that there are no original physical atoms or lines of code remaining from the original ARPANET in the current internet.

The Continuous Evolution of the Internet:

The internet has undergone constant change, replacing every atom and every bit without ever needing to stop. Kay suggests that this metaphor should be applied to smaller systems, including programming, to avoid creating large, unwieldy structures.

Smalltalk’s Evolution and Missed Opportunities:

Despite its open-source availability, Smalltalk’s bootstrapping potential remained largely untapped. Kay saw this as a missed opportunity, highlighting our collective lack of understanding in systems design.

Squeak: A New Era and The Power of Grandness:

Squeak, presented as more than a free Smalltalk implementation, was portrayed as a bootstrapping mechanism for future innovations. Kay encouraged users to leverage Squeak’s capabilities to create something truly exceptional, embracing the philosophy of playing systems “grand.”



Alan Kay’s journey through the evolution of OOP is a narrative that intertwines the principles of architecture, biology, and creativity. It’s a call to action for embracing continuous innovation, shifting from conventional methods to more holistic, dynamic approaches. By understanding and embracing the lessons from Smalltalk and Squeak, Kay invites us to participate in the grand journey of programming evolution, pushing the boundaries to stay ahead of the ever-evolving technological curve.

The Significance of Simula and Lists:

Kay highlights the importance of Simula, a programming language developed in the 1960s, and its profound insights. He emphasizes the significance of lists, a fundamental data structure, in computer science.

Insights and Criticisms of Java and Metaprogramming:

Java’s reflective model is crucial for understanding its semantics, but its lack of a metasystem is concerning. Java’s pragmatic choices may not always cover all cases efficiently or comprehensively. Java’s lack of dynamic extensibility makes it difficult to adapt to changing requirements and interoperability needs. Metaprogramming can solve this issue by allowing dynamic modification of a program’s behavior at runtime.

Key Insights from Alan Kay on Object-Oriented Programming, Interoperability, and the Evolution of Programming Languages:

Standard OOP principles focus on encapsulation to allow different ways of dealing with concepts without distracting the programmer. This principle applies to software and programming language design. Interoperability between different object-oriented systems requires a universal interface language that allows the interchange of information about what objects can do. A universal interface language is essential for automating object discovery and enabling safe experimentation. Kay recommends the book “Concepts, Techniques, and Models of Computer Programming” for insights into OOP, but criticizes its Lisp-centric approach. He argues that C++’s perceived efficiency led to its initial popularity, but criticizes the years spent on developing operating systems like “Pink” at Apple. Kay emphasizes the importance of McLuhan’s quote on the limitations of single viewpoints and belief structures. He discusses the three stages of an idea’s evolution, as described by Schopenhauer: denunciation, obviousness, and religious claim of invention. Kay expresses disappointment at the challenges faced by Smalltalk after its release from Xerox PARC, attributing them to its perception as a toy language and lack of support from major companies.

The Evolution of Smalltalk and the Importance of Constant Innovation:

Smalltalk underwent significant iterations during its development at Xerox PARC, with four major versions and numerous releases. Its strength was its ability to serve as a platform for bootstrapping new ideas and system-building techniques. The commercialization of Smalltalk led to a decline in its use for innovation and experimentation. Kay emphasizes the need for continuous thinking and exploration, rather than treating existing approaches as dogma. The goal should be to create systems that facilitate the evolution and advancement of abstraction levels. Kay’s involvement in the Squeak project aims to provide a bootstrapping mechanism for developing something better than Smalltalk. He encourages users to think of Squeak as a tool for obsoleting itself through its own mechanisms. Kay draws a parallel to the story of E. Power Biggs, a renowned pipe organist, who played grand pieces on a small organ, demonstrating the importance of playing systems “grand” to stay ahead of the future.


Notes by: ChannelCapacity999