Bootstrapping The Computer Revolution or, What in the World Is Alan Kay Up To? presented by Gavin...

36
Bootstrapping The Computer Revolution or, What in the World Is Alan Kay Up To? presented by Gavin Claypool
  • date post

    21-Dec-2015
  • Category

    Documents

  • view

    217
  • download

    1

Transcript of Bootstrapping The Computer Revolution or, What in the World Is Alan Kay Up To? presented by Gavin...

Page 1: Bootstrapping The Computer Revolution or, What in the World Is Alan Kay Up To? presented by Gavin Claypool.

Bootstrapping The Computer Revolution

or, What in the World Is Alan Kay Up To?

presented by Gavin Claypool

Page 2: Bootstrapping The Computer Revolution or, What in the World Is Alan Kay Up To? presented by Gavin Claypool.

• Globally dispersed research group comes from a tradition of whole systems design (APRAnet, PARC)

• Ideology is motivated by user-centered systems design

• Research Focus:– Teaching and learning powerful ideas (Squeak eToys)– Powerful ideas content and how to represent it (dynaWIKIpedia)– User interfaces that aid learning and doing (OLPC)– Inventing fundamental new computing technologies (SE model)

Page 3: Bootstrapping The Computer Revolution or, What in the World Is Alan Kay Up To? presented by Gavin Claypool.

• One Laptop Per Child (OLPC) Initiative– Launched by MIT’s Media Lab in 2005

now an independent not-for-profit group

– Machine designed for “learning learning”“It's an education project, not a laptop project.”

– VRI designing future user interface; one facet: it learns what kind of user is trying to use it

This is something that every good teacher does, but (amazingly) has not been in any existing UI.

Page 4: Bootstrapping The Computer Revolution or, What in the World Is Alan Kay Up To? presented by Gavin Claypool.

• User interface that helps people learn things– how their computer system works (mundane)– math, science, reading and writing (interesting)

• Reinventing Programming (NSF grant)

Page 5: Bootstrapping The Computer Revolution or, What in the World Is Alan Kay Up To? presented by Gavin Claypool.

A Brief History of Programming

• Machine language (on/off switches: 1’s and 0’s)• Assembly language (1-to-1 ML mnemonics)• Compiled language (early Fortran)• Structured language (Pascal)• “Fourth-generation” language (SQL)• Object-oriented language (Java)• “Experimental” (APL, Smalltalk)

Page 6: Bootstrapping The Computer Revolution or, What in the World Is Alan Kay Up To? presented by Gavin Claypool.

… and how it grew …

• Direct execution (load and run mach. inst.)• Operating system (one program at a time)• Timesharing systems (multiple users)• Minicomputers• Microcomputers (the “personal” computer)• -- and in the last 30 years?

• GUIs (mouse, wygiwyg), Internet, Web

Page 7: Bootstrapping The Computer Revolution or, What in the World Is Alan Kay Up To? presented by Gavin Claypool.

… and grew!

• Comparison of Code Size

– MacOS X 10.4 ≈86,000,000 lines of code

– Windows Vista ≈50,000,000 lines of code

– Red Hat Linux 7.1 ≈30,000,000 lines of code

– Squeak Smalltalk ≈230,000 lines of code

Page 8: Bootstrapping The Computer Revolution or, What in the World Is Alan Kay Up To? presented by Gavin Claypool.

But does it need to?

• Comparison of Code Size

– MacOS X 10.4 ≈86,000,000 lines of code

– Windows Vista ≈50,000,000 lines of code

– Red Hat Linux 7.1 ≈30,000,000 lines of code

– Squeak Smalltalk ≈230,000 lines of code

– APL programs 1 line of code

Page 9: Bootstrapping The Computer Revolution or, What in the World Is Alan Kay Up To? presented by Gavin Claypool.

An Excruciating Example

• An area that needs more than incremental improvements is programming, both in the large and in the small.

• Code is too: – Large– Complex– Costly– Buggy– Insecure– Segregated– Inexpressive

