PRISM is a programming environment based on interactive fiction. The name comes from the 1985 text-adventure game, “A Mind Forever Voyaging.” In it Perry Simm, or PRISM, discovers that all his memories are a simulation to develop artificial intelligence based on lived experiences.
The interactive fiction framework allows a language to be designed, comprising of descriptive nouns, verbs, and adjectives. From this a data dictionary, or rather encyclopedia can be derived, allowing all team member to discuss the project naturally and precisely.
PRISM is also an object-oriented programming environment in the tradition of Smalltalk. Each program running in PRISM is an autonomous, self-contained object which can be interacted with, and in turn interacts with other objects using natural language commands. In real-time, while the program is running, the objects can be looked at, picked up, dropped or even modified on-the-fly.
The ability to inspect and modify a running program has the effect of significantly reducing the cognitive load of the developer. There is a vast difference between the source code and what it “looks like” when it is running. Developers have to build a large, detailed model in their minds, and maintain it for an extended amount of time. PRISM externalizes this mental model into persistent, interactive objects. This allows for getting into flow faster, and more easily recovering from distractions.
The real-time environment also eliminates compile, deployment, and start up times. With instant feedback on changes, a developer can develop a tempo, or flow rhythm. Test, code, test, code, test code, yeah! Contrast that with the 20 second, 2 minute, or even 10 minute compile times that are common for most software. Not to mention typical deployments which can take an hour or more to finish and start up.
And finally, PRISM is language-oriented from top to bottom. It enables meta-programming, or programs that write other programs. This enables programmers to define their own syntax and semantics, allowing an unparalleled freedom of expression in coding!
Leave a Reply