Alan Kay (VPRI Co-founder) – Joe Armstrong Interviews Alan Kay (Nov 2016)


Chapters

00:00:08 Reminiscing about the History of Computing
00:05:31 The Interconnectedness of Computer Systems, Biology, and the Internet
00:12:11 Programming Languages and AI in the 1950s
00:24:39 Origins of the Internet
00:26:55 Evolution of Programming Languages: From Assembly to Objects and Beyond
00:36:31 Pithy Quotes and Their Role in Influential Conversations
00:46:48 Provocative Ideas and the Power of Simple Concepts
00:50:12 Scaling the Internet: Challenges and Opportunities
00:56:18 Unsolved Problems in Computing
01:04:48 Computers and the Human Condition
01:07:11 Anecdotes with Scholar Alan Kay
01:09:31 Uncovering the Construction of Reality through Art, Humor, and Discovery
01:13:43 Hopeful Innovations in Technology

Abstract

Exploring the Evolution of Computing: Insights from Alan Kay, Joe Armstrong, and Beyond

Introduction

In the rapidly evolving world of computing, understanding the past is crucial to navigating the future. This article delves into the insights of prominent figures like Alan Kay and Joe Armstrong, exploring the development of programming languages, the impact of computing on society, and the ongoing challenges faced by the field. The article, adhering to the inverted pyramid style, will first present the most significant points, followed by detailed discussions and background information.

The Significance of Historical Context in Computing

Computing, often perceived through a pop culture lens, tends to overlook its rich historical context. This oversight hinders a comprehensive understanding of the field’s evolution. Alan Kay’s journey into computing, sparked by his encounter with the University of Utah and the Sketchpad thesis, illustrates the serendipitous nature of discovery in this domain. Similarly, Bob Barton’s emphasis on shared excitement in discovery highlights the collaborative nature of innovation in computing.

The Birth of Modern Computing Concepts

Ivan Sutherland’s Sketchpad, a pioneering project from 1963, introduced interactive computer graphics, modern user interfaces, and foundational concepts like masters and instances. Following this, Simula emerged as the first object-oriented programming language, influencing subsequent languages and shaping modern computing paradigms.

Alan Kay’s Derivative Ideas and Inspirations

Early Influences on Object-Oriented Programming:

As a graduate student, Alan Kay encountered Sketchpad, an interactive computer graphics system, and Simula, an early object-oriented programming language. Sketchpad’s relational constraint-based programming impressed Kay, while Simula’s concept of classes and instances intrigued him.

Inspiration from Biology and Computing:

Kay’s background in molecular biology and pure math influenced his thinking about objects as independent entities in process, similar to cells. Time-shared virtual machine processes and the ARPANET’s interconnected computers reinforced the concept of nodes communicating over a bus.

Understanding Computational Limits:

Kay realized the futility of going lower than a computer in terms of data structures or procedures. The overhead of processes, especially in Unix, limited the feasibility of simulating even simple concepts like the number three.

Scaling and Messaging:

Inspired by biological systems, Kay recognized the need for scaling beyond the traditional gear-like meshing of procedure calls. Messaging emerged as a suitable communication mechanism for large-scale distributed systems like the internet.

Common DNA in Tissues:

Kay observed that the different tissues in the human body share the same DNA, analogous to a class object in object-oriented programming.

Moore’s Law and the IMP:

Gordon Moore’s 1965 paper on Electronics, introducing Moore’s Law, is a notable concept to consider. Irons’ work in 1970 on the IMP and his focus on developing languages where procedural headers served as the grammar syntax for procedures are also significant. Irons’ invention of the syntax-directed compiler allowed programmers to choose between standard methods or extending the language when writing procedures and enabled the addition of new control structures.

Alan Kay’s Intellectual Journey and Key Innovations

Early Influences on Alan Kay’s Thinking:

Alan Kay’s interest in vector spaces in mathematics led him to consider the power of emphasizing similarities over differences to derive generic principles. Kay’s encounter with Marvin Minsky’s book on old-style computing, particularly the chapter on Girdle, introduced him to Lisp and sparked his fascination with its elegance.

Common Sense Interfaces and Relational Advising:

Kay recognized the need for common sense interfaces to make computing accessible to everyone. He saw relational advising as a promising approach to building systems that could reason and learn from new knowledge.

McCarthy’s Work on Situations, Actions, and Causal Laws:

McCarthy’s paper on situations, actions, and causal laws introduced the idea of labeled states, where each fact is associated with a timestamp. This concept enables purely functional means of advancing from one state to another, avoiding the need for monads or other complex mechanisms.

