Poet is a Tcl software component that enables users to extend objects in a prototype-based manner, making it easier to create and manage objects within the Tcl programming language.
One of the most notable features of Poet is that the objects are classless, which means that any object can behave as the parent for any other object. Moreover, the top of the hierarchy is referred to as the primordial Object. Whenever a message is sent to toggle a method or obtain an attribute (slot) of an object, if the target object does not include the method or slot, its parents are searched, then their parents, and so on, all the way up to Object.
Persistance is another feature that makes Poet standout. Objects can be labeled as persistent by adding the parent Thing. You can set it up to load all things from storage (a single file or directory of files) and save them when the program ends with just a few lines of code.
Constraints is another feature that is integrated into Poet. The value of a slot can be restricted to be the result of a formula, which can be any Tcl code. Any slots referenced in the formula are connected with the constrained slot. When their values change, the constrained slot's value is automatically updated.
Poetics is a series of tools that come with this program that allows end-users to modify the objects in a running Poet application. The current Poetics tools comprise an object browser/editor and a syntax-highlighting code editor, which are valuable assets to the Poet developer, even though they are not yet ready for end-users to use.
Version 2.2.0: N/A