Snit
Snit is an object-oriented extension to the Tcl programming language. Snit is a recursive acronym that stands for "Snit's Not Incr Tcl." Snit is a pure Tcl object and megawidget system. It is unique among Tcl object systems in that it is based not on inheritance but on delegation. Object systems based on inheritance only allow inheriting from classes defined using the same system, which is limiting. In Tcl, an object is anything that acts like an object; it shouldn't matter how the object was implemented. Snit is intended to help build applications out of the code at hand. Thus, Snit is designed to be able to incorporate and build on any object, whether a hand-coded object, a Tk widget, an Incr Tcl object, a BWidget or almost anything else.
Read more about Snit.