The believe behind this work is that new programming paradigms could provide end-users increased control over computers. Unfortunately, the notion of programming is stigmatized with frustrating experiences often resulting from our interaction with "programmable" consumer electronic devices such as VCRs or automatic garden sprinkler systems. While probably no programming language, visual representation, paradigm, or environment in the world can really eliminate the complexity resulting from dealing with intricate problems there still can be ways to make the programming of simple problems much more accessible to end-users. Our philosophy of Programming above C Level reflects the departure from traditional programming approaches geared for professional programmers along a number of dimensions.
From the very beginning (1989) the architecture of Agentsheets supported opportunistic design strategies. This flexible architecture allows users to deal with a wide range of application domains ranging from interactive simulation games to artistic media.
Agentsheets allow users to doodle by quickly creating a number of agents with some depictions. Even before these agents are programmed in any form users can put them into the Agentsheet (a sheet of agents) and play with them in a way very similar to using numbers in spreadsheets. In this context Agentsheets serves as medium to create interacting collections of "objects to think with" [Papert].
Over time a large number of Agentsheets applications got created using AgenTalk, an object-oriented programming language. Inspired by BitPICT [Furnas] and later ChemTrains [Bell] we introduced in 1990 the notion of graphical rewrites to Agentsheets in order to make programming more accessible to end-users. Agentsheets was the first system to combine the notions of agents, graphial rewrite rules and programming by example. Unlike previous rewrite rule systems the rules were associated with the individual objects, i.e., the agents, instead of entire scenes. This turned out to be helpful because it reflects the autonomous nature of agents.
Example: A rule that makes a car move on a road, , is created by simply moving the car on a road forward
A number of new rewrite rule system projects emerged. I collaborated with Allan Cypher and David C. Smith on KidSim (now called Cocoa) a very nice rewrite rules system especially aimed at children.
In many cases families of related icons need to be created. This process can be very tedious. Based on our experience with users we added automatic transformation of icons including icon bending allowing users to draw a single icon (the one on the left in the Figure below) and then, in a single step to create an entire family of icons:
Analogies allow end-users to create new behaviors efficiently without having to introduce abstractions. The combination of Icon, Rule bending and analogies led to the SimCity in 10 minutes project in which we showed that we could avoid the combinatorial explosion of rules by adding semantics to rewrite rules.
In the context of a TRP grant and under the heading of Jim Spohrer Apple Computer Inc. is supporting the productification of Agentsheets. Jim Ambach has created AgenSK8, an extended SK8 version of Agentsheets. He also prototyped parts of a new programming paradigm called Visual AgenTalk. The goal of this effort is to create a commercial cross-platform version of Agentsheets.
A number of larger projects have come out using Agentsheets to create domain-oriented design environments:
Based on experience with some of the larger Agentsheets projects we wanted to create a programming paradigm that would be still very accessible to end-users but more powerful than graphical rewrite rules. The graphical rewrite rules work great for graphical manipulation such as moving objects but help very little with other types of interactions. Visual AgenTalk is a completely new Tactile programming paradigm that allows end-users to deal with:
You may wonder how, these days, one can one write so much about programming and the web without mentioning some coffee related term? We claim that:
Jim Ambach has created a first version of, the Agentsheets Java player. This allows users to author/process complex behaviors in with the designer version of Agentsheets for now on a Macintosh. Finished behaviors and entire interactive simulations can be compiled into Java and then run on all platforms supporting Java.
SimCity is a trademark of Maxis