Dynamic Meanings and Pattern Matching:

Kay emphasized the importance of dynamic meanings, which can be negotiated, rather than static meanings in programming. He highlighted the significance of pattern matching and transitions in making things happen.

NGVI and Comet: Early Examples of Pattern Matching:

NGVI and Comet were early systems that used pattern matching for natural language parsing. These systems demonstrated the power of pattern matching and programmable grammars.

The Dynabook Concept:

Alan Kay’s vision of a personal computer with a tablet, windows, and an object-oriented operating system, inspired by Seymour Papert’s work with children and the desire to break free from desk-bound computing, became a reality in 1998, thanks to Moore’s Law.

Challenges in Operating System Design:

The limited memory and computational power of early computers posed challenges in operating system design. The need for a complete Macintosh-like interface with only 64k bytes for computation and the limitations of Smalltalk 72 compared to modern languages like Erlang and actor languages are notable examples.

Language Evolution and Design:

The constant need for language expressiveness and performance improvements, the challenge of making a good language run fast enough for general use, and the role of assembly code as the foundation for future languages are key factors in language evolution and design.

Programming Languages and Their Impact:

Sketchpad’s revolutionary approach to programming based on requirements rather than coding, the influence of high-level languages like Lisp, Fortran, and Simula, the inspiration of Simula’s extension of ALGOL in the development of C++, and the significance of Smalltalk, Planner, Actors, Prolog, and Linda in the programming landscape are noteworthy.

Joe Armstrong and Alan Kay’s Unconventional Conversation at Strange Loop

Interview Misnomer:

Joe Armstrong clarifies that the discussion with Alan Kay at Strange Loop was more of a “conversation” rather than an “interview,” emphasizing a desire for a more natural and engaging exchange of ideas.

Smalltalk and Prolog:

Armstrong describes his initial struggles with Smalltalk’s class structure and his subsequent discovery of Prolog, which sparked his interest in message-passing object models.

CSP, Actors, and Meta 2:

Armstrong’s exploration of CSP (Communicating Sequential Processes) and his encounter with Carl Hewitt’s concept of actors led him to realize that he and Hewitt shared similar ideas. He mentions Meta 2 and Ometa as topics he intended to discuss but ultimately decides to save for later.

Inspiration from Strange Loop:

Armstrong explains his motivation for wanting to have a conversation with Alan Kay at Strange Loop, citing the unique atmosphere of the conference and the potential for a large audience.

Jules Holland and Elton John:

Armstrong draws inspiration from an interview between Jules Holland and Elton John, emphasizing the value of asking insightful questions that lead to meaningful conversations.

Balthasar Chrastien and Aphorisms:

Armstrong compares Alan Kay to Balthasar Chrastien, a 17th-century Jesuit monk known for his mastery of aphorisms. He highlights the power of short, pithy quotes in capturing the essence of an idea.

Alan Kay’s Paragraph and Page Style:

Kay contrasts his preference for paragraphs and pages over short quotes, acknowledging the challenges of compressed communication. He recalls his experiences with Xerox executives and the need to adopt slogans to convey complex concepts effectively.

“The Best Way to Predict the Future is to Invent It”:

Kay shares his famous quote, “The best way to predict the future is to invent it,” which he used to challenge Xerox’s focus on trends and emphasize the importance of innovation.

“If You Don’t Fail at Least 90% of the Time, You’re Not Aiming High Enough”:

Armstrong introduces another memorable quote, “If you don’t fail at least 90% of the time, you’re not aiming high enough,” and discusses its significance in encouraging ambitious goals.

Slogans, Gestures, and Theater:

Kay emphasizes the theatrical nature of slogans, comparing them to gestures and fiction. He highlights the importance of capturing attention and creating memorable phrases that resonate with audiences.

Neil Postman and McLuhan’s Zen Koans:

Kay recounts his friendship with Neil Postman, author of “Amusing Ourselves to Death” and “The Disappearance of Childhood.” He shares an anecdote about Marshall McLuhan’s stage presence and his use of paradoxical statements to stimulate thought and attention.

Overcoming Mediocrity, Failing Boldly, and Transforming Vision into Reality:

Refusing Mediocrity:

Alan Kay criticizes the notion of accepting a 90% success rate, emphasizing that it lacks impact and fails to drive progress.

Embracing Failure:

Joe Armstrong suggests shifting the focus from guaranteed success to embracing projects that are likely to fail, encouraging experimentation and innovation.

Resistance to Change:

