Finding out the boundary

- It is always a good idea to plan to allow individual progress, and plan for converging results. - Let the low-level part make its own progress. - Make sure the upper-level part is truly self-contained and implementable.

Use a "MicroSqueak tracer" to create a completely new image.

Who am I?

Yoshiki Ohshima '96. Received Master's degree in Computational Science from Tokyo Institute of Technology. '96 - Enrolled in the Ph.D course. '00 - Walt Disney Imagineering R&D in California. ...Got a Ph.D along the way... - Presently at Viewpoints Research Institute.

An Analogy:

MicroSqueak

(by John Maloney)

- Let you create a new virtual image from a separate class tree. - You really have all objects (classes and methods) all resulting bits in the new image under your control. - Still, you can run the simulation in the host image. - 57k image for "hello world", 100k with Compiler, etc.

- We are carefully rewrite all methods to make our program run under MicroSqueak. - When it is ready we rewrite things again in the new language, with new language constructs suitable for the need.

We are carefully rewrite all methods to make our program run under MicroSqueak. - When it is ready we rewrite things again in the new language, with new language constructs suitable for the need.

User Applications

"Dynabook Jr": A hypercard-like application. - Stack of cards and objects. "Cell" Objects. A holder for an expression and dependency. - Spreadsheet. - free form active essays with embedded "watchers".

- We are carefully rewrite all methods to make our program run under MicroSqueak. - When it is ready we rewrite things again in the new language, with new language constructs suitable for the need.

We are carefully rewrite all methods to make our program run under MicroSqueak. - When it is ready we rewrite things again in the new language, with new language constructs suitable for the need.

(Well, long time ago and many times by various people...)

The STEPS Project

- Let you create a new virtual image from a separate class tree. - You really have all objects (classes and methods) all resulting bits in the new image under your control. - Still, you can run the simulation in the host image. - 57k image for "hello world", 100k with Compiler, etc.

Viewpoints Research Institute

Graphics Engine: Gezira/Nile

- Write a whole personal computing system in tens of thousands of LOC. - Remove the barrier between the VM and objects. - Make everything accessible to the users.

People have already have done it!

(Well, long time ago and many times by various people...)

examples: - Lisp Machines - Smalltalk Environments. - (Plan9) - ... Why do we want to do it again? Because they are too complex nowadays! (Million SLOC) RedHat Linux: 30 FreeBSD: 8.8 Linux Kernel: 5.2 Windows XP: 50 (source: wikipedia.org)

- Smalltalk Environments. - (Plan9) - ... Why do we want to do it again? Because they are too complex nowadays! (Million SLOC) RedHat Linux: 30 FreeBSD: 8.8 Linux Kernel: 5.2 Windows XP: 50 (source: wikipedia.org)

- Smalltalk Environments. - (Plan9) - ... Why do we want to do it again? Because they are too complex nowadays! (Million SLOC) RedHat Linux: 30 FreeBSD: 8.8 Linux Kernel: 5.2 Windows XP: 50 (source: wikipedia.org)

Smalltalk

Our Dream

- Write a whole personal computing system in tens of thousands of LOC. - Remove the barrier between the VM and objects. - Make everything accessible to the users.

(Ian Piumarta, Alex Warth, Takashi Yamamiya)

Graphics Engine: Gezira/Nile

(Dan Amelang and Bert Freudenberg)

