Worked on a NASA ground control system written in Tk. It was a great way to learn about classic design pattern because we had to roll our own event reactors, observers, plugins.
Honestly it feels very outdated compared to the reactive type of GUI's we have today.
Maybe there are some nice wrappers now that help...
I'd give a Rust based version a try. Just compile into a binary for your platform and off you go.
I use Tk routinely in Scheme; there is no Tcl in my code, but Tk is a very nice (though basic) GUI kit, and my programs work on Linux, BSD, MacOS, and Windows. Other commenters have mentioned that Python ships with Tkinter, a library module that interfaces to Tk. I believe Ruby does the same. Hell, if you're programming in Cobol, you can have Tk (as long as your Cobol allows you to call C). You do not have to love Tcl to love Tcl/Tk.
vincent-manis
> Those GUI apps look native on Windows, Linux and macOS
I don’t see how the author can write this with a straight face.
The apps look like what native apps looked like in 2003.
drdexebtjl
Tkinter or other Tk based GUI interfaces are the immediate tool I reach for whenever I build something that's not in the CLI or in the browser.
My general "daily driver" is python and I love that I can just spin up a cross-platform tool immediately with it. Tcl/Tk rule and are insanely useful.
piloto_ciego
I built a Tcl/TK GUI in 1997 and I thought that it (specifically Tcl) was dated then. If you're used to anything beyond shell scripting, Tcl feels very un-programming. It does look they added objects in 2012, I can't speak to that.
Notwithstanding anything about LLM tools being able to do GUIs any way you want in 2026, I'd really consider just about anything else at this point. JavaFX, React Native, Electron, Flutter, etc.
jefflinwood
I take issue with the only 100 MB footprint, that is still pretty big when consider fasm, tcc and rebol are all closer to 1 meg.
tehologist
I appreciate this reminder that boring old tech is pretty fucking good tech; especially to your non-ReactJS-not-anti-ReactJS dev, here.
The comments are also a helpful reminder of the various sw and visual design/GUI values folks hold.
I personally never gotten past exploring Tkinter but like everything else I played with until I found reason to depend on it, that'll probably change since it's as available as vim and python and _that's_ the kind of thing I value. Limitations/constrains are the engineer's problem, not the tool's (unless they are the tool's problem (but even then, just be your natural creative self and roll with it))
fitsumbelay
the problem with Tcl/Tk is Tcl. the author does write about the quirks and problems, so this is a good article, but the end of it is that Tcl is simply not a language that i am interested in mastering. just like shell scripting. i'll use it if i have to, but it is not my preference.
and as the article also mentions what makes the apps cross platform is the native or near-native GUI. and apparently Tk is good for that.
but i'd rather use a nicer language with it. again, the article does talk about python, and points out that the Tk bindings in python are simply not good enough. that was very insightful, and i am glad to know.
however i would like to know if any other languages do better here. what about go for example? has anyone tried Tk with other languages and can share some experience?
em-bee
Fun fact: macOS hex editor "Hex Fiend" uses Tcl for its templating language:
comments (10)
Honestly it feels very outdated compared to the reactive type of GUI's we have today.
Maybe there are some nice wrappers now that help...
I'd give a Rust based version a try. Just compile into a binary for your platform and off you go.
kooi
inatreecrown2
vincent-manis
I don’t see how the author can write this with a straight face.
The apps look like what native apps looked like in 2003.
drdexebtjl
My general "daily driver" is python and I love that I can just spin up a cross-platform tool immediately with it. Tcl/Tk rule and are insanely useful.
piloto_ciego
Notwithstanding anything about LLM tools being able to do GUIs any way you want in 2026, I'd really consider just about anything else at this point. JavaFX, React Native, Electron, Flutter, etc.
jefflinwood
tehologist
The comments are also a helpful reminder of the various sw and visual design/GUI values folks hold.
I personally never gotten past exploring Tkinter but like everything else I played with until I found reason to depend on it, that'll probably change since it's as available as vim and python and _that's_ the kind of thing I value. Limitations/constrains are the engineer's problem, not the tool's (unless they are the tool's problem (but even then, just be your natural creative self and roll with it))
fitsumbelay
and as the article also mentions what makes the apps cross platform is the native or near-native GUI. and apparently Tk is good for that.
but i'd rather use a nicer language with it. again, the article does talk about python, and points out that the Tk bindings in python are simply not good enough. that was very insightful, and i am glad to know.
however i would like to know if any other languages do better here. what about go for example? has anyone tried Tk with other languages and can share some experience?
em-bee
https://github.com/HexFiend/HexFiend/tree/master/templates
mbirth