posted by David Welton on Mon 10th Mar 2003 21:42 UTC
IconThe Tcl programming language has been immensely successful in its almost 15 years of existence. Tcl, stands for 'Tool Command Language' and is pronounced 'tickle' by those in the know. It's probably most famous for the Tk graphical toolkit, which has for years set the standard for rapid, scriptable, cross-platform GUI development, but the language is used throughout a staggering variety of applications, from the open source web server that runs AOL's web site, to code for network testing, to code to run oil rigs.

Unlike Perl or Python, which are still maintained by their original authors (Larry Wall and Guido van Rossum), Tcl ownership has changed hands - Dr. John Ousterhout, who wrote Tcl while a professor at UC Berkeley, has moved on to other endeavors (although he does keep an eye on his creation), and others have stepped forward to not only maintain Tcl, but work on improving and extending it.

Several of the "core team", including the lead maintainer, Jeff "The Tcl Guy" Hobbs, Andreas Kupries, Donal Fellows and Mark Harrison, were kind enough to take some time to respond to some questions about a variety of topics via email. We start by asking Jeff about how the torch was passed...

Jeff, can you tell us a little about how 'ownership' of Tcl, passed from Dr. Ousterhout to yourself?

Jeff: John hired me to do it. :) It actually took three tries (third time's the charm). The first time I met him was while he was at Sun Labs. I had been working with Tcl for a while already, both at the Tcl user level as well as the Tcl/C level, including extension authoring. I was visiting to show off some research I was doing at the University of Oregon using Tcl (related to wearable computers). I met all of the Sun Labs Tcl team at that time. It was actually following that visit, after talking with John and Jacob Levy, that I was inspired (with some encouragement from them) to write the first Tcl plugin to Netscape. It was a windowless version, but it worked. Anyway, I digress ... I had an offer to join the Sun Tcl team after graduation but turned it down as I wasn't so sure about moving to the Silicon Valley and working for a large company. I received another offer as he was forming Scriptics, but that coincided with the time that I had received an offer from Siemens in Munich. The idea of a startup was more appealing, but the choice between Munich and Mountain View was ... well, we know how that turned out. :)

The third and successful offer came while I was at Siemens in 1999. It took John some convincing to get me out of Munich, but basically the management of core development at Scriptics (which it was still called at that time) was all the sweetening that was necessary. Previous offers had been more oriented towards being a part of the core team, but as Scriptics was becoming more successful, John had essentially stopped coding to work on the business side, and other previous core team members were focused on other development. At that time the management of the core was nearly non-existent, which was becoming apparent to the community as well. I have a very nice graph from the February 2000 Tcl conference that shows the marked decline in open bugs and features requests following my starting with Scriptics in August 1999.

I wasn't the only one qualified to take over from John, although I did have years of experience with Tcl/Tk by then. I have always had the luck of having had a job that intimately involved Tcl development since university (where I started using it). Other core team members like Brent Welch and Scott Stanton were interested in other things. One important facet that I did bring to it, which perhaps only an outsider could bring, was enthusiasm, and a project like this requires lots of that, plus energy and the right stuff to keep going.

What is your role in the Tcl core team?

Jeff: I am the release manager, maintainer of too many parts to remember, general motivator and rabble-rouser.

Andreas: I have one?

Donal: I'm the TIP editor and a core maintainer too.

Can you tell us a little bit more about what the TIP, or "Tcl Improvement Proposal" is?

Donal: Well, the TIP process came about when we started to think about how we could encourage people in the community to contribute to Tcl and Tk. While we could have kept going in the way that Sun and Scriptics had operated in the past, we really wanted to encourage more people to contribute; it was felt that the barrier to entry was too high before. But we weren't willing to drop our engineering standards; good tests and documentation are a vital part of contributing to the core, since we recognized that that was one of the big strengths of what John Ousterhout etc. had achieved already. However, it was when someone spotted what the Python people were up to that we decided we wanted something similar ourselves. Not that there was a lot of agreement on how to do it though; early versions were heavily dependent on using tclhttpd as a hosting environment. The current format is something I invented (over a weekend) based on the input format used by the Tcl'ers Wiki [*] (which it was obvious at that point was going to be hugely popular, even though we - well, I at least - didn't expect it to grow quite as much as it has done) though it fixes some of the things that I thought were wrong with the Wiki format (the TIP format is far less ambiguous) and it has mail-like headers to handle the additional features due to TIPs being more than collaboratively edited documents, but rather something of a standards process.

They've done well, haven't they! :^)

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