Page 10: Bootstrapping The Computer Revolution or, What in the World Is Alan Kay Up To? presented by Gavin Claypool.

Objective

• To make a practical working mathematical model of a complete personal computer system– Powerful enough to capture the phenomena– Small enough to be comprehensible

• Reduce necessary size by a factor of 10 (≈20,000 lines)– 5X by a different, more advanced design– 2X by removing unused code

Page 11: Bootstrapping The Computer Revolution or, What in the World Is Alan Kay Up To? presented by Gavin Claypool.

The “Self-Exploratorium”

• A practical working system that is its own model

• Extremely compact

• Highly useful end-user system

• A system to learn about systems

Page 12: Bootstrapping The Computer Revolution or, What in the World Is Alan Kay Up To? presented by Gavin Claypool.

Broader Impacts of the Model

• Most early learning of programming is non-scalable: large v. small programs

• Deeper (mathematics-like) nature of the most powerful ideas in computing (CS) are poorly described and learned via papers

• What should be done differently?

Page 13: Bootstrapping The Computer Revolution or, What in the World Is Alan Kay Up To? presented by Gavin Claypool.

A simpler, yet stronger approach

• Well-designed system, instrumented to be:– Learned– Understood– Modified

• Where “the system is the curriculum” for– Teenagers– University students– Developing world (OLPC potential)

Page 14: Bootstrapping The Computer Revolution or, What in the World Is Alan Kay Up To? presented by Gavin Claypool.

Blazing New Paths

• Operating system

• Application

• Media

• Internet / Web

• Protection and Security

• Programming

• Self-Disclosure

Page 15: Bootstrapping The Computer Revolution or, What in the World Is Alan Kay Up To? presented by Gavin Claypool.

Operating System paths

• Classical path – layers of code (kernel, shell, etc.)

• Internet-inspired path – heterogeneous mixture of hardware and software works by obeying message-passing conventions

(In Kay’s view, overemphasizing the objects, and underemphasizing the messaging, has been one of the biggest problems in OO software architectures developed over the past 25 years.)

Page 16: Bootstrapping The Computer Revolution or, What in the World Is Alan Kay Up To? presented by Gavin Claypool.

Utilization of “Real Objects”

• Objects (written in other forms) are dealt with safely via a combination of message-passing and address space confinement

Example• Device drivers will not be part of the system• Devices furnish their own drivers as needed to system

– Communicate using universal messaging convention– Driver runs in separate address space

Page 17: Bootstrapping The Computer Revolution or, What in the World Is Alan Kay Up To? presented by Gavin Claypool.

Applications path

• Traditional path – yield proprietary objects in a way that’s difficult to combine

• DTP-inspired path – any and all objects to freely combine visually and behaviorally (similar to articles, pictures, drawings, captions, etc. combined into a document)

aka HyperCard on Steroids

Page 18: Bootstrapping The Computer Revolution or, What in the World Is Alan Kay Up To? presented by Gavin Claypool.

Media path

• Low-level media models on host machine– Graphics (“bitblt”, vectorized 2D & 3D)– Sound (MPEG player)– Printing (PostScript document format)

• Consolidated into a simpler scheme (than in Squeak Smalltalk) that provides a little more functionality with much less code

Page 19: Bootstrapping The Computer Revolution or, What in the World Is Alan Kay Up To? presented by Gavin Claypool.

Internet / Web path

• Traditional Web – architecture is so ad hoc

• New path – simpler functionality that can work within existing Web (dynaWIKIpedia)– Find, view, and wysiwyg-author arbitrary

multimedia “pages”– “Pages” are hyperlinked, searchable, and

allow “services”

Page 20: Bootstrapping The Computer Revolution or, What in the World Is Alan Kay Up To? presented by Gavin Claypool.

dynaWIKIpedia (prototype)

Page 21: Bootstrapping The Computer Revolution or, What in the World Is Alan Kay Up To? presented by Gavin Claypool.