Armstrong introduces the aphorism “everybody loves change except for the change part,” highlighting the common human tendency to resist actual change despite acknowledging its necessity.

Provocative Titles:

Armstrong’s talk title, “The Computer Revolution Hasn’t Happened,” challenges the prevailing belief that the computer revolution has already occurred, sparking discussion and reflection.

Every Object Should Have a URL:

Kay emphasizes the transformative potential of assigning URLs to objects, allowing them to be addressable and introspective, facilitating communication and interoperability.

Learning from Biology:

Kay acknowledges the inspiration he draws from biology, recognizing the power of natural systems and applying those principles to technology.

Enthusiastic Response vs. Lack of Action:

Kay expresses surprise and disappointment at the lack of enthusiastic response to his proposal for making every ailing process addressable and introspective, despite its potential to simplify implementation.

Personal Computing and the Internet:

Kay reveals the precarious history of personal computing and the internet, highlighting the potential impact of the Mansfield Amendment on shutting down ARPA and the significance of Taylor’s efforts in establishing Xerox PARC.

Alan Kay and Joe Armstrong on Learning, Scaling, and the Future of Computing:

Introduction:

In this discussion, Alan Kay and Joe Armstrong share their perspectives on learning, scaling, and the future of computing. Kay emphasizes the importance of learning beyond traditional programming courses and the need for computer scientists to think like scientists rather than engineers. Armstrong stresses the significance of considering scaling aspects early on in problem-solving and the challenges of dealing with vast numbers of entities in computing.

Beyond Traditional Programming Courses:

Alan Kay criticizes the focus on algorithms and data structures in introductory programming courses, arguing that these ideas do not scale well. He encourages students to explore broader concepts and theories that can handle more complex systems.

Thinking Like Scientists:

Joe Armstrong advocates for a more scientific approach to computer science, urging practitioners to think in terms of large numbers and dimensions. He suggests considering the scale of the universe and using that as a reference point for designing systems that can handle vast quantities of data and entities.

Scaling and Problem-Solving:

Kay emphasizes the need to consider scaling aspects early on in problem-solving. He warns against starting with a small-scale solution and trying to scale it up, as this often leads to problems. Instead, he suggests starting with a large-scale perspective and scaling down if necessary.

The Importance of Learning:

Kay challenges university students to be proactive in their learning, urging them to explore beyond their coursework and seek out new knowledge. He highlights the revolutionary ideas presented in Ivan Sutherland’s Sketchpad thesis as an example of the potential for groundbreaking innovations in the field.

Unsolved Problems in Computing and the Dangers of “Inverse Vandalism”:

Major Unsolved Problems in Computing:

Joe Armstrong emphasizes the need to address unsolved problems in computing rather than focusing on easily solvable issues.

Alan Kay suggests identifying the top 50 beliefs in computing and negating them to gain new perspectives.

The Problem of Big Data:

Alan Kay criticizes the obsession with big data and argues that the focus should be on “big meaning” instead.

He warns against confusing the means to an end (big data) as the end itself.

The Importance of Safe State Advancement:

Alan Kay highlights the significance of being able to advance state safely and perfectly in computing systems.

He advocates for organizing systems to achieve the best balance between safety and efficiency.

The Dangers of “Inverse Vandalism”:

Joe Armstrong expresses concern about the practice of creating things simply because they are possible, without considering the need or consequences.

He refers to this as “inverse vandalism” and warns of its unpredictable side effects.

The Perils of the Cloud and History Loss:

Joe Armstrong raises the alarm about the potential loss of history due to the reliance on cloud storage.

He emphasizes the importance of preserving historical data and expresses concern about the long-term consequences of data loss.

Ranking Concerns and Addressing the Most Dangerous Issues:

Joe Armstrong proposes ranking the identified concerns in order of severity to prioritize addressing the most dangerous ones first.

He suggests inviting experts like Vint Cerf to discuss the issue of history loss and attention hijacking.

The Significance of Francis Bacon’s “Four Idols”:

Alan Kay highlights the relevance of Francis Bacon’s “Four Idols” from his book “Novum Organum” in understanding the foundations of science.

He emphasizes the need for a social system to debug ideas and the importance of science being grounded in reality rather than abstract symbols.



This updated article enriches our understanding of the history and ongoing evolution of computing, incorporating crucial insights from prominent figures like Alan Kay and Joe Armstrong. It further illuminates the challenges facing the field and emphasizes the significance of continuous learning and innovation in shaping the future of computing.


Notes by: BraveBaryon