home Personal


Personal Programming (PP)

This page is about Loke, an interactive computing Environment intended 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 it is programming by object composition:

The programmer selects objects from a pool of existing objects, moves them into her DCI Context and augments them with scripts that makes them play their roles within the system of collaborating objects.

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

Consider a girl, Ellen, who plans a long hike for the morrow. She wants to start early. She wants 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. She calls them WAKERUPPER, FORECASTER, and TIMER, and links them together to form a system of collaborating objects.
This 1.5 minute video clip shows how she does it.
(I plan to replace it with a nicer clip made by a professional).

Loke heralds a new kind of programming that targets networks of communicating objects that can be personal or shared. Alan Kay coined the term object-orientation: "its semantics is a bit like having thousands and thousands of computers all linked together by a very fast network". Loke is a personal object computer that consists of objects and nothing but objects. It replaces the trusted von Neumann computer for being closer to our connected world and to a mind-set shared by most people. A program is no longer a piece of code in a stand-alone computer, but is distributed among an unbounded set of objects (computers): Some of them personal and the rest shared over a network such as the Web or an IoT. A Context creates a barrier that lets the Personal Programmer focus on object Interaction and protects her from the intricacies of the underlying system.

I am writing a 55-page article called Personal Programming about modeling and programming with objects. It merges Loke with DCI, MVC, Role Modeling, and other ideas. Here is the current draft:
Personal Programming, draft article
Personal Programming, appendixes

Loke is implemented in Squeak and works in Windows XP and Windows 7: Squeak implementation.

Enjoy
--Trygve