Wheat - A Language for Web Sites

Wheat is a programming language, library and environment for creating internet programs. Its target audience is developers of small to medium sized dynamic web sites. Wheat's goal is to be the kind of environment you'd write Wiki or blog software in.

Wheat takes a fundamentally different approach to web programming than common web scripting systems. In Wheat, all objects exist in a single hierarchical name space, which in turn maps onto the URI name space. Hence, all objects in Wheat have a URI, and are accessible via the web. The Wheat virtual machine is in fact a web server. Requests via HTTP are mapped to objects, which are then rendered via XML templates, usually to XHTML, and then returned.

Just stumbled across Wheat and thought people here might be vaguely interested. At first glance, a bit like Squeak via a web server. It has been mentioned only briefly before.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.


Sounds like twisted/nevow to me.


Wheat sounds very similar to the way I've tried to use Zope.

The bit about "all objects have a URI and are accessible via the web" is a simplification of the way Zope works.

The idea of holding the programs on the web can also be done in Zope (the Zope community calls it programming "TTW" -- Through The Web). However, Zope isn't really optimized for it; the expectation with Zope is that the code lives on the disk.

I've been disappointed with my Zope experiments, probably because I'm trying to use it in a quite nonstandard way; I'm looking forward to trying Wheat instead.

I'm so behind on my news read

I'm so behind on my news reading that I didn't even notice this item about my own language go by until after it had been posted a week!

Indeed, Zope was one of the original inspirations for Wheat, and I too was disappointed with my Zope experiments. One of the things that Wheat does differently than Zope is that the paradigm: Objects with URIs in a tree of objects is taken "all-the-way-down". Even local variables on the stack, which itself is just located in /proc (!), are part of the regime.

I have met Donovan Preston of Nevow and he and I are certainly on the same page. Both Nevow and Wheat have templating systems with a strong separation of presentation and logic. I think we both look forward to learning from each other's systems.

- Mark