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
Poet objects are classless, any
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
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
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
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
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.