Tcl/Tk 9.0 has moved to Unicode and 64-bit data structures, and can now access compressed files as if they were file systems. It has been worth the considerable wait.
The Tcl/Tk team doesn't rush into new versions. The previous major release, version 8.0, was in 1997, and the last minor release, version 8.6, came out in 2012. Now version 9.0 introduces some significant additions, including 64-bit support - and some breaking changes.
Tcl/Tk - which stands for "Tool Command Language" and "ToolKit," pronounced "tickle-teak" - is a tiny programming language with its own integrated toolkit for writing GUIs. Tcl was first released way back in 1988, before Linux, FreeBSD, NetBSD, or even Windows 3.0.
Over a nearly four-decade timeline, it has grown - but not by anywhere near as much as many comparable projects. It started out considerably smaller than, for instance, another scripting language often described as small and simple, Lua, which didn't appear until six years later.
Tcl/Tk 9 remains relatively small and simple today. What's changed is that it can now take on much bigger, and indeed richer, chunks of data. It is now internally 64-bit, so as the release notes say:
(The release notes for Tcl 9 and Tk 9 are two separate Markdown files, which complicates linking directly to them - but you can download both from the project's SourceForge page. Yes, SourceForge: Tcl was nearly old enough to vote when Git first appeared, so only a mirror of the source code is on GitHub. SourceForge is better behaved than it once was, and along with Slashdot is now part of BizX.)
Tcl 9 also natively supports Unicode and can directly access Zip files (as well as several other archive formats, such as .jar and .tar files), meaning that you can open the compressed file directly and navigate its contents as if they were a normal file system.
Although it is not an especially fast language, version 9 supports both the Linux epoll() and BSD-style kqueue() event-notification APIs to help write more responsive code.
Tk 9 has been modernized too. It is scaling-aware, for HiDPI displays, supports two-finger mouse gestures, can access the OS's notifications, system tray, and printing subsystems, access photo metadata, and has partial support for the XML-based SVG image format. It also has a wide range of themes, some of which can be seen in this screenshot gallery - although we note that it hasn't been updated for Tk 9 yet.
For some, Tcl's appeal is its simplicity. Its core principles are outlined in just 12 rules, which the project calls the Dodekalogue. Colin Macleod's article, "Why I'm Tcl-ish," calls it "clean, logical, and consistent," and compares it favorably to Lisp. We also rather liked Will Duquette's description:
In fact, several commenters in the Hacker News thread about the new release compared it to Lisp:
Or...
And earlier:
Even if Lisp has some weighty admirers, comparisons to it may put off as many people as they encourage. So perhaps some other plaudits might help.
Another famously small and simple tool, SQLite, which as The Register said in 2020 "claims to be 'used more than all other database engines combined,'" emerged from the Tcl project:
Redis has gained considerable attention recently. Its original author, Salvatore Sanfilippo, admires Tcl, as his essay "Tcl the Misunderstood" spells out. It's subtitled "Why Tcl is not a toy language, but a very powerful one."
Tcl/Tk 9 is a substantial change, and not all programs will come across unmodified. As the announcement says:
If this proves too hard, the release notes hint:
On Call This is why every admin loves to hate Windows
Tamed DB sprawl and saved cloudy resources with 'X-Stor'
A week after saying remote ID verification tech is unreliable, the GSA is expanding access to other agencies
Users just need to 'refresh/restart' their sessions
Ryzen AI PRO 300 series leans heavily on Microsoft's Copilot+ PC requirements
Ideal for black-clad ultra-minimalist types. You probably wouldn't like it
Developers get auto-coding ideas drawn from bug reports, and more AI besides