(https://github.com/damelang)

Squeak Smalltalk

It does describe "everything", and have "all Objects" abstraction. I like it because: - All in Smalltalk. - Everything is accessible and dynamically changeable. but I don't like it because: - All in Smalltalk. - Often very procedural written by Sunday-hackers. - Old graphics model. - Not everything is accessible (It has a "hermetically sealed" VM). SLOC: 0.6 millions. Could it be much smaller?

Viewpoints Research Institute

- An NPO founded by Alan Kay and Kim Rose. - About 10 members. - Funding from NSF and also private companies. - Research and practice in computing and education. - Research in personal computing systems.

Squeak Smalltalk

Use a "MicroSqueak tracer" to create a completely new image.

Language Processor

- Deals with programming language and execution. - It is most "meta" part of the system and can be very interesting (but could be a dangerous trap!) - Ian's various systems, Alex' OMeta, Takashi's Tamacola - meta-circular parser and tree-manipulator - the aim is to define new languages to the machine code. - Define a new language easily and describe different aspects of the system - When it is all dynamic, we can get rid of the VM. - New syntax definition is easy, but semantics?

(Ian Piumarta, Alex Warth, Takashi Yamamiya)

Who am I?

What is the model of personal computing?

All real components of software on your laptop: - Scheduler - Memory Management - I/O (Network, File, Input and etc.) - Graphics Engine - Language Processor - Application Framework - Development Environment - End User Applications. But it would be pointless just to write them because...

(The proposal and yearly reports are available at http://vpri.org)

Language Processor

GUI Application Framework: Lesserphic2

A Progress Report on the STEPS Project

The STEPS Project

(The proposal and yearly reports are available at http://vpri.org)

A 5-year, $5 million NSF Project: - Trying to find out the essense of the "model of personal computing" - Make the model presentable and accessible to the users.

(by John Maloney)

It does describe "everything", and have "all Objects" abstraction. I like it because: - All in Smalltalk. - Everything is accessible and dynamically changeable. but I don't like it because: - All in Smalltalk. - Often very procedural written by Sunday-hackers. - Old graphics model. - Not everything is accessible (It has a "hermetically sealed" VM). SLOC: 0.6 millions. Could it be much smaller?

A 5-year, $5 million NSF Project: - Trying to find out the essense of the "model of personal computing" - Make the model presentable and accessible to the users.

A Progress Report on the STEP Project

Yoshiki Ohshima Viewpoints Research Institute

- An NPO founded by Alan Kay and Kim Rose. - About 10 members. - Funding from NSF and also private companies. - Research and practice in computing and education. - Research in personal computing systems.

(Yoshiki Ohshima)

Our Dream

People have already have done it!

What is the model of personal computing?

- We have nice graphics engine to a prototype of universal document editor built on top of existing system Squeak. - While the goal is the final departure from Squeak, some things leaked in. - We are making a new language processor (a new language to write low-level code) separately. - It takes time to be usable and productive on the system. - How to migrate the former onto the latter?

We have nice graphics engine to a prototype of universal document editor built on top of existing system Squeak. - While the goal is the final departure from Squeak, some things leaked in. - We are making a new language processor (a new language to write low-level code) separately. - It takes time to be usable and productive on the system. - How to migrate the former onto the latter?

Progress Update

Different parts has been worked on by different team members in defiferent ways. But now we are trying to stitch them together and give it an electrical jolt: "Frankenstein". Graphics Engine: Gezira/Nile (Dan Amelang and Bert Freudenberg) Data Management: Worlds (Alex Warth) GUI Framework: Lesserphic2 (Yoshiki Ohshima) User Appplications (Ted Kaehler, Scott Wallace, Alan Kay) Language Processor: (Ian Piumarta, Takashi Yamamiya, Alex Warth)

GUI Application Framework: Lesserphic2

- Gezira-based vector graphics. Everything, even every letter is a vector-based object. - A uniform object model with direct manipulation feature. - A uniform event model.

(Yoshiki Ohshima)

- Deals with programming language and execution. - It is most "meta" part of the system and can be very interesting (but could be a dangerous trap!) - Ian's various systems, Alex' OMeta, Takashi's Tamacola - meta-circular parser and tree-manipulator - the aim is to define new languages to the machine code. - Define a new language easily and describe different aspects of the system - When it is all dynamic, we can get rid of the VM. - New syntax definition is easy, but semantics?

Yoshiki Ohshima '96. Received Master's degree in Computational Science from Tokyo Institute of Technology. '96 - Enrolled in the Ph.D course. '00 - Walt Disney Imagineering R&D in California. ...Got a Ph.D along the way... - Presently at Viewpoints Research Institute.

Data Management: Worlds

Yoshiki Ohshima Viewpoints Research Institute

(https://github.com/damelang)

Data Management: Worlds

- A mechanism to control the "scope" of side-effects. - Contain side-effects into first class data store objects called "worlds", and programmer can pick and choose data from them. - Could model STM, etc.

- Gezira-based vector graphics. Everything, even every letter is a vector-based object. - A uniform object model with direct manipulation feature. - A uniform event model.

All real components of software on your laptop: - Scheduler - Memory Management - I/O (Network, File, Input and etc.) - Graphics Engine - Language Processor - Application Framework - Development Environment - End User Applications. But it would be pointless just to write them because...

Next Steps

"Dynabook Jr": A hypercard-like application. - Stack of cards and objects. "Cell" Objects. A holder for an expression and dependency. - Spreadsheet. - free form active essays with embedded "watchers".

examples: - Lisp Machines - Smalltalk Environments. - (Plan9) - ... Why do we want to do it again? Because they are too complex nowadays! (Million SLOC) RedHat Linux: 30 FreeBSD: 8.8 Linux Kernel: 5.2 Windows XP: 50 (source: wikipedia.org)

- Smalltalk Environments. - (Plan9) - ... Why do we want to do it again? Because they are too complex nowadays! (Million SLOC) RedHat Linux: 30 FreeBSD: 8.8 Linux Kernel: 5.2 Windows XP: 50 (source: wikipedia.org)

- Smalltalk Environments. - (Plan9) - ... Why do we want to do it again? Because they are too complex nowadays! (Million SLOC) RedHat Linux: 30 FreeBSD: 8.8 Linux Kernel: 5.2 Windows XP: 50 (source: wikipedia.org)

Smalltalk

- It is always a good idea to plan to allow individual progress, and plan for converging results. - Let the low-level part make its own progress. - Make sure the upper-level part is truly self-contained and implementable.

Finding out the boundary

User Applications

MicroSqueak

Next Steps

- We have nice graphics engine to a prototype of universal document editor built on top of existing system Squeak. - While the goal is the final departure from Squeak, some things leaked in. - We are making a new language processor (a new language to write low-level code) separately. - It takes time to be usable and productive on the system. - How to migrate the former onto the latter?

We have nice graphics engine to a prototype of universal document editor built on top of existing system Squeak. - While the goal is the final departure from Squeak, some things leaked in. - We are making a new language processor (a new language to write low-level code) separately. - It takes time to be usable and productive on the system. - How to migrate the former onto the latter?

An Analogy:

(Dan Amelang and Bert Freudenberg)

- A mechanism to control the "scope" of side-effects. - Contain side-effects into first class data store objects called "worlds", and programmer can pick and choose data from them. - Could model STM, etc.

Different parts has been worked on by different team members in defiferent ways. But now we are trying to stitch them together and give it an electrical jolt: "Frankenstein". Graphics Engine: Gezira/Nile (Dan Amelang and Bert Freudenberg) Data Management: Worlds (Alex Warth) GUI Framework: Lesserphic2 (Yoshiki Ohshima) User Appplications (Ted Kaehler, Scott Wallace, Alan Kay) Language Processor: (Ian Piumarta, Takashi Yamamiya, Alex Warth)

Progress Update