posted by David Welton on Mon 10th Mar 2003 21:42 UTC

"Tcl/Tk Interview, Part 2"

How did you get started using Tcl?

Mark: I was present at John Ousterhout's 1991 Usenix presentation talking about wish. It totally blew me away, and I knew it was a system I wanted to use.

Jeff: I've been using Tcl for about a decade, since 6.7, picking it up in university. At the time I used perl more for general scripting, but Tcl really grabbed me with Tk, and over time I grew to appreciate Tcl more.

Andreas: That is quite long in the past. ... Tcl 7.3, Tk 3.6. A co-worker at my employer used it for... I don't know anymore (despite the fact that said co-worker liked lisp/scheme more). It interested me enough that I bought John Ousterhout's book when I saw it. From there on it was a long slide into ... hm, I can't say insanity, because it is not. Whatever.

Donal: First encountered it when I saw Ian Jackson using it to write a very neat network client. (He was actually using wishx, I know now.) Then I did nothing about it for a year, because I was sorting out things like graduating and getting a new job. However, I eventually found a copy of John Ousterhout's Tcl book, read that cover-to-cover, downloaded 7.4b1/4.0b1 and haven't looked back since.

The original core team was elected in the Summer of 2000 by Tcl users. All of the interviewees were elected then to be part of that team, but we ask them how they got to that point:

Mark: There's a funny story about that. When the voting opened up, I was imagining the thousands of Tcl programmers at IBM, Sun, Motorola, etc, casting their votes. So I sent an email to my coworkers at AsiaInfo telling them to vote for me as soon as possible if they wanted me to represent them on the core team. Unfortunately, I had seriously overestimated the amount of voting which would go on in the TCT election. Because of that, and because China's daytime is everyone else's nighttime, on that day our votes represented a bit over one third of all the votes cast.

There was quite a to-do over the whole incident, especially as I tried to demonstrate that all the various Wangs, Zhous, and Zengs were real Tcl programmers and not the imaginative byproducts of a Tcl voting script. :-)

Donal: I've no idea really. I volunteered (for reasons I don't remember), but didn't really expect to get in. Perhaps people voted for me because I liked (and still like) to help people out by trying to see what their real problems are, but I wish I knew for certain.

Jeff: I've been a contributor to the core for a long time, but getting hired to manage it at Scriptics likely secured my spot (they are of course correlated).

What do you use it for?

Mark: Tcl was a critical part of our infrastructure at AsiaInfo. We used it as an embedded logic language for expressing rules regarding the Internet subscriber database.

The first Tcl program I wrote that ever shipped to a customer was a database entry/query system for Alcatel. The real GUI (done with OpenLook) was scheduled to take about six weeks. We sent this little program to our beta customer and it worked well enough that the original GUI was not needed. It was later used in a GUI design course as the example of an ugly GUI that shouldn't ever be shipped to a customer.

Jeff: At ActiveState we continue to develop new developers' tools for Tcl users, built in Tcl/Tk. The ActiveState GUI Builder [*], which targets multiple Tk-enabled languages, is also written in Tcl/Tk.

Donal: Right now, not very much. I'm currently stuck in Java-land... :^/

What do you like most about Tcl?

Andreas: The power in simplicity.

Donal: It's clean, both as a language and as an implementation.


1. It is easily embeddable in other programs.

2. It is very robust.

3. Along with lisp, Tcl has the feature that a Tcl program can be represented in a native Tcl data structure. It is very easy to write fundamental language constructs such as "for" and "while" using standard Tcl language features.

Jeff: The fact that it is so easy to use, yet so powerful.

What do you feel are the most important things to improve in Tcl?

Jeff: I feel that more things around Tcl need improvement, but in Tcl itself I would consider improving core data structures.

Mark: There are no standard methods for defining modules or objects. This has caused a lot of slight incompatible wheel reinvention as every package author implements his or her own module system.

Andreas: Uh. I consider the language and the basic command set very mature and thus not very much in need of changing. Yes, we can improve on things like namespaces, ensembles [*], the package command, regularize the list commands, etc., however to me these are all minor things.

To me most of the work to be done is in the parts surrounding the language. For example to get a package repository going. Not a panacea either, but definitely something I believe we should have.

Donal: There's TIPs on this sort of thing. ;^)

Objects, ensembles and expansion are probably high up the list. At least as something for improving the Tcl language. The library of commands can always do with more tweaking and nifty features for people to use when necessary. As for Tk, MORE WIDGETS!

Table of contents
  1. "Tcl/Tk Interview, Part 1"
  2. "Tcl/Tk Interview, Part 2"
  3. "Tcl/Tk Interview, Part 3"
  4. "Tcl/Tk Interview, Part 4"
  5. "Tcl/Tk Interview, Part 5"
  6. "Tcl/Tk Interview, Part 6"
e p (0)    18 Comment(s)

Technology White Papers

See More