Site Map - skip to main content

Hacker Public Radio

Your ideas, projects, opinions - podcasted.

New episodes every weekday Monday through Friday.
This page was generated by The HPR Robot at

hpr2386 :: The Decline and Fall of Tcl

... in which I'm reading Where Tcl and Tk went wrong, by David N Welton, posted on 2010-03-30

<< First, < Previous, , Latest >>

Thumbnail of clacke
Hosted by clacke on 2017-09-25 is flagged as Clean and is released under a CC-BY-SA license.
tcl, tk, history, languages, community. 4.
The show is available on the Internet Archive at:

Listen in ogg, spx, or mp3 format. Play now:

Duration: 00:28:53


Tcl is an interesting language that does many things "wrong", especially if you're coming from a LISP perspective, and especially-especially if you're coming from a Scheme perspective. Examples are all over the C2 wiki, but probably DynamicStringsVsFunctional is the epicenter.

It also forms an important part of modern Scheme history, as the Tcl War led to the creation of Guile.

What happened after that? Where Tcl and Tk went wrong, by David N Welton

TL;DL: Tcl was successful because it found its niche as a lightweight yet capable language able to both integrate and be integrated with C code, but it fell behind on Tk look-and-feel compared to GNOME and KDE and also on other mainstream development phenomena, it ossified because it was afraid to upset its installed base, it got stuck between not-slim-enough and not-featureful-enough, the syntax is too weird, and it spiraled into losing touch with the rest of the free software world, which ultimately also affected business use.

Further notes

  • Guile (again) faces several of these same challenges.
  • Haskell tries to avoid success at all costs, in order to not lose the freedom to improve the language.
  • Python and Perl both have Tk integrations and Python's IDLE is even implemented in it. Lua had ltk, but it's no longer maintained. There is even a Tcl/Tk package for R.
  • Ousterhout pronounces it OH-stir-howt, which may or may not be how I pronounced it. I think the guttural sound may be reserved for the Dutch "G" and have nothing to do with "H".

Potential episodes

  • Fossil
  • Tcl


Subscribe to the comments RSS feed.

Comment #1 posted on 2017-09-22 06:05:08 by clacke

More */Tk

There's also a Ruby/Tk, and there used to be a Guile Tk (best frenemies!), but Guile Tk was deprecated and replaced with Guile GTK, which was then replaced with Guile Gnome.

It's pretty funny that although Python has to a large degree replaced Tcl out there, any system that includes a full Python also includes Tcl/Tk, because tkinter depends on Tcl/Tk and is part of Python stdlib.

Even funnier, the proudest project of the Guile world, Guix, depends on Python (via graphviz via glib) and therefore Tcl.

Comment #2 posted on 2017-09-28 12:19:52 by Mad Sweeney

Tk is not accessible

rms started a flamefest when he posted to comp.lang.tcl in 1994; Why you should not use Tcl:!msg/comp.lang.tcl/7JXGt-Uxqag/3JBTj5I43yAJ

I don't like Tcl for its stringly typed nature but Tk seems like a nice light-weight GUI toolkit; but, unfortunately, it doesn't work with screen readers on any platform so you should avoid using it unless you're just developing something for your own use.

Comment #3 posted on 2017-09-28 14:45:20 by clacke

rms flamefest

The flamefest you are referring to is the Tcl War linked in the show notes.

Thanks for the comment on the accessibility. That's good to know if you're building a serious UI. I guess it's another example of how Tcl/Tk hasn't quite left the 80s.

Comment #4 posted on 2017-09-28 15:28:09 by Mad Sweeney


Hi clacke, Ah, I missed that. That'll teach me to listen at 4x speed.

Leave Comment

Note to Verbose Commenters
If you can't fit everything you want to say in the comment below then you really should record a response show instead.

Note to Spammers
All comments are moderated. All links are checked by humans. We strip out all html. Feel free to record a show about yourself, or your industry, or any other topic we may find interesting. We also check shows for spam :).

Provide feedback
Your Name/Handle:
Anti Spam Question: What does the letter P in HPR stand for?
Are you a spammer?
What is the HOST_ID for the host of this show?
What does HPR mean to you?