Tk footnotes

March 15, 2001, 06:42 PM —  Unix Insider — 

Last month's feature on the Tk graphical user interface (GUI) toolkit inspired several letters from readers. They brought up two points we want to echo in this Regular Expressions installment. The first is that our affection for Tk is not just quantitative -- Tk performs 5 percent better than an alternative, and the source code we write is 13 percent smaller -- Tk is also qualitatively different from other toolkits. Because starting with Tk is so easy, we see a lot of jobs receiving nice little GUI control panels that would otherwise be left as difficult, demanding command line applications. People don't just use Tk to program easily; they write entirely different, and more ambitious, interfaces than are practical with the more tedious toolkits.


A second qualitative distinction of Tk is that its source code is not only open source, but readable. For several years, one of Tk's failings has been its lack of widgets, such as a combobox, which is currently very popular. This has been less of a constraint than one might think, simply because the Tk source code is so clear that needy programmers generally cut and paste their way to new or customized widgets. We've often seen beginners enjoy more success working with the Tk source code than experienced programmers do working with Motif at a library-source level.


Incidentally, whenever we need a Tk combobox, we use the lovely free one that Bryan Oakley wrote a few years ago. See Resources for links to this and other treasures.


Tk style

Enjoying Tk's benefits requires a bit of an adjustment for some programmers. Tk programming is different from Visual Basic and Motif, and works best when respected for its individuality.


Much of that individuality comes from the scripting spirit that Tk embodies. Visual Basic and application-builders from Oracle and other vendors emphasize easy placement of elements in a visual layout. The elements supposedly have enough default behavior for applications to write themselves.


This approach is inflexible. We're big fans of intelligent interfaces that exploit context to engage users in more natural conversations, and we know that our users like balloon help and tool tips. However, our balloon help is rarely static; we change the help text and sometimes its visual appearance, depending on the data on the screen, the user's history with the application, and other contextual items. It's easy to do this with Tk, because the toolkit exposes so much of itself as programmable. Visual Basic becomes much more difficult when asked to be that flexible.


Metaprogramming Tk

Tk's metaprogrammability -- the ability to look at the Tk API as itself under programmatic control -- is crucial for rapid application development. Fans of Java and other object-oriented toolkits argue for subclassing and refinement. There's promise in that approach, but we find Tk's simplicity and scriptability to be a better fit. Instead of inheritance, Tk gains its productivity by allowing what expert coder Richard Suchenwirth calls "open-heart surgery." It's easy to tinker with a live Tk application by exploiting Tk constructs in real time. Need a new procedure definition? You can cut and paste it straight into the current interpreter. Suchenwirth and other contributors to the Tcl community maintain a delightful page explaining such shortcuts in the Tcl Wiki.


Swank: A different kind of solution

Tk's simplicity is what makes it so portable. In fact, not only is Tk available for Win*, Mac OS, Unix, OpenVMS, and OS/400, but Bruce Johnson of Merck & Company has written Swank, an implementation of Tk within Java. His group maintains NMRView, currently written in C and Tk, for analysis of diagnostic magnetic resonance imaging data. For strategic reasons, Johnson's employer needs the same functionality coded in Java. Rather than build a new GUI, Johnson coded Tk in terms of Swing, the toolkit for Java 1.2. This allows him to make his GUI available immediately -- he just reuses his old source code.


Johnson hasn't finished coding all of Tk, but he told us it's far enough along that "it could be attractive to any Java developer who was putting together a GUI based on Swing." Swing coding is notoriously tedious, but Swank puts the fun back into GUI work for Java.


Tk feels different from other GUI toolkits. Some programmers take to it immediately and are reluctant to give it up, while others take longer to understand the Tk way. We strongly recommend peeking at the Resources section for more details on what Tk has to offer and how best to use it.


Resources and Related Links

» posted by abennett

Unix Insider

I like it!
Post a comment
The content of this field is kept private and will not be shown publicly.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.
Resources
White Paper

Symantec Backup Exec 12 and Backup Exec System Recovery 8 deliver industry leading Windows data protection and system recovery. Download this whitepaper to find out the top reasons to upgrade and how to get continuous data protection and complete system recovery.

Webcast

Data and system loss — from a hard drive failure, malicious attack, natural disaster, or simple human error — can happen anytime. Don’t leave your business vulnerable. Make sure you have a secure recovery strategy in place. Symantec's latest backup and system recovery technology can efficiently restore critical applications, individual emails and documents and even restore your entire system in minutes in the event of a loss.

White Paper

Businesses face a growing challenge to ensure that the IT environment is properly protected. Backup Exec 12 integrates with other applications in the Symantec family of products, to complement your current data protection strategy, keep your data securely backed up and make it recoverable when you need it most.

Free stuff

VMware ESX Server in the Enterprise
By Edward L. Haletky
Published Dec 29, 2007 by Prentice Hall.
Enter now! | Official rules | Sample chapter

Green IT
By Toby Velte, Anthony Velte, Robert C. Elsenpeter
To be published Oct. 10, 2008 by McGraw Hill Professional
Enter now! | Official rules | About the book

Featured Sponsor

AISO founders envisioned a Web hosting company that was environmentally friendly. While the company employed energy-efficient innovations like solar panels, its infrastructure produced unacceptable power and cooling requirements. Find out how AISO leveraged AMD technology to overcome their challenge in this case study white paper.

In this whitepaper, Scalar explores the opportunity to change the landscape with respect to mission critical databases built around Oracle. Leveraging technologies such as Linux, high-end commodity processing power and Oracle RAC technology to architect, design, build and maintain database infrastructure that delivers maximum availability, reliability and performance at a fraction of traditional cost.

On a typical day, weather.com, the Web site for The Weather Channel in Atlanta, serves up between 15 million and 20 million page views. But in September 2004, when back-to-back hurricanes ransacked Florida, the peak traffic on one day more than tripled: over 70 million page views by more than 7 million unique visitors. Read the full success story now.

More Resources