Hacker News new | past | comments | ask | show | jobs | submit login
Jim Tcl version 0.78 (tcl.tk)
140 points by vetelko on July 4, 2018 | hide | past | favorite | 25 comments



I started this project many years ago, and later abandoned it. Fortunately the project found another gentle and capable father that developed it for years and put it into a useful niche: embedded systems. However Jim Tcl is still, for me, a milestone of my programming life. It was the first time that, inspired by the Tcl internals, I started to realize how to write clean C code using better abstractions. It's awesome to see the project still alive, thank you Steve.


For the Tcl internals, was this John Ousterhout's code or some other codebase? Have you read his new (ish) book on Software Design? [1]

[1] https://www.amazon.com/Philosophy-Software-Design-John-Ouste...


Yep it was the original JO code base, but I think that when I read it (it was already Tcl 8) a lot of other people had rewritten major parts, but the standard and quality were set I guess, and also the core team was composed of people that knew how to write code. About the new book: ordered it via Amazon, but Amazon Italy for some time now for small things use the local postal service, that always fails, so it returned back... to Amazon. I'll have to purchase it again.


> Jim is supported. If you need commercial software, contact the original author at 'antirez@gmail.com' or the current maintainer at 'steveb@workware.net.au'.

Do you get many support emails, still?


Not much but a few questions from time to time, I don't reply most of the times unfortunately... I receive a lot more emails about hping (!).


I always wondered why you used lua embedded into redis instead of tcl? Has that been written about before?


Because I thought it was not a good idea to script Redis using an opinionated language as Tcl. Lua is a lot more "algol like", more understandable to the casual script writer.

EDIT: However there is an even more important thing that resembles Tcl in Redis: the commands you send to the server to alter the data set are very similar to Tcl commands.


I find it somewhat amusing (but understandable) that you thought Tcl was too complicated for "script programmers", but fine as the standard interface to get anything done with (raw) redis ;)

It's a shame, Redis could've become the storage back-end for the next AOL server! ;)

Well, I suppose it probably is used with aolserver anyway.

For those confused by this comment, see:

http://philip.greenspun.com/panda/

And/or:

https://openacs.org/

NaviServer appears to be the "new" aolserver:

http://wiki.tcl.tk/2090

While aolserver still exists, I'm maintainence mode: http://aolserver.github.io/


Did sandboxing factor into the equation? My understanding is lua scripts in redis aren't sandboxed, other than the (possibly?) restricted api. But one could limit heap with a custom allocator for example, and cpu cycles with a hook, if desired.


I think that wouldn’t be an argument for Lua over Tcl, as Tcl has facilities built especially for this type of environment:

Safe Interpreters[0] and resource constraints[1] come to mind.

[0] https://wiki.tcl.tk/4204

[1] https://www.tcl.tk/man/tcl/TclCmd/interp.htm#M47


there is no such thing as casual redis script writer

if you are technical enough to write scripts for redis, you are not casual


I actually agree whole-heartedly with this comment.

But I wouldn't have written with such a dismissive tone to a living software god :-)

Anyway, Lua was a fine choice!


Yep but perhaps you want to glue two commands together. I wanted to avoid forcing this kind of users to learn a new language.


Why is it called "Jim"?


Maybe a play on words? Many people pronounce Tcl as tickle. Jim Tcl, George Dickel?

If so, they should have named it George Tcl. Jim is known for another whiskey.


Well then it should have been called Test Tcl.... yeah I'll just leave myself out now :p


I heard many times about tcl or tcl/tk. Never paid attention until today. I really liked the language but looks like kind of dead to me. Last tclkit version is 8 years old. I tried to compile a tcl/tk application to an executable file and most of the websites explaining the process pointed to broken links (other docs, executables, etc).

Is tcl/tk still alive?


Tcl/Tk is very much alive, and actively maintained. See the check-in history at https://core.tcl.tk/tcl/timeline (Tcl) and https://core.tcl.tk/tk/timeline (Tk). There are annual conferences for developers and users - one in Munich this year (http://www.eurotcl.eu/) and another in Houston (https://www.tcl.tk/community/tcl2018/index.html).


It's still used in applications that just work and boringly continue to do so. Like the SQLite test suite or MacPorts or Expect. Eurocontrol also uses it for air traffic control.

https://wiki.tcl.tk/37389


Tcl/Tk doesn't have the cachet that newer programming languages do, but it certainly still works and is a pretty neat language, and now would be a great time to have a Tcl renaissance.



I'm pretty sure TclKits are still being regularly built, I guess you were looking in a wrong place.


I still deal with it in telecom. No one wants to abandon in-place hardware infrastructure that the business community still supports.


It's used a lot in the electronics industry for scripting testing and debugging.


I remember packaging and developing for the Tcl interpreter within Tivo boxes and set top boxes a while ago. The footprint was small back then, 10k is amazing. Great work.




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: