What is Programming?
Our own answer to this question claims "programming is the process of instructing the computer to perform some desired action." The breadth of this definition may be difficult to appreciate. Some atypical experiences which fit this definition may provide opportunities to develop problem-solving skill and may require less time to learn than "writing code."
Apple Computer developed an environment called Cocoa as a way to experiment with some new concepts. Apple decided not to support Cocoa once this experimental phase was over, but Cocoa became a commercial product called Stagecast Creator. You can still download Cocoa from the
Stagecast web site.
Cocoa demonstrates two interesting capabilities:
- Programming by demonstration
- Visual before and after rules
We present a simple demonstration of these capabilities here and urge you to donwload Cocoa and spend some time exploring on your own.

Here is a simple Cocoa world. This world has been created so that your friendly author (Mark) can learn to climb over obstacles (the two towers).
In this environment, the "programmer" demonstrates to an object what should be done when a specific situation is encountered.
For example, if the object encounters the following situation:

the object should do this:

This explanation is accomplished by demonstration - identifying the beginning situation and then changing the situation (move the object) to identify the desired ending situation.
An ordered set of rules becomes associated with an object.

The basic idea is to explain to individual objects how the objects are expected to act within the world that is being created. Objects can interact so some very complex worlds can be created. Stagecast Creator extends the capabilities of Cocoa by adding additional capabilities (including a plugin that allows worlds to be experienced over the Internet).