We are entering an era in which a multitude of new forms of media will be invented and deployed. Whether these new forms become tools for thought or mere distractions depends upon how easy it is for non-specialists to use them to express their ideas. Programmability has been neglected in the rush to develop new media, but what is new and interesting about the new digital forms, namely their interactivity and dynamism, require some grasp of the art of programming in order to be fully utilized.
Programming should thus be thought of as a basic intellectual skill, comparable to writing. Like writing, programming has to be learned, sometimes laboriously; and while it can certainly be made simpler and more accessible than it has been, it cannot and should not be reduced to triviality or eliminated. In my own experience, genuine learning takes place when the learner is motivated to learn, when the topic is interesting for its own sake or is a means to a genuinely desired end. Programming can be either, but too often is presented in a dystonic manner unconnected with the learner's actual interests. And too often the tools that programming environments provide are too weak to allow a beginner to advance to the point where their skills can match their vision.
My project has been an effort to set programming in new contexts and put a new face on it. Rather than framing computing and programming as a means of manipulating abstract and disembodied data, LiveWorld frames it as a task of building concrete autonomous graphic worlds, and supplies the tools necessary for building such worlds. Rather than thinking of programs in formal or mechanical terms, agent-based programming sees them in animate terms, with purposes, reactions, and conflicts of their own. The hope is that thinking about these systems can engage the learner's thinking about purpose, reaction, and conflict in the wider world, a world that is inhabited by and largely determined by the purposeful mechanisms of life.