Alan Kay (HP Sr. Fellow) – Back to the Future of Software Development (Apr 2003)


Chapters

00:00:06 Software Development Forum and Computer History Museum Lecture Series Introduction
00:03:36 Kvetching on 20 Years of Non-Development in Software
00:12:07 Historical and Contemporary Challenges in Computing
00:24:33 Pioneering Computer Graphics: From Sketchpad to Space War
00:27:23 Birth of Personal Computing: Engelbart's Visionary Demo in 19
00:36:14 The Intersection of Child-Centered Design and Computer Systems
00:49:03 Virtual Portability: A Flexible Software System for the Internet
01:01:15 Teaching Math with Visual Programming
01:05:51 Interactive Simulation and Learning with State Space Mathematics
01:12:20 Children's Creativity and Learning with Computers
01:16:15 Exploring the Crossroads of Childlike Innovation and Complex Computing
01:21:11 Peer-to-Peer Collaboration in Immersive Environments
01:26:27 Virtual Reality Portal Hyperlinks
01:28:51 3D Collaboration Environments - Squeak System Demonstrations
01:37:39 Dynamics of Learning and Late Binding in Software Engineering
01:49:39 Unveiling the Power of Ideas: Exploring Advanced Concepts in Computing Education
02:01:12 Promoting Creative Play and Exploration Through Interactive Knowledge Systems

Abstract

Exploring the Evolution and Future of Computing: A Comprehensive Analysis – Updated Article

The history of computing has seen significant advancements, starting with Gutenberg’s detailed characters in his printing press, which set a standard for communication technologies. Aldus Manutius also played a crucial role with his user-centric design of portable books. In human-computer interaction, projects like Project MAC, funded by ARPA, aimed to blend human and computer capabilities. While the goal of universal computer literacy and seamless interaction is still ongoing, these early efforts provided a foundation for later innovations.

Sketchpad: A Revolutionary Software

In the 1960s, Ivan Sutherland’s Sketchpad was a pioneering software in the field of digital drawing. It introduced important concepts in computer graphics, like object-oriented programming and graphical user interfaces. Sketchpad’s influence on the field has been profound and lasting, despite its early limitations.

Space War: A Pioneering Video Game

Space War, developed around the same time as Sketchpad, was a groundbreaking video game for the PDP-1 computer. It was among the first to offer real-time graphics and multiplayer gameplay, introducing key programming concepts and gameplay mechanics that involved managing a spacecraft’s trajectory and velocity.

Engelbart’s 1968 Demo

Douglas Engelbart’s 1968 demonstration was a milestone in showcasing the possibilities of personal computing and collaboration. It featured innovative technologies such as the mouse, a graphical user interface, and rapid response times. This demo was significant for setting new standards in user-centered design and real-time collaboration in software.

Collaboration and Group Process

Engelbart’s demo also highlighted the importance of collaboration and improving group processes. It showed how technology could enable immersive collaboration and shared understanding, with team members using circular table arrangements with consoles to facilitate effective collaboration.

ARPA’s Dream: Collaboration and the Future

ARPA envisioned systems that would enhance collaboration among users, laying the groundwork for advancements in networking and distributed computing. This vision continues to inspire innovation in computer science, with ongoing efforts to improve collaboration and communication in the digital realm.

A Trailblazing Coincidence

1968 was also notable for the independent invention of the tablet and mouse, which marked a significant evolution in user-interface design. The Grail system developed by the Rand Corporation featured innovative capabilities like handwriting recognition and dynamic object manipulation.

The Enigma of Graffiti

Remarkably, the Graffiti handwriting recognition system from the 1960s still outperforms many modern recognizers. Developed in 1966, it achieved near-perfect character recognition with a minimal amount of code.

Smalltalk Implementation and Cross-Platform Compatibility

Smalltalk was implemented using a model of the kernel that allowed for debugging, rather than relying on paper documentation. A translator was created to convert the simulation into a format compatible across various platforms, leading to a PowerPC VM that was both self-improving and easily portable.

Squeak’s Portability and Features

Squeak, a modern implementation of Smalltalk, is known for its portability, running identically on 30 platforms. Its robust debugging process and accurate translation enable a complete portable system, including its own operating system, tools, and socket system. Porting Squeak to a new platform typically takes only a week or two.

