Wheat is a language and environment, created by MarkLentczner, for creating dynamic web sites like blogs and portals: Every object has a URI (UniformResourceIdentifier), the virtual machine is a web server, and the development environment is a Wiki.
It is a PrototypeBasedLanguage.
It has DynamicTyping with StrongTyping (including a few novel types like error, unknown, and path).
It lacks GarbageCollection but instead aims to have the semantics of objects resemble those of files or web pages: an object's lifetime is linked to the lifetime of its container. Just as a filename or URL can later point to different contents or nothing, so a path to a Wheat object can later point to different objects or nothing.
- Cool...but what do you do about lifetimes? Persistence? Versioning?
- Think of all the objects as being in a tree, just as all the entities in a file system are. Now, just like many file systems, we can mount object media at various points in that tree. The different types of object media implement persistence: XML object media stores all objects in XML files in the host's file system, temp object media stores only objects in memory and they don't persist, SQL object media (not yet implemented) would store its objects in a database. Just like working with files, in Wheat object persistence has been decoupled from access and manipulation. And yes, there is proc object media that reflects the process state (threads, stack frames, local variables, etc.) back into the object space!
The most similar system is
ZopeApplicationServer. Zope is built on
PythonLanguage, and the question is whether the semantics of
PythonLanguage objects are as convenient as Wheat object semantics for this kind of system.
The current implementation is OpenSource.
Lots more at http://www.wheatfarm.org/
CategoryProgrammingLanguage