Program Domain
=
Application Domain
Wheat bridges the traditional gap between the experience we try to give users and the experience we program in.
On a technical level it does this in several ways:
- Objects are persistent
- Objects have URLs as part of a universal address space
- Objects are rendered into XHTML and offer services via HTTP POST
- The application model is stateless: there is no main(), and no long-term processes
On a larger scale, the web is a new computing paradigm - it deserves a new tool kit with the same radical shift.
This is the proviso of "eat your own dog food" taken to the extreme.
I've been asked why does this warrant a new language (somehow no one seems to care about the new environment...). Here is one of my more wordy replies:
"There is no language today in which objects are conceived as the persistent, globally accessible entities that web programming today attempts to model. Web programming is sufficiently different from desktop and server application programming to warrant a new model: When building for those environments we expect programs to be started at a point in time, read the user's data from some data store into the heap, process it, possibly interacting with the user, write it back and then quit. Heap based objects, or more generally, languages where the unit of operation is on ephemeral, memory based data, works perfectly for applications. When we think of web programming, we are trying to create a view where the user's content is ever present, ever live, and widely accessible. Rather than build this world view up on top of an memory based foundation, Wheat has an object and language model that can directly support this style of programming."