home PP

Personal Programming (PP)

This page is about BabyIDE(PP), an Interactive Development Environment extended for home owners who need to control their Internet of Things and for their kids who like to play with their Internet of Toys. The idea behind BabyIDE(PP) is programming by object composition:

The programmer selects an object from a pool of existing objects, moves it into her DCI Context and augments it with a role script that makes it fulfill its responsibilities within the system of collaborating objects.

Different versions of BabyIDE lets novices and experts create their programs within the PP model according to their requirements and expertise.

Consider a girl, Ellen, who plans a long hike for the morrow. She wants to start early. Shewants the alarm to wake her at 06:00 but only but if the meteorologists forecast dry day. Ellen selects three objects: A bedside alarm, a weather forecast, and a timer, calls them WAKERUPPER, FORECASTER, and TIMER, and links them together to form a system of collaborating objects.

This 5 minute video clip illustrates the idea.
(I plan to replace it with a nicer clip made by a professional).

BabyIDE heralds a new style of programming that targets networks of communicating real or virtual computers. Alan Kay coined the term object-orientation: "its semantics is a bit like having thousands and thousands of computers all liked together by a very fast network". Kay defines a disruptive mental model on top of the trusted von Neuman model of computing. A program is no longer a piece of code in a stand-alone computer, but is distributed among an unbounded set of computers (objects) in a network such as the Web or an IoT. The DCI Context creates an abstraction barrier that lets the Personal Programmer focus on object Interaction and protects him or her from the intricacies of the underlying Data objects.

I am writing a ~50-page article called Personal Programming about modeling and programming with objects; The object computer, DCI, MVC, and such. Here is the current draft. Commnts will be appreciated.
Personal Programing (PDF).

A Squeak implementation of BabyIDE works in Windows XP and Windows 7.
BabyIDE.zip (outdated)