"I don’t want a pickle
I just want to ride on my motor-cicle"
— Arlo Guthrie
This is a bit more fanciful than the usual ActiveState blog, but sometimes metaphors have more truth in them than facts.
Tcl is an interesting language. As one of our Tcl devs says, “It has no syntax”, which is not quite true, but “Tcl scripts consist of commands and arguments with variables defined by the builtin ‘set’ command and accessed by $ before the variable name, procedures defined by the builtin ‘proc’ command with the command name, argument list and procedure body as arguments, variable interpolation done on quoted strings and not on strings in curly braces, and square brackets used to nest Tcl scripts in command arguments, with the usual control structures defined as builtin commands” is a fairly complete statement of Tcl syntax.
Try doing that for Python. Or Perl. Or C++.
“But you know the most amazin’ thing... Was that I didn’t die.” — Arlo Guthrie
Arlo Guthrie’s epic Motorcycle Song is wandering and improbable, which resonates with the history of Tcl. How likely is it that an embeddable, extensible language created by a lone academic to scratch an itch peculiar to his work on IC design, coupled with GUI toolkit designed to work well on small-footprint systems, would gain sufficient importance to be supported by Sun Microsystems, then spun out into a successful company (Scriptics--later renamed Ajuba Solutions), and eventually become a technology that is doing everything from managing job control for supercomputer clusters at Argonne National Labs to real-time testing of high-definition video sensor chips at an industrial manufacturer in Germany?
Tcl is a “little” language that does big things, almost invisibly. It is in our phones and our TVs, it designs the chips that run our world. In the technology industry we have larger-than-life figures in industry who have driven enormous changes in the world over the past twenty or thirty years, and we rightly pay a good deal of attention to them. But we also have communities like the one that gathers around Tcl/Tk and in a quiet and unobtrusive way get on with vitally important jobs.
“It was at that very moment that the pickle with the ticket was goin’ down my throat
That I knew for sure that, that I didn’t want a pickle”
— Arlo Guthrie
And finally, there is that giant pickle, “as big as four pregnant watermelons.”
Is it just me, or is this song really about Java?
Tcl is a fast, flying, slightly absurd motorcycle that lets us do the jobs we really want to do, and have fun doing them. Its extensible, embeddable nature makes it a natural fit for a wide range of interstitial tasks that require a good-natured, flexible language that plays well with others.In an increasingly connected world, full of small-footprint systems that have to play nicely with each other to work at all, Tcl is a natural fit. Other languages have their uses, but in a lot of cases I don’t want a pickle. I just want to write my code in Tcl.