Benefits of Working with Kids in Software Development

Working with children in software development offers unique insights. Kids are quick to reject unenjoyable software, providing honest feedback. They also engage enthusiastically in fun projects, such as designing and painting virtual cars, which can incorporate advanced graphics techniques.

Smart Rectangles

Alan Kay’s observation that graphical user interfaces essentially consist of “smart rectangles” emphasizes the importance of simplicity and user-friendliness in software design.

The Tyranny of the Majority in Software Development

The “tyranny of the majority” in software development refers to the phenomenon where the majority of programmers, being below average in skill, can hinder software progress. Emphasizing best practices and building on past knowledge is crucial for improving the quality of software development.

Object-Oriented Programming and Universal Objects

Alan Kay introduced the concept of universal objects, which can adopt various appearances and behaviors. These objects are fundamental to building programming systems, offering a versatile foundation for software development.

Properties and Scripts

Kay’s work included demonstrating how manipulating an object’s properties, like a car’s direction, can control its movement. He also explained the creation of scripts to influence objects’ behavior, such as making a car turn or move forward.

Variables and Steering

Kay introduced variables using a steering wheel analogy. The steering wheel’s heading affected the car’s movement, allowing exploration of the relationship between variables and outcomes.

Galileo’s Insight

Kay referenced Galileo’s experiment on falling objects, discussing how a young girl intuitively understood the limitations of stopwatches for measuring their fall. She suggested listening for the impact sounds as an alternative, reflecting an intuitive grasp of the experiment.

Lunar Lander Game as a Practical Application

Students used the simulation to create a lunar lander game, demonstrating their grasp of concepts like gravity, velocity, and acceleration in a practical, engaging context.

Prototyping in Space

In a further application of the simulation, students ventured into space exploration, creating a scenario with multiple spaceships, distinguishable by different colors.

Minimal Coding Required

The efficiency of the state space approach was highlighted by the minimal programming required to run the simulation, underscoring the potential for streamlined and effective software solutions.

Complexity of Software vs. Mathematics

Kay emphasized that the complexity of code often surpasses the mathematical intricacies involved in software, suggesting a potential mismatch between conceptual simplicity and implementation complexity.

Edge of the Art Stuff

Alan Kay showcased advanced children’s programming examples. Children demonstrated their mathematical understanding through programs that enabled a robot car to stay centered on the road using sensor inputs. Other examples included programs for creating and animating various objects.

Learning Rates

Children learned about rates by adjusting the increment value of a cursor and observing changes in object movement. They also discovered that a movie player essentially displays a series of frames in rapid succession.

Audio Integration

Children’s discovery involved using a microphone to produce visual rectangles in a “holder.” They created a program to animate a speaker cursor, adjusting audio playback speed for different effects.

Synthesizer Revelation

Children realized that the expensive synthesizer they had bought was essentially replicable with a few lines of code and recordings, illustrating the power of simple programming.

The Simplicity of Models

Complex programs and phenomena can often be represented by straightforward mathematical models, enabling powerful and simplified programming approaches.

Feedback and Gradient-Seeking

Feedback mechanisms were shown to create lifelike simulations, like salmon swimming upstream. Ants’ random wandering and scent trails demonstrated concepts of loose coupling and self-organization.

Buoyancy and Gravity

Applying gravity to particles in a confined space simulated buoyancy, with the upward force dependent on the number of particles. Altering the mass of spheres impacted this buoyancy effect.

Brownian Motion and Einstein’s Paper

Disabling gravity in the simulation led to Brownian motion, reflecting Einstein’s 1905 observations. His kinetic theory of heat explained the motion of smaller particles affecting larger ones.

Atoms and the Importance of Kids

Einstein’s studies on Brownian motion supported the existence of atoms, emphasizing the need for adults to pay attention to children, who often lead in inventing new technologies.

Collaborative Solutions in Croquet: Addressing the Challenges of Immersive Collaboration

Croquet’s Peer-to-Peer Solution

Croquet used a peer-to-peer approach to address immersive collaboration challenges in online environments. This method avoided central servers, allowing real-time interactions even over slow networks. It involved distributed object replication, ensuring all participants had consistent information access.

