mark roseman

mark@markroseman.com

Is Tcl/Tk Dying Out?!

Scene: A run down shop at the end of a long, mostly deserted street. A cracked and weather-beaten sign, obviously from the mid-90's, hangs over a large boarded up window. It reads "Tcl and Tk Programming House and Support Group". The word "Tk" has been recently updated on the sign, and now is made up of a set of small shiny tiles of different colors, at stark contrast to the rest of the sign.

Inside, a number of generally older men shuffle around quietly, mumbling to themselves. Jeff Hobbs stands behind the counter near the front, slowly sipping from a stained coffee mug full of fine whisky. A small, half-empty bookshelf of dust-covered books is on the wall behind him.

All of a sudden, there is a loud noise, and a young, bright-eyed skinny college student tumbles down what looks like an oversized laundry chute, conspicuously located where most stores would have a door, and lands in the shop. He gets up, looks around and approaches Jeff at the counter, who looks up.

Newbie: Hi! I'm in computer science at the local university. My grandfather told me that I should learn Tcl and Tk because it'll allow me to do all kinds of cool stuff. But when I mention that to my friends at school, they all laugh at me and tell me that Tcl is totally obsolete and for losers. Now I'm worried! Is Tcl dying out?

Jeff sighs, and picks up a desk calendar from the shelf behind him. He looks down, quietly says "right on time", and puts a big check mark next to a handwritten note on the current day. He then makes another entry on the calendar three months later.

Larry Virden walks up from the back of the shop towards the young programmer.

Larry V.: I couldn't help overhearing your concerns. Don't you worry, Tcl and Tk are fully open source, so how can they die? There are copies of it everywhere, so it will last forever! It's indestructible!

Newbie: But what if nearly everyone stops using it?

Larry V.: As long as there's one programmer left in the world still working with it, Tcl will live on! And think of all the people running Eggdrop - Tcl is thriving!

Richard Suchenwirth pops his head briefly through a window.

Richard S.: You should see this cool AS/400 simulator I wrote in Tcl; here, it runs on my phone. All it took was one weekend!

Newbie: But what about web applications? That's really important today, and I don't hear much about Tcl.

Dave Welton, who's been working at a desk nearby, looks up. Around him are several Ruby and Rails books, a large stack of money from his clients, and a bunch of neat demos of Hecl that he's been having fun working on.

Dave: He does have a point. Tcl is a pretty nice language for web applications, especially embedded things and where you're deploying to customers, but it does seem to have fallen behind for a lot of mainstream uses. Tools like Rails do make a lot of common things pretty easy.

An angry voice from the back screams at Dave: You idiot! What do you know about web programming and Tcl anyway? Haven't you heard of the Tcl Apache project? And there are other web servers you know!

On cue, two groups of hackers in the back line up on either side of the shop and face each other. One group repeatedly yells "AOLserver!" at the other, who repeatedly respond with "tclhttpd!".

Jeff: Besides, if we had a tool like Rails it would run a heck of a lot faster than in Ruby, and I18N would work right. Sure, we don't have something like Rails, but it's just a small matter of programming, I'm sure I could put it together in a weekend.

Richard S. (popping his head in again): Me too!

Jean-Claude Wippler, who has just finished an enormous plate of sushi, wanders over.

Jean-Claude: Besides, Tcl gives you all kinds of novel choices for databases for your web application or anything else. And look here, I've just rewritten Metakit again using Simula-67. Makes the Tcl binding much cleaner and more straightforward, and that'll certainly be easier to get compiled than C++.

Jeff: (groans)

Newbie: That's interesting. I'd heard that SQLite even had a Tcl binding, and that's the coolest thing I've ever seen.

Richard Hipp, who's been frantically bouncing around the room the entire time, steers himself in that direction.

Richard H.: Well gosh darn, nobody will believe me when I tell them that I really love Tcl, and that SQLite was really made for Tcl. But they never listen to me, they're just too busy shoving money in my face to do work for them. Boy it's tough.

Jean-Claude: Hey, I just got Metakit working on this vacuum tube I found. This time I know I've got it!

Richard S.: Hey, last weekend I used Tcl to turn a vacuum tube into a space shuttle. How cool is that?

Newbie: Wow, there certainly do seem to be a lot of neat things that people are doing with Tcl. It must be really useful. I don't see it on job postings a lot though. What kind of jobs do you guys get?

Jeff: You'd be surprised how many companies use Tcl internally, especially for things like testing and internal tool development. But I can't tell you about any of them or I'd be shot.

Someone else pipes up: Besides, a lot of us just start our own companies. It's not like we could get hired anywhere since we're not up on all the latest buzzwords. Hey, had you heard of this brand new language that's just come out called Java?

Dave: But it would help a bit if a few more people were doing some more marketing. That web site really needs some work.

Richard S.: No need, everything is on the wiki. What more do you want?

Larry V.: Exactly, it's fine, what difference does it make? And it works with Lynx!

Richard S.: Did I mention the weekend when I rewrote Lynx in Tcl but made it 3D?

Newbie: That's pretty cool! So what are you guys working on now? What's next for Tcl?

Jeff: Well, we've got some pretty cool stuff - an improved, modern user interface and a brand new object system. I think it's the 100th object system done in Tcl; how many languages can say that? So as soon as Donal finishes, we'll be ready to release.

Donal (from a small cellar in the basement, where he's been locked): Help! Let me out of here!

Joe English is sitting in another corner, chipping away and polishing a gigantic pile of ceramic tiles.

Joe: You know, this is all great and such, but if anyone else wanted to help out, that'd be okay!

Jeff: So yeah, the next release should be any day now.

Larry McVoy pops down the chute where the front door should be, carrying a long pointy stick.

Newbie: Hey, what's with the stick?

Larry M.: I need it to go around poking all those free software weenies in the eye. Suckers. You should have seen Stallman after I got him last week. It was hilarious! He hasn't been around here again lately has he?

Everyone: No, thank god.

Larry M.: By the way, I hate to keep mentioning it, but if you guys would just put a front door on this shop like people are used to instead of the stupid laundry chute that people have to use to get in, you might get a few more people coming through.

Gerald Lester offers Larry a bottle of hot sauce, and turns on the neon sign he wears on his ballcap saying "ask me about the oil platform... please!"

Gerald: You know Larry, I think laundry chutes are kinda nice.

A large box comes flying down the laundry chute and lands with a thud.

Newbie: Wow, that's a pretty big box? What's in that?

Jeff: Just today's batch of "thank you" cards, from all the people who are happily using Tcl to get their job done, and not worrying about whether it's dying or not, or caring how it compares with Ruby or Python or Java or whatever. They seem to think that it's nice having a choice of tools out there, and if Tcl works for them, they're happy.

Newbie: I think I get it now. You know, I've learned something today. Sure, there are lots of different tools out there, and their popularity goes up and down. Some get a lot of attention for particular things. Others may not be as flashy but get the job done, and may be better for a different set of problems. If we spent less time worrying about who was better and who sucked, and actually learned from each other, we'd make life better for a lot of people. It's not so important to prove you're right and the other guy is wrong. Maybe we could all work together and make it easier for everyone to do their jobs, rather than wasting time arguing with each other.

Larry M.: Yeah, like that's going to happen.

Fade out.

Scene: a nice office, far far away. John Ousterhout is sitting in front of a row of video screens showing images from hidden cameras all around the shop. A group of TV executives is watching closely.

John: See, I knew all along the only way we'd make money from Tcl is by getting all these technical guys in one spot and making a reality TV series out of it!