Tk sets the standard
Tk is similar to Qt and Motif, the first two toolkits reviewed in this series, in that it is a library coded in C that implements a collection of widgets. However, unlike Qt and Motif, Tk is known by most programmers through its binding to the Tcl scripting language, rather than through C itself.
It is widely believed that Tk is slow because it is used with a scripting language and scripting languages don't perform like C or assembly. This is simply not true -- Tk is comparable in speed to other leading toolkits. In fact, it's considerably zippier than Java's Abstract Windowing Toolkit (AWT). Moreover, because Tk's design intentionally emphasizes easy use for common design situations, Tk is ripe for optimization. As a result, many Tcl/Tk applications are faster than their Motif-based counterparts.
John Ousterhout, a professor at the University of California at Berkeley, created Tcl and Tk in the late 1980s; since then, users and developers of Tcl and Tk have generally belonged to the same demographic. The toolkits are not identical, though. Many Tk programmers base their work on C, Perl, Python, Ruby, Lua, or Scheme. Two recent, well-received books on Tk development are aimed at Perl and Python programmers, rather than those working with Tcl.
So it can be advantageous to understand the roots Tk shares with Tcl, but it's not necessary to use one with the other. Some Tk characteristics are bound to Tcl; some are more generally available.
Portability sets Tk apart from other toolkits -- it is more portable than any other contemporary GUI toolkit, even AWT. Good Tk implementations are available for all Unixes, as well as for Windows, Mac OS, OpenVMS, and other more specialized operating systems.
That dominance seems likely to change: Java Virtual Machines continue to improve, and Qt and wxWindows seem to be on course to release Mac OS versions. Tk's Mac OS distribution has appeared to weaken over the last year. Few developers have contributed to its maintenance, and despite frequent inquiries about a Tk for the Palm OS, one doesn't seem likely to emerge soon.
On the other hand, Tk is currently undergoing its most significant change since it was first ported to the Mac OS in the mid-'90s. The TkGS team, led by Frédéric Bonnet, is reworking Tk's internal design to improve performance and maintainability. It is widely anticipated that once this is completed, Tk ports to Microwindows or Nanox will be quick and nimble. And besides the complete TkGS rewrite, one group is investigating the possibility of a rapid port to Microwindows or Nanox from the current code base.
Tk, clearly in the lead right now with regards to portability, is also a favorite among developers striving for platform neutrality.
Expressiveness and wise defaults
Another benefit of Tk is its conciseness. The classic minimal Tk application is indeed tiny:
pack [button .mybutton -text Bye-bye -command exit]
This is a small but complete program in Tcl/Tk that
Build your tech library with our book giveaways.
Windows PowerShell 2.0 Unleashed
By Tyson Kopczynski, Pete Handley, Marco Shaw; Published by Sams
Windows PowerShell Unleashed will not only give you deep mastery over PowerShell but also a greater understanding of the features being introduced in PowerShell 2.0–and show you how to use it to solve your challenges in your production environment. Enter now!

Ubuntu Server Administration
By Michael Jang; Published by McGraw-Hill Osborne Media
Realize a dynamic, stable, and secure Ubuntu Server environment with expert guidance, tips, and techniques from a Linux professional. Ubuntu Server Administration covers every facet of system management -- from users and file systems to performance tuning and troubleshooting. Enter now!








