• Hacker News
  • new|
  • comments|
  • show|
  • ask|
  • jobs|
  • agosselin 3 hours

    [dead]

  • UltraSane 12 minutes

    I'm familiar with Tcl because many Cisco routers actually support it as a scripting language.

  • neofytos 3 hours

    Congrats to the community and the core team. Their dedication to maintaining Tcl/Tk as a gold standard of stability, pragmatism, and lightweight cross-platform development is inspiring.

  • 3 hours

  • cmacleod4 3 hours

    For the full release announcements see:

    https://newsgrouper.org/%3C119gpah$3eu5q$1@dont-email.me%3E (Tcl) and

    https://newsgrouper.org/%3C119gpbh$3eu5q$2@dont-email.me%3E (Tk).

  • shevy-java 33 minutes

    I tried to get into tk via ruby-tk.

    I ended up really disliking tk.

    Using ruby-gtk2 and ruby-gtk3 was much nicer. (Sadly, gtk4 sucks, so that's the end of the story there.)

    I kind of want a universal toolkit that works everywhere and is also good. Right now I use ... well, either the web (that's ok, though I hate how I can not easily open local files and so forth, without having to use node), or swing via jruby-swing - which semi-sucks, but it also works on windows and it actually is not that bad. (I could use javafx etc... but it is so much easier to get started with swing). I also use libui-ng which is ok but lacks many features, sadly.

  • fithisux 3 hours

    Tcl/Tk has saved me back in the day. The Windows distribution BAWT/Magicsplat are timely updated

    ..... but they do not come with Next Scripting Framework.

    There was a new release on September 16, 2026

    gbacon 2 hours

    In the early 2000s, I used the Tcl/Tk bindings to the VxWorks target management API. The application hotloaded and -unloaded test modules for a hardware in the loop lab. Tcl allowed the first working concept to come to life in a few days. I have no idea how long it would have taken with with C++ library.

  • neilv 1 hours

    The biggest early selling point of Tcl was Tk, as a relatively easy way to make good-enough GUI programs with open source on Unixen and the X Window System. Even much easier than the easier-to-use X toolkits like XView with C, and the alternatives only got more difficult from there. There were no Web frontends.

    Tcl itself was quite clever as what I'd actually call a string-based scripting language (contrast with Bourne/C-shell/etc. that preceded it on Unix).

    Originally, Tcl was among the handful of off-the-shelf extension languages. You write your big application in C or C++, and then you embed an interpreter for a higher-level extension language, for users or the original developer to add on functionality. The options at the time were usually a small Lisp/Scheme, Tcl, Python, or something entirely bespoke and probably quirky and half-butted.

    During early dotcoms, there was considerable interest in Tcl for backend work, and it also wouldn't have been the worst choice to put into the browser. Like Python, Tcl would've been more accessible and democratizing-the-Web than JavaScript, and there were already solid off-the-shelf designs and implementations. (Scheme would've appeared slightly more intimidating than Python or Tcl, and was more powerful, which I think was why Tim Berners-Lee preferred Python over Scheme as the people's programming language for various Web purpose. The semantics of the JavaScript we got was more a hurried toy Scheme, plus the simplest object model, and a more intimidating syntax that came from systems programming.)

    giancarlostoro 1 hours

    I think some of the "LAMP" type bundles use Tcl/Tk for their UI, kinda neat.

    flopsamjetsam 17 minutes

    My pet project in those days was writing a C++ X-Windows gui toolkit, and I took a lot of inspiration from Tk. Both design, and "how do I do this" from the source code were invaluable.

    Didn't Cisco use Tcl in one of their IOSes? Found it: https://www.cisco.com/c/en/us/td/docs/ios-xml/ios/ios_tcl/co...

  • srean 1 hours

    I have a soft corner for TCL, because of its idiosyncracies and weird dynamic stringy playfulness. I would be wary of using it professionally but to play around for the fun of it ... it's just too much fun. Upvar and uplevels are crazy.

    Python is that kind of cool one behaves when visiting parents of your would be spouse for the first time. Tcl on the other hand is like playing one's secret exclusive and somewhat dangerous games with kid school bestie.

    Tcl/Tk pioneered the notion of a scripting language as a library. It got threading right. You can run multiple independent Tcl interpreters in the address space of your process and they can exchange messages. Entirety of interpreter state is encapsulated inside the interpreter object, no globals. To a user an it is just a pointer to an object.

    No need for GIL, no need for serialization/deserialization (pickle/unpickle) ... just within process memory copy (or no copies in case data is immutable).

    zitterbewegung 7 minutes

    Sort of interesting how Python has got rid of the GIL. Serialization of data securities is still something relevant though and I’m not sure if you should use pickle still?

  • gbacon 2 hours

    The little language that could.

    “Tcl tends to get ported to weird places like routers.” (Larry Wall, October 1997)

    bch 1 hours

    Tkinter[0] was apparently released in 1994, so mildly interesting he didn't say "Tcl tends to get ported to weird places like other programming languages."

    [0] https://grokipedia.com/page/Tkinter

    olexsmir 2 hours

    They don't make them like they used to

  • csiegert 2 hours

    FFS, I clicked around for a few minutes and not a single screenshot of what the GUI toolkit is capable of. Even the highlights’ “Themed, Truly Native User Interfaces” chapter and the freaking docs that describe the widgets do not show a single screenshot. I’m shaking my head in disbelief.

    cmacleod4 2 hours

    Try https://wiki.tcl-lang.org/page/Showcase .

    Also https://cgicoffee.com/blog/2026/04/tcl-tk-develop-cross-plat... (takes a little time to load).

    bowsamic 1 hours

    Wow, that sounds really traumatic :(

  • superkuh 4 hours

    Excellent to read Tk is getting better acessibility support. I love using it for quick little Perl/Tk GUI applications but I'm also slowly going blind from retinal tearing. It's good to see progress in some GUI toolkits when major desktops like KDE have dropped accessibility in their latest releases.

    gbacon 2 hours

    Sorry to hear about the retinal tearing. I hope advancements come along that work in your favor.

    F3nd0 2 hours

    In what way has KDE dropped accessibility in their latest releases? (Genuine question; first time hearing about this, but I do not follow the space closely.)

  • sgt 3 hours

    The cool thing is that even if you take something arguably super modern, like the latest Claude models, it is able to write Tcl/tk applications for you that you might not have done at that level in the past. With tests in tcltest too.

    If you understand how generative models and agentic coding works, it's not a surprise. But for some reason it's still mind boggling to think that you can take very old stuff and build impressive programs.

    neofytos 3 hours

    I haven't tested this recently, but I bet it’s equally capable of writing custom Tcl extensions using the C API. Given how stable and clean the Tcl C interface has always been, it’s probably a perfect use case for LLM generation.

    sgt 3 hours

    Yeah should work. So that makes it possible to do literally anything. Tcl always had one foot in the old days and one foot in the modern era. It's not like ALGOL or anything.

  • billybuckwheat 34 minutes

    Many years ago, I worked at a company that used Tcl as the scripting language for its primary product. At one point, a hotshot product manager started agitating to replace it with something more modern. He claimed that Tcl was dying because (wait for it) there were no books being published about it at the time. I guess he was wrong ... :-)

    shevy-java 32 minutes

    Well - Tcl is dying though. So he was not entirely wrong.

    One can not even find it on TIOBE but one can find COBOL there:

    https://www.tiobe.com/tiobe-index/

    (TIOBE is horrible, but still.)

    ainar-g 24 minutes

    It's in decent company in the Redmonk graphs[1], in the vicinity of Smalltalk, Mathematica, D, and Haxe.

    [1]: https://redmonk.com/sogrady/2026/04/14/language-rankings-1-2...

  • trebligdivad 3 hours

    Tcl/Tk has got to be the easiest GUI system out there; you can get simple stuff going with no effort - nothing I've seen comes close to that simplicity.

    Good to see it's getting some modern support.

    agumonkey 50 minutes

    It hits a sweet spot for a lot of basic UI needs.

    iamcreasy 1 hours

    Is it still true if I want to custom widget with animations?

    convolvatron 1 hours

    I've done animations at the Tcl layer before with composition of Tk objects. for little visualizations its just fine, certainly not AAA

  • 0x0203 46 minutes

    I wonder when Linux distros will start shipping 9.0 or 9.1. Even Arch is still stuck on 8.6, despite 9.0 being released two years ago.

    rwmj 43 minutes

    9.0 was unfortunately incompatible with a lot of software. Certainly in Fedora we did the work (about a year ago) and have been shipping it for a long time.

    puneetchandna21 43 minutes

    what do you guys think about omarchy, i am thinking about switching my bro ( CS freshmen) from windows to omarchy instead of ubuntu, should i do it, or should i consider other distros too like this one?

    wrxd 36 minutes

    https://xn--gckvb8fzb.com/a-word-on-omarchy/

  • baggachipz 4 hours

    New version of AOLServer incoming?

    shaky-carrousel 2 hours

    And OpenACS!

    gbacon 2 hours

    Phil Greenspun is still active on X: https://x.com/PhilipGreenspun

    Some throwbacks of his from 1999:

    https://philip.greenspun.com/wtr/aolserver/introduction-1.ht...

    https://philip.greenspun.com/wtr/aolserver/introduction-2.ht...

    fithisux 3 hours

    Or Kenny Tilton's celtk or cello?

    pjmlp 3 hours

    Ah, the memories.

    The startup I joined in 1999 had its own application server loosely based on AOLServer architecture.

    We had Apache + mod_tcl, IIS with our own ISAPI extension, then in box connections for all major RDMS across all key UNIXes and Windows NT/2000.

    Some left to join companies doing Vignette projects, others eventually created OutSystems redoing the same ideas, but with the newly released .NET.

    However it was also a lesson in performance issues, and the constant pressure to rewrite Tcl code into C extensions.

    wombatpm 1 hours

    I remember using tcl inside pages running under Vignette Story Server circa 2000 before we started with jsp

    baggachipz 3 hours

    I used it when I worked at AOL :)

    Was great for rapid prototyping and a/b testing in volume. Not sure I'd pick it ever again for anything, but it was interesting for sure.

    elitepleb 3 hours

    https://github.com/naviserver-project/naviserver has you covered

    WillAdams 3 hours

    Now if we could just bring back Navi/AOLPress....

  • elhosots 3 hours

    Many VLSI CAD tools come with a tcl console window. Im gratified to see the continued language support

    Kudo’s to Mr Osterhout’s long lived legacy

    bch 1 hours

    > Kudo’s to Mr Osterhout’s long lived legacy

    Tcl and Tk are fantastic, and if this is where it ended, John Ousterhout would have secured his place in history - this is only 1 piece of his contributions, though - see too:

      * Log structured file system[0]
    
      * parallel Make[1] (Adam de Boor from Sprite project, not JO hisself)
    
      * RAFT consensus protocol[2]
    
      * Various notable teachings [3][4][5]
    
    
    [0] https://en.wikipedia.org/wiki/Log-structured_file_system

    [1] https://man.freebsd.org/cgi/man.cgi?query=bmake&sektion=1

    [2] https://en.wikipedia.org/wiki/Raft_(algorithm)

    [3] https://en.wikipedia.org/wiki/Ousterhout's_dichotomy

    [4] https://web.stanford.edu/~ouster/cgi-bin/papers/threads.pdf

    [5] https://web.stanford.edu/~ouster/cgi-bin/aposd.php

    spijdar 1 hours

    It's unfortunate that Sprite itself didn't really get absorbed into much of anything, and so doesn't have much of a footprint and isn't really remembered outside of LFS and a few even more niche bits.

    But I think the Sprite kernel and the Sprite-specific libraries (Pfs, Pdev, Fs_Select, Td_), as well as the Sprite-specific userspace, were pretty incredibly pieces of software given the limited resources they were created with.

    For that matter, John Ousterhout's text editor and terminal emulator, mx and tx, were the substratum that Tcl was built on. There's a single library on Sprite, libmx, which mx and tx are based on. Tcl basically grew as the command language of libmx, originally two separate entities, then by mx 2.4 it was fully incorporated:

      eery@cherimoya [1] > cd /sprite/src/lib/mx
      eery@cherimoya [4] > grep Tcl *.c
      mxCmdAM.c:    Tcl_Interp *interp;
      mxCmdAM.c: Tcl_Return(interp, Cmd_BindingGet(mxwPtr->cmdTable, argv[1]),
      mxCmdAM.c: interp->result = Tcl_Merge(bindingCount, bindings);
      mxCmdAM.c:    Tcl_Interp *interp;
      [...]
      eery@cherimoya [10] > grep LIBS ../../cmds/mx/local.mk
      LIBS  = -lc -lmx -lsx -lcmd -ltcl -lX11
    
    Of course, even by 1992, there were multiple versions of Tcl coexisting... :-)

      eery@cherimoya [11] > ls /sprite/lib/sun4.md | grep tcl
      libtcl.a
      libtcl5.a
      libtcl6.2.a
      libtcl6.3.a

    CorrectHorseBat 1 hours

    I see this praise of tcl/tk a lot on HN, but everyone I know (myself included) absolutely hate working with it in VLSI CAD tools.

    wduquette 37 minutes

    One can create amazing ergonomic scripting APIs in TCL; I've done that. One can also rapidly create horrors without end. I've seen that, too. With great power comes great responsiblity.

    Karrot_Kream 1 hours

    If you write Tcl/Tk from scratch for an application and architect it well, it's great. The way it's injected into VLSI tooling is an abomination. I've done both.

    This is partially because when Tcl was first incorporated in VLSI tools it didn't have a good way to organize and modularize code. But this is also because the big VLSI tool shops realize they basically have a monopoly on their integration surface and have no incentive to improve it.

    It's easier to freeze the integration surface and maintain backward compatibility than it is to move the surface forward.

    kevin_thibedeau 1 hours

    I like it better than the alternatives. The challenges come from vendors who had atrocious in house scripting languages (Synopsys) and then shoehorned their architecture into Tcl. You have to deal with a lot of opaque handles for things that should be native objects.

    CamperBob2 1 hours

    Indeed. If AI did nothing for me but deal with Xilinx's shit, I'd still nominate everybody from Hinton to Amodei for Nobels.

  • Aldipower 2 hours

    I once had an O'Really book named 'Perl/Tk'. I mean, I still have it somewhere... I've the feeling reading through it will maybe become my AI recovery therapy at some point?

    kevin_thibedeau 1 hours

    Perl/Tk is a hard fork and hasn't fully integrated the improvements in Tk over the last couple decades.

    gbacon 2 hours

    Perl/Tk is a lot of fun. I wrote a solitaire game called tktk — Tk Time Killer — that appeared in The Perl Journal.

    https://blog.gbacon.com/publications/2000-perl-journal-tktk/

    philipallstar 1 hours

    In a way its distant nominative descendent, TikTok, is also a solitaire game.

    Aldipower 2 hours

    This is very cool! The name alone. :-)

    gbacon 2 hours

    Thanks! It was a fun project.

  • qalmakka 1 hours

    Tcl is way too smart of a language for its own good. I love how everything is a string or can be hacked on a string, so you can basically do levels of metaprogramming that reach unheard of levels

    srean 1 hours

    Not to mention uplevels and upvar.

    wduquette 39 minutes

    All of which I used many years to go to write "Snit", a quite nice object system for coding up Tcl objects and Tk widgets. Snit's a TCL library that takes a nice, easily readable description of your desired object type (the instance variables, the methods, and so forth), translates it immediately into standard TCL, and then evaluates that to define your type. Basically, it's a macro system for defining object types. (I say "object types" rather than "classes" because there is no inheritance.)

    srean 34 minutes

    Would this be the best place to learn about it

    https://wiki.tcl-lang.org/page/Snit%27s+Not+Incr+Tcl

  • aarroyoc 3 hours

    Last time I checked, there was no Wayland support (other than executing in XWayland). Has it changed?

    cmacleod4 3 hours

    Wayland support is being worked on, aiming for release in Tk 9.2 next year.

    See: https://wiki.tcl-lang.org/page/GSoC+Idea%3A+Tk+Backend+for+t...

    5- 2 hours

    glfw! that's a bit surprising.

    i'd expect sdl, given wider platform coverage (e.g. mobile), more system integration (e.g. clipboard), and an existing port (https://androwish.org/home/dir?ci=trunk&name=jni%2Fsdl2tk)

    2 hours