5 - Tclkit
Tclkit is the platform specific part of a Tclkit/Starkit deployment.
Tclkit combines a number of extensions and libraries in a single executable file:
Being a complete Tcl/Tk distribution, Tclkit can be used as an alternative to the usual tclsh or wish commands. To use as a Tcl shell, just run as you would tclsh. To use as a Tk shell, add “package require Tk” to load Tk and Tclkit is equivalent to wish.
And being a single file, Tclkit is perhaps the easiest way to get a Tcl/Tk environment onto any particular platform. Versions are available for over thirty platforms – from PDAs to mainframes - making it the most portable Tcl/Tk distribution available.
Although Tclkit is cross-platform, a deliberate effort has been made to limit the included modules to generally useful facilities. Whilst it would be tempting to include other modules and make Tclkit more of a “Batteries Included” distribution, this would increase its size (perhaps significantly) - this making it less practical for use in network based deployment. And, as we have seen, it is easy enough to add compiled extensions to Starkits or to wrap them into a Starpack.
Having read this, one might legitimately ask “why IncrTcl and why not one of the other object oriented extensions?” . The first part is easy enough to answer - an object oriented extension can make Tcl code much simpler and more maintainable. This is particularly true of event driven GUI code, where it avoids the need to carry around a lot of context, or pollution of the global namespace. Any object oriented extension for Tcl would have done but IncrTcl is well established, relatively stable and adds only around 50Kb to the size of Tclkit.
Even with Tcl/Tk and its extensions, the size of Tclkit is still quite small. This is, in part, because all the runtime scripts are compressed using Zlib. But on Windows and Linux the size is further reduced by compressing all binary code using UPX (Tclkit for Windows is less than 1 megabyte in size).
Typically Tclkit plus a substantial application fit on a single floppy disk.