Tcl is great for simple scripting and automated testing. It's also great when you want to represent small bits of data as code. Perspecta Presents[1], one of Ousterhout's first commercial ventures, used Tcl scripts as the file format for its presentations[2].
But Tcl was never intended for large programs. Ousterhout expected large programs to be written in another language with compilers, linkers, linters and other tools. Once a Tcl program gets past a certain size it becomes effectively unmaintable. Tracking down a variable name typo bug in a 100,000 line Tcl program is a hell I refuse to visit again.
1- http://wiki.tcl.tk/4191 2- http://www.rpi.edu/dept/rcs/packages/ppres/1.10/common/sampl...
That Perspecta file is not pretty to look at.
Extremely expressive, rivaling Smalltalk?
Small, understandable core with simple semantics?
Teachable to newbies in hours rather than weeks?
Yup, definitely deserves it. /s
When I first came across TCL after years of writing C++, I couldn't believe how much lighter the mental load was (I hadn't even noticed it until then).
Anyways, I was looking at Dart a while back, and sat down in my editor and started working and quickly realized that I hold the entire program in my head but had to keep checking a cheat sheet for syntax. There's definitely something to be said for languages or tools that can alleviate that blockage.
I guess it's the level of abstraction more than anything. TCL is really neat and being that the syntax IS the code, like Lisp, there's really no difference between how a solution works in your head and how it has to be written in the editor.
So yeah. TCL's pretty dope.