Poet: Prototype Object Extension for Tcl

download   Download

documentation  Documentation
 o Programmer's Manual
 o Tcl'2007 paper
 o Tcl'2007 slides
 o Screenshots
 o Video 1: Poet
 o Video 2: Poetics

.  Community
 o Forums
 o Mailing Lists
 o Report a bug



Poet extends the Tcl language with objects featuring dynamic, prototype-based inheritance, persistence, and one-way constraints. Poet includes wrappers around the Tk, Ttk, and BWidget widgets and object and code editors.

Prototype objects

Poet objects are classless, any object can act as the parent for any other object. The top of the hierarchy is the primordial Object. When a message is sent to invoke a method on or obtain an attribute (slot) of an object, if the target object doesn't contain the method or slot its parents are searched, then their parents, and so on, all the way up to Object.


Objects can be marked as persistent by adding the parent Thing. Setting up to load all things from storage (a single file or directory of files) and save them when the program exits takes only a few lines of code.


The value of a slot can be constrained to be the result of a formula, which can be any Tcl code. Any slots referenced in the formula are associated with the constrained slot, when their values change the value of the constrained slot is automatically updated.


Poetics (the Poet Integrated Construction Set) is a set of tools allowing an end-user to modify the objects in a running Poet application. The current Poetics tools consist of an object browser/editor and a syntax-highlighting code editor. While not yet ready for end-user use, these tools are valuable assets to the Poet developer.


Poet is freely available under the BSD license. It has currently been compiled and tested on Windows, Mac OS X, and Linux; we're looking for help porting it to other Tcl platforms.

From the Download link to the left you can get a copy of the complete Poet distribution directory as well as a single file Windows/Linux/Mac starkit. The starkit can be loaded into a Tcl interpreter or run standalone to demo and install Poet.

The current release is version 2.2.0.

Phil Mercurio