Hacker News new | comments | show | ask | jobs | submit login
Design patterns in Tcl (github.com)
48 points by blacksqr 9 days ago | hide | past | web | favorite | 13 comments

Reminds me of work I did at Yahoo a long time ago that eventually resulted in publishing basic programming patterns in sed: http://tech.bluesmoon.info/2008/09/programming-patterns-in-s...

This is pretty cool! I'm glad you shared it. I still drop into sed every once in awhile and will keep this around.

semantics in purely functional sed

I miss you Tcl. Upvar, uplevel, how's it hanging guys? While this is a neat little repo, this is totally unnecessary in Tcl. Being a much more flexible language than a C++ inspired OO, it had its own idioms that were much more succinct.

Tcl is awesome. It's like Python having a baby with bash, and the baby is actually pretty :D

For me, it's one of those languages that change your way of thinking about programming and you will take that with you, no matter what language you will be working on.


I learned TCL back when I was a full-time FPGA engineer (it's the standard scripting language for most FPGA toolchains for whatever reason), and I actually really liked it.

TCL is a weird little language, and has a lot of beauty in its own way. It's hyper-flexible almost like a Lisp, and looks like some kind of Bash/C hybrid. Or maybe Python with an "everything is a string" implementation.

I wish it was more popular industry-wide, because the interpreter is small and the language is feature rich. If I could convince anybody else at my company, we'd ship more TCL and less shell scripts in our products.

IIRC, the TCL interpreter is included in the python one. The baby analogy is pretty apt, just backwards.

No, it’s not. But it comes with Tkinter, since Tk is a Tcl extension.

It is actually. Tkinter is the python interface to embedded Tk, which necessarily includes Tcl.

Larry Wall once quipped “Tcl tends to get ported to weird places like routers”. If only he knew...

Ref: https://stackoverflow.com/questions/16439936/how-to-call-tcl...

note on this - Tkinter does come with a TCL interpreter for sure. But not all Pythons come with Tkinter (source: I've packaged Python for embedded systems)

Ahhh... I think we were talking past each other a bit above, but your comment above is clear, and probabaly what everybody in the thread really meant...

I learned tcl because it was "that thing you had to learn to script an eggdrop" back in the bad good old days of IRC.

I find the syntax particularly obtuse and unwieldy. Most other code I've written I can open up after a few years and more or less pick up where I left off. But I feel like I have to relearn tcl every time because the syntax is so dense.

But I still think it's an awesome toy language.

Tcl is a great example of a language that should have fixed literally a couple of bad design decisions early on to be sensible. Instead, it is a complete nightmare to debug. I refuse to allow its use on any project.

One great example is how a variable name can be expected yet its value is extracted instead, and seem to function sort of. Yet it’s stomping through your code base and messing with values you didn’t think it would. Finding this is simply not worth the trouble when arguably dozens of other languages would not even have the problem.

Or, the “error on line 1” where the “line” is a massive nest of loops and other statements. Tcl (at least at one point, supposedly this improved) couldn’t offer any more help. And again, this was a completely unnecessary debugging headache that no other language would have.

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