Overcoming the Exponential Problem

Traditional server-based solutions, like Engelbart’s, faced exponential problems with increasing participants. Croquet’s peer-to-peer approach mitigated this by enabling direct participant communication without a central server.

Collaborative Objects in Croquet

Croquet introduced collaborative objects with specific behaviors accessible to all participants. These objects served as shared resources, enhancing interaction within the collaborative space. Examples included mirrors, portals, and 3D shapes like Sierpinski pyramids.

Immersive Collaboration in Croquet

Croquet’s shared virtual space allowed participants to interact with each other and manipulate objects in real-time. The system supported seeing and hearing each other, creating engagement and presence. Distributed object replication ensured a consistent shared space view and simultaneous interaction.

Immersive Virtual Reality

Alan Kay’s virtual reality headset provided an immersive experience, making users feel as if they were in a different world.

3D and 2D Seamlessly Blended

Kay’s VR technology integrated 3D and 2D elements, creating a realistic and immersive environment beyond traditional 2D screens.

Interacting with Virtual Worlds

In these virtual worlds, users could interact with objects, picking them up and moving them, thus enhancing the feeling of physical presence and interaction.

Hyperlinked Virtual Worlds

Virtual worlds were interconnected through hyperlinks, allowing users to navigate and explore different spaces with ease, akin to web pages on the internet.

Robotic Avatars

Users could control robotic avatars in the virtual world, enabling natural and intuitive exploration and interaction with objects.

Feeling of Presence

The combination of immersive visuals, interactive objects, and robotic avatars created a strong sense of presence, making users feel as though they were truly inside the virtual world.

Virtual Reality as a Powerful Medium

Kay’s VR technology represented a significant advancement in fields like education, entertainment, and communication, offering a unique and engaging way for users to experience and interact with virtual worlds.

Technology Showcase

Squeak allowed users to create and explore various virtual worlds, customizable with simple tools for creating and manipulating objects, textures, and environments.

Full Mesh Physics Transfer

Squeak featured a mesh physics transfer system for realistic object-environment interactions. This enabled dynamic simulations, such as demonstrating flag physics.

Collaborative Play

Squeak supported multi-user interaction within virtual worlds. Users could control avatars, manipulate objects, and communicate in real-time.

Underwater World with Scriptable Fish

An underwater world in Squeak let users create and control fish with simple tools, animating them and showcasing Squeak’s dynamic simulation capabilities.

Simple 3D Modeling Tool

Squeak provided a 3D modeling tool that allowed users to create basic 3D objects by drawing their outlines, which the system then used to generate 3D models.

Rich 3D Environment with Texture Issues

Squeak could render detailed 3D environments with textures, although some texture issues due to driver problems indicated a need for optimization.

Networked and Lightweight

Squeak’s 3D system, including its networking capabilities, was developed by a small team and ran efficiently on lightweight computers, demonstrating its accessibility and efficiency.

Distance Manipulation and Quick Movement

In Squeak’s 3D worlds, users could effortlessly move to distant locations or objects, enabling fluid exploration.

Smalltalk: A Remarkable System with Minimal Codebase

The Smalltalk system encompassed an operating system, applications, 3D graphics, and development tools within a compact codebase, highlighting its efficiency and conciseness.

Abstraction and Late Binding as Key Concepts

Abstraction mechanisms and late binding were central in Smalltalk, reducing complexity and allowing dynamic changes, facilitating rapid prototyping and iterative development.

The Importance of Learning Curves and Iterative Development

Embracing learning curves in software engineering and leveraging late binding in Smalltalk enabled ongoing refinement and improvement without starting over.

Historical Examples of Paradigm Shifts

Kay drew parallels between the printing press’s impact and the potential influence of computers on society. He stressed the need for children to develop taste and discernment to appreciate and contribute to future technological advancements.

Examples of Educational Games that Foster Computational Thinking

Games like Rocky’s Boots and Robot Odyssey were effective in teaching digital logic and programming in a fun, engaging way, highlighting problem-solving and creativity.

The Role of Children in Technological Innovation

Kay emphasized the importance of nurturing children’s inventive skills and guiding them to avoid trivial pursuits, recognizing their potential to drive significant technological advancements with the right support and guidance.


Notes by: TransistorZero