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.
Larry Wall once quipped “Tcl tends to get ported to weird places like routers”. If only he knew...
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.
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.