• Wikipedia content is – mostly hyperlinked text with a few pictures and formulas– very far from rich dynamic computer media and

the kind of content that most learners need

• Example– Though it is rather easy even for children to discover

Galileo's characterization for gravity near the surface of the Earth, and to actually derive the 2nd order differential equation of motion, there is no such pathway provided for experimentation

• What is needed – a dynamic wysiwyg media that combines the full power of

computing and the ease of entry, editing, and quick (wiki) publishing to the web

Web Learning

Page 22: Bootstrapping The Computer Revolution or, What in the World Is Alan Kay Up To? presented by Gavin Claypool.

Protection and Safety

• “real objects” are already protected– only receive messages they want to– only act on messages they want to

• End-user recovery from all errors– Invertible processes– Real-time checkpointing– Versioning– Undo and Redo

Page 23: Bootstrapping The Computer Revolution or, What in the World Is Alan Kay Up To? presented by Gavin Claypool.

Programming Approach

• As simple as possible scripting “all the way down”• Allow multiple styles of programming under

one logically consistent framework• Experiment with and innovate new ways to

program• Expand user base being served to include

novices (including children)• Promote computer literacy – [lower the

requirements by simplification]

Page 24: Bootstrapping The Computer Revolution or, What in the World Is Alan Kay Up To? presented by Gavin Claypool.

Scripting Example

See http://irbseminars.intel-research.net/AlanKayNSF.pdf (page 6)

Page 25: Bootstrapping The Computer Revolution or, What in the World Is Alan Kay Up To? presented by Gavin Claypool.

Supported Programming

• Traditional programming– Searching– Spreadsheeting– Scripting of media (HyperCard-like)– Templates for new media types

• Non-traditional programming– Problem solving via conditions and constraints– Massive parallel “particles and fields” techniques– Deduction, induction, abduction, etc. [*duction]– System bootstrapping method

Page 26: Bootstrapping The Computer Revolution or, What in the World Is Alan Kay Up To? presented by Gavin Claypool.

Explanation and Self-Disclosure

• Existing systems are poor at explaining themselves, even to professionals

• Any structure should be able to explain and show how it was made (auto-tutorial)

• Modelling time approach (rather than CPU time) allows extensive undo, redo, checkpointing, and the ability to run computations forward and backward to understand what is going on (invertible processes)

• System will go beyond being reflective (capable of self-modification) to being introspective (a system which guides programmers to full disclosure of how it works)

Page 27: Bootstrapping The Computer Revolution or, What in the World Is Alan Kay Up To? presented by Gavin Claypool.

Roles

• Every object is essentially the same kind of object

– The differences are small and mostly parametric: • objects have different costumes • have a few different specific behaviors for their special roles, etc.

– System design will emphasize the similarities and diminish the differences

– Leads to an enormous contraction of the number of meanings (and LOC)

• Theatrical metaphor – Every entity at every level is portrayed by an intelligent actor wearing appropriate costumes and simply playing a role

• Biological analogy – there are 250+ cell types in human beings, all variations of—and derived from—the original fertilized cell

Page 28: Bootstrapping The Computer Revolution or, What in the World Is Alan Kay Up To? presented by Gavin Claypool.

The End-User Thesis

• The end-users are the only important faction to serve

• The value of a personal computing system comes solely from how well its users are served

• The user interface and user experience is a good starting place to invent the single kind of actor

Page 29: Bootstrapping The Computer Revolution or, What in the World Is Alan Kay Up To? presented by Gavin Claypool.

Three Principles

• Specifications should be executable and debuggable– Specs are actual meanings, not a model of them, in a system– Absolute separation of meanings from optimizations

• Systems should contain complete operational and late-bound* enhanceable models of themselves

• Completely late-bind* the bootstrapping of the fundamental objects of the system

*Late-binding has to do with what has to be committed to, when, and how much can be gracefully changed later in the process. In an explorable field such as computing, critical new ideas that were really needed at the beginning of the project might only be discovered ¾ of the way through.

Page 30: Bootstrapping The Computer Revolution or, What in the World Is Alan Kay Up To? presented by Gavin Claypool.

“Albert” – Bootstrapping

Page 31: Bootstrapping The Computer Revolution or, What in the World Is Alan Kay Up To? presented by Gavin Claypool.

Bootstrapping

• Disposable compiler implements a simple message-passing OOL

• Specification-based Object compiler (implementing the same OOL) is implemented (static)

• Dynamic expression compiler/evaluator is implemented using the static compiler; used to replace the static message mechanisms with dynamic equivalents

Page 32: Bootstrapping The Computer Revolution or, What in the World Is Alan Kay Up To? presented by Gavin Claypool.

Milestones

18-24 mos. (NSF site visit)• “meaning engineering” of the main framework• Graphics, GUI, etc.

“early and often”• Release of system parts to open source community

to leverage input and testing by members

5 years• Target for completion of project

Page 33: Bootstrapping The Computer Revolution or, What in the World Is Alan Kay Up To? presented by Gavin Claypool.

Intellectual Merits

• New (or non-mainstream) ideas disposed in powerful and often novel ways; e.g.– Bootstrapping method– “Universal object” approach to end-user

facilities– Alternatives to OS, applications, web– Roles (instead of inheritance)– New ways to program for end-users

Page 34: Bootstrapping The Computer Revolution or, What in the World Is Alan Kay Up To? presented by Gavin Claypool.

Expected Benefits

• Contribute a better approach to personal computing overall (and to many parts)

• Provide advances in CS, SE, and Design

• Boost understanding and learning about systems, and how to explain them (i.e., educate people about them)

• Create test-bed environment: for experiments in “the programming of the future”

Page 35: Bootstrapping The Computer Revolution or, What in the World Is Alan Kay Up To? presented by Gavin Claypool.

A final comment

• This proposal for the future starts by trying to recover the best from the past, particularly the seemingly forgotten ideas of another visionary, Doug Engelbart. As Kay rightly points out … :

• [Most of those ideas] were written down 40 years ago by Engelbart. But in the last few years I’ve been asking computer scientists and programmers whether they’ve ever typed E-N-G-E-L-B-A-R-T into Google -- and none of them have. I don’t think you could find a physicist who has not gone back and tried to find out what Newton actually did. It’s unimaginable. Yet the computing profession acts as if there isn’t anything to learn from the past, so most people haven’t gone back and referenced what Engelbart thought.

• … Not that I agree 100% with all the ideas in the report (… [and] there’re quite a few I don’t fully grasp) .... But it’s definitely worth the effort reading, trying to understand and mulling over Alan Kay’s vision of the future of programming. He knows a bit about these things.

J. A. Ortega-Ruiz, Catalan Institute for Space Studies, his 2/12/07 blog

Page 36: Bootstrapping The Computer Revolution or, What in the World Is Alan Kay Up To? presented by Gavin Claypool.

Links

• Steps Toward The Reinvention of Programming NSF Proposal – Granted August 2006A Compact And Practical Model of Personal Computing As A Self-Exploratoriumhttp://irbseminars.intel-research.net/AlanKayNSF.pdf

• “The Power of the Context”remarks made upon receiving the 2004 Draper Prize:a history of developments at PARC; *** extensive bibliography ***http://www.vpri.org/pdf/draper_RN-2004-001.pdf

• “Alan Kay: The PC Must Be Revamped—Now”interview by Allen B. Alter for CIO Insight – 2007 Feb 14http://www.cioinsight.com/print_article2/0,1217,a=200162,00.asp

• Doug Englebart: Interactive Computing System demo, 1968 FJCCvideo (1h 15m): described as “the mother of all demos” http://video.google.com/videoplay?docid=-8734787622017763097&q=engelbart

• Doug Englebart: Bibliographyhttp://www.bootstrap.org/institute/bibliography.html