Poet extends the Tcl language with objects featuring dynamic, prototype-based inheritance, persistence, and one-way constraints. Poet includes wrappers around the Tk and BWidget widgets and object and code editors.
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.
What's New in This Release: [ read full changelog ]
· This version includes bugfixes to the C code and to the installer, and should be much more stable (especially the Poetics object editor).
· There are minor bugfixes and enhancements throughout.