|
Poet
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.
- Persistence
-
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.
- Constraints
-
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
-
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.
|
|
|
|