USENIX - Summaries


Are you Tcl-ish?

by Peter H. Salus
peter@pedant.com

I leave the actual blow-by-blow of the Fifth Tcl/Tk Workshop to the rapporteur. Most of this will concern only a couple of sessions.

These opened with a welcome and announcements by the program chairs, Joe Konstan and Brent Welch. Don Libes, having won both last year's and this year's Best Paper award, got to introduce the keynote speaker: Brian Kernighan. Don told of having first met him while still in high school and of the supportive influence Brian had had upon him. It was a wonderful intro, revealing a number of aspects of both personalities.

To me, Brian is a treasure of the computing community: where would we be without K&R, without Kernighan and Pike, without Awk, without Kernighan and Plauger? And that's nowhere near all.

Brian began with a slide of a Sun ad that indicated that JAVA was "Robnet"
[= Robust] and "Interrupted" [=Interpreted]. "There is a lot of meaningless hype about languages." From there he went on to "three things I built Tcl/Tk interfaces for":

  • text oriented for a mathematical programming language
  • drawing tool
  • visualization tool

Brian said that for each problem domain, he would talk about the following:

1. his experience with Tcl/Tk

2. a comparison with VB and Java

3. features/architecture/performance

He said that at the end of his talk he would discuss lessons learned from the "exercise."

I didn't mention the book on AMPL but it was published about four years ago (it's by Fourer, Gay, and Kernighan). Brian now spoke about this language for mathematical optimization problems, which was written "in about 60K lines of C++," and of the utility of a front-end language and a command-line interface. He got a big laugh for mentioning the possibility of a visual interface, VAMPL++, which could be used, like most interfaces, for "playing Adventure." With Tcl/Tk, Brian was able to create buttons dynamically so that "every piece of text is live."

Moving on to VB, Brian said that it was a "dialect" of Basic where "controls" are analogous to widgets. "Boy, is it clunky," he said. He pointed out that VB has an "integrated design and run environment that is nice . . . except that the text editor part is quite bad."

In terms of a VB interface with AMPL, Brian said it had "problems with IPC," that there was an excess of "tedious geometric programming," that it was "nonportable, running only on Windows," but that its "high extensibility is a great advantage" (you can buy the Awk widget for $49) ­ there is thus a large market in third party controls for extending VB.

Java is seen by Kernighan as a "cross between C and C++." It is platform independent and can be run within a Web browser. AWT is a "large but not powerful library." "Java provides network access reasonably well." IPC is easy: better than VB, worse than Tcl; file I/O is awful ("slow beyond belief''); the text widget is weak (as is VB's). The "language is pretty good, the libraries are pretty bad . . . immature," said Brian.

None of the three stands out as very much better than the others (for this specific task); they all work with reasonable speed, though VB has "size limits." "The Tk text widget and event bindings are more flexible and yield a richer set of possibilities" than the other two.

After showing the audience a message sequence chart (ITU Z.120), a specialized kind of diagram, rendered by each of the three languages, Brian noted that VB was "easy to get started, but then you run into a wall," that VB was "astonishingly slow and unusable," and "when the PC version of Tcl/Tk came along, I dumped VB." He said that a Java implementation of the standard of this tool would be hard, too, though easier than VB. This is because "the Tk canvas widget makes it so easy to retain and interact with graphical structures."

After several further anecdotes, Brian stated that he was "a real enthusiast'' where Tcl/Tk was concerned, though it was a "well-kept secret."

Asking a number of rhetorical questions ("Why do languages succeed? Why do languages fail? Does it matter?"), Brian stated that

1. Good programming languages matter.

2. Good programming matters more than good languages.

3. No language will solve all our programming problems.

In connection with this, Brian cited the anthropologist Benjamin Lee Whorf. I nearly gasped aloud ­ not because Whorf is unfamiliar, but because this was the same citation made by Bjarne Stroustrup a month earlier at COOTS, and Bjarne also supported very strongly Brian's statement in the previous list. The use of Whorf (Carol Eastman [Aspects of Language and Culture, 1975, p. 100] notes that Whorf's hypothesis tends "to reinforce the idea that each language and culture embodies a particular world view"), whom Brian tells me he has been citing "for at least a decade," is one thing. The more important point is Brian's and Bjarne's belief that there's no magic programming language: no programming

language will be able to come to grips with all the problems of programming.

This means that the future of programming languages may well lie in good tools and little languages, but I still see an important role for "general" languages. Brian expects "it just means that people will continue to invent languages, some of which will be improvements."

On Thursday morning, there was a panel discussion concerning the future of Tcl/Tk. Mike McLennan opened it by saying that Tcl/Tk "is at a crossroads." It might be a great success or "it could remain the best-kept secret in computing." The previous morning we had been treated to John Ousterhout's view of language politics at Sun. After an hour's discussion, with many voices from the audience, there seemed to be a consensus that Tcl/Tk needed PR, that perhaps a not-for-profit organization could do this, but that something was necessary.

On Tuesday afternoon, Don Libes had several pithy comments:

1. FAQs are indications that the primary documentation has failed.

2. No one ever died from too much
documentation.

3. More and better documents are
needed.

4. Standards are a myth; I only wish POSIX was.

So do most of us, Don.

In hope of moving Tcl/Tk from its status as a secret, a Tcl/Tk Consortium is being established:
http://www.tcltk.com/consortium.


webster@usenix.org
Last changed: Jul 30, 1997 efc
Summaries Index
Tcl/Tk Index
Proceedings Index
USENIX home