‹ BackHN Continuity

Thread

Tcl/Tk 9.1

304 points · 144 comments · dmux

  1. srean · · focus · HN ↗
    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).

    1. zitterbewegung · · focus · HN ↗
      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?
      1. tlavoie · · focus · HN ↗
        Pickle is likely still handy, as long as you created the data that you're deserializing. Zope's object database was a big pickle file, as I recall. But yeah, not a good idea if you're cracking open user-supplied files in any way.
        1. vkazanov · · focus · HN ↗
          Ha! People still remember Zope!

          That was my first web kind of framework. The naivette of Zope still amuses me endlessly to this very day.

          It tried to be cool, made ALL the wrong choices, and died silently with people just moving on.

          1. pjmlp · · focus · HN ↗
            There are dozens of us. :)
          2. tlavoie · · focus · HN ↗
            I think it still exists, even! It has been a long time since I used it though, but it was interesting.
            1. vkazanov · · focus · HN ↗
              Interesting is one way of saying this...

              I will never recover from debugging ZODB backed by Oracle. Well, somewhat backed.

              Who, like, who thought it was cool to have a pickle-based, mostly in-memory, single process, aaalmost transactional database?!

              1. tlavoie · · focus · HN ↗
                Hahaha. Well, I didn't run into that issue, so it mostly "just worked" in the sense of where we had used it. I did mess around a bit with the Plone CMS that runs on top of Zope, and found it horribly slow and resource-hungry for the time. Someone must like it, it's still getting releases in 2026.

                I was more traumatized by the Java-based product from Open Market (acquired from Future Tense back in the day), and all the horribleness that that entailed. Starting from XML as a template language, then seemed to get only worse. Nothing like having multiple content areas all rendered as 500 Server Error pages within one page, when it all goes sideways.

      2. zahlman · · focus · HN ↗
        Pickle is insecure by design, but definitely convenient if you can trust the input.

        If you need something safe then you really need to identify your requirements and your threat model first anyway; I wouldn't blindly reach for a one-size-fits-all solution in any programming language.

        (Although I would do a quick check to see JSON or TOML is sufficient and practical.)

Open on Hacker News to reply ↗

Unofficial Hacker News client; not affiliated with Y Combinator.