ITworld.com
  Search  
ITworld Home Page ITworld Webcasts ITworld White Papers ITworld Newsletters ITworld News ITworld Topic Map Careers Changing the way you view IT

Tk footnotes

Unix Insider 9/1/00

Cameron Laird and Kathryn Soraiz, Unix Insider

unixinsiderhome
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.

Advertisement
On this topic
P>

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

Cameron Laird and Kathryn Soraiz manage Phaseit, a software consultancy just outside Houston. Cameron is the moderator of ITworld.com's Future Computing and, with Kathryn, Scripting Languages & Techniques discussions.




Sponsored Links

Workflow Enabled Help Desk & IT Service Management
Automate service desk activities and integrate processes across IT. Learn more here.
IP Networks Boost Secure Health Communications
AT&T provides secure communication to keep health care moving forward.
CAPTURE Quad-Core Performance
Check Out The Latest In Capturing The Value Of Xeon® Quad-Core Servers For Your Business.
TOSHIBA SATELLITE PRO Notebook – Save With Synnex!
SYNNEX RESELLERS - Great Deals On Toshiba. Business Computing Has Never Been More Affordable!
Metadata Management Software
MetaCenter: Plug & play metadata management software for enterprise systems. Features: data dictionary, process documentation, impact analysis, search across multiple systems, web-based interface, reports, dashboards, import, export and more!
» Buy a link now

ITworld.com Site Network
 www.itworld.com
 open.itworld.com
 security.itworld.com
 smallbusiness.itworld.com
 storage.itworld.com
 utilitycomputing.itworld.com
 wireless.itworld.com
Advertisement
Sponsored links
Top 5 Reasons to Combine App Performance and Security
KODAK i1400 Series Scanners stand up to the challenge
Locate Hidden Software on business PCs with this free tool
Bring harmony to your mix of UNIX-Linux-Windows computing environments
 Home   Computers and Peripherals  Operating systems  Network-server operating systems  Unix network operating systems
www.itworld.com    open.itworld.com     security.itworld.com     smallbusiness.itworld.com
storage.itworld.com     utilitycomputing.itworld.com     wireless.itworld.com

 
Contact Us   About Us   Privacy Policy    Terms of Service   Reprints  

CIO   Computerworld   CSO   GamePro   Games.net   Industry Standard   Infoworld   ITworld  
JavaWorld   LinuxWorld  MacUser   Macworld   Network World   PC World   Playlist  

DEMO   IDG Connect   IDG Knowledge Hub   IDG TechNetwork   IDG World Expo  

Copyright © Computerworld, Inc. All rights reserved

Reproduction in whole or in part in any form or medium without express written permission of Computerworld Inc. is prohibited. Computerworld and Computerworld.com and the respective logos are trademarks of International Data Group Inc.