The first major release in 27 years. 64-bit internal structures, so data can be huge. Full unicode with all the funky new emojis. Zip filesystems, etc., etc.<p>There's lots of new stuff, and some old cruft has been dumped, so some programs may need a few updates, but there's still a high level of compatibility. The page above links to release notes with details of what's in and what's out.
Language snobs and 1990s OO snobs really love to hate on tcl - yeah everything is a string or a command, and the OO extensions were kind of kludgy - but there's a design ethos to the ecosystem that is really special. Ditch tkinter, which is basically writing python to write tcl, and try doing a GUI in straight tcl/tk. Try the sqlite interface. Write a modest C extension or wrap a library. So much of it just works.
> New Notifiers: The central event handling engine in Tcl is now constructed on top of the system calls epoll or kqueue when they are available. The select based implementation also remains for platforms where they are not.<p>This is huge! A big portion of why concurrency in Tcl was so dated and why the language was considered so non-performant was because it relied on `select` despite `epoll` and `kqueue` being available for at least a decade.<p>Tcl is one of my favorite languages because of how easy it is to get started with and how easy metaprogramming is.
I'm going to give a shout out to NaviServer [0], prior called AOLServer [1]. This web server has been battle-tested and is bullet proof. When something has been used power AOL back in the day, what can you say.<p>OpenACS [2] is the main project of, which has existed since 1997 and that alone is highly powerful in what it can do with. Especially when coupled with TCL. It's still maintained and now supports TCL9 too!<p>Javascript, TCL and NaviServer (and which has it's own modules such as DNS Server, LDAP, Mail really makes an powerful tool.<p>If you're looking to get in to TCL and Web Development, you can really create fun with the two combined. I highly recommend that if you wish to dabble with something on the side for easy learning and plentiful features. Go take a look.<p>[0] <a href="https://wiki.tcl-lang.org/page/NaviServer" rel="nofollow">https://wiki.tcl-lang.org/page/NaviServer</a><p><a href="https://github.com/naviserver-project/naviserver">https://github.com/naviserver-project/naviserver</a><p>[1] <a href="https://news.ycombinator.com/item?id=35648805">https://news.ycombinator.com/item?id=35648805</a><p><a href="https://www.linuxjournal.com/article/6164" rel="nofollow">https://www.linuxjournal.com/article/6164</a><p>[2] <a href="https://openacs.org/about/history" rel="nofollow">https://openacs.org/about/history</a><p><a href="https://openacs.org/" rel="nofollow">https://openacs.org/</a>
For those that are new to Tcl, there's an alternate universe where Tcl is the browser language instead of Javascript:<p>"Interesting footnote: the founding of Netscape occurred at the same time I was deciding where to go in industry when I left Berkeley in 1994. Jim Clarke and Marc Andreessen approached me about the possibility of my joining Netscape as a founder, but I eventually decided against it (they hadn't yet decided to do Web stuff when I talked with them). This is one of the biggest "what if" moments of my career. If I had gone to Netscape, I think there's a good chance that Tcl would have become the browser language instead of JavaScript and the world would be a different place! However, in retrospect I'm not sure that Tcl would actually be a better language for the Web than JavaScript, so maybe the right thing happened."<p>Source: <a href="https://pldb.io/blog/JohnOusterhout.html" rel="nofollow">https://pldb.io/blog/JohnOusterhout.html</a>
I can't overstate my love for Tcl, yet I had only a little chance to use it when writing XiRCON IRC scripts back in the late 90's. Such an elegant language: simple, easy to learn, flexible. I call it Lisp for humans. I wish it were more popular. So glad to see that it's still alive and kicking.
Fun facts, the author of Tcl and tk is Prof. John Ousterhout, and his Software Design book is in its 2nd edition:<p>A Philosophy of Software Design:<p><a href="https://web.stanford.edu/~ouster/cgi-bin/book.php" rel="nofollow">https://web.stanford.edu/~ouster/cgi-bin/book.php</a>
Really enjoy the language, even if I don't use it much these days. Does it still produce GUIs from 1995 on Linux? I'd still be using it today if it had halfway reasonable support for building GUIs on Linux, like they've had for ages on other platforms.
The only time I’ve dealt with Tcl in recent memory was for some MacPorts portfile stuff.<p>Anybody using it for something else and can speak to why you’d use it today? Genuinely curious; I don’t hate the language but can never bring myself to enjoy it either.
More important than Python 3.13.<p>Bravo !!!!<p>Can't wait Scilab and Python to ship with Tcl/Tk 9.0<p>I think Next Scripting latest releases are 9.0 ready.<p>Keep an eye on Undroidwish and the Binary Releases section of the official page.
I recently asked HN if Tcl is still relevant in 2024 <a href="https://news.ycombinator.com/item?id=41108667">https://news.ycombinator.com/item?id=41108667</a><p>Nice to see a new release coming out not too long after such a question :)
Wow Tcl is still a thing? Takes me back to university days — and even 20 years ago it was considered a bit of a poor man’s UX. I’m off to read the article and see if it’s any better these days…
Love reading this. I spent a few years in the late 90s using Tcl/Tk to build cross-platform installers for Embedded tools/libraries, along with Expect for a bunch of our testing. One of those pragmatic toolsets for getting sh*t done.
So I started playing with TCL for the first time this weekend after seeing this post, and here are my thoughts. I think the language is fun and much different than I’m used to, but my biggest challenge so far is just getting packages installed. There seems to be no current, modern, maintained package manager or central repository, and to do basic stuff like stand up a web server requires compiling from C source. Kinda brutal. TclHttpd failed to compile with TCL 8.6 installed because I guess there was some change in APIs. I didn’t bother spending time figuring out how to patch the C code to make it work because that’s getting in for more than I bargained for.<p>It’s too bad there’s not a simple way to get up and running with packages because for me so far that had been the biggest barrier to entry / deterrent. Also, I wanted to create a ES256 JWT but there’s no good way to do that apparently, due to the dated ecosystem, whereas in other languages this sort of this is just a package install away. I found a third-party solution in the form of Chilkat software but it costs $300 to license.<p>So overall while I think TCL is fun, I can see why people don’t choose it when they want to be productive fast and not have to fuss around with deeply manual things that are commonplace and quick in other languages.
In the realm of Electronic Design Automation (EDA), TCL is ubiquitous. Virtually every EDA tool offers a TCL interface or API, making it the predominant language for tool configuration. I've always wondered why TCL hasn't gained traction in other domains. It possesses the elegance of Lisp while maintaining practicality.
Great to see all the love for TCL here :) Too bad it's not more popular really but even I struggle to find cases where I'd prefer it. Usually it come down to bash for simple stuff and python everything else.
It would be nice if the releases were cryptographically signed. I've never used Tcl/Tk before but I just downloaded the 9.0 release and I'll give it a go.
I know of Tcl but I don’t know anything about its structure. The number one thing I ask of a language is consistency: the minimal amount of magic and most of the language implemented in itself. Ruby almost got there and then, for me, slipped up on <i>class << self</i>.<p>How does Tcl fare under these criteria?