Penguin
Note: You are viewing an old revision of this page. View the current version.

An Acronym for Tool Command Language.

It is a scripting language embedded in many applications, much like Elisp is used in Emacs and VisualBasic is in many MicrosoftWindows applications. (This does not mean these languages have anything in common; actually they're about as far apart from each other as imaginably possible.)

Tcl is available on all Unix-like platforms, as well as on MicrosoftWindows. It is almost always combined with the Tk ToolKit. This makes it a good choice for portable GUI scripting. There is also a less popular standalone interpreter.

Tcl was intended to serve as a a really simple, universal scripting interface to compiled libraries and applications. The complexity of large codebases was supposed to be carried inside these libraries and applications, with their Tcl bindings serving more as a glue layer for rapid adaptation and recombination. Tcl itself was not orginally meant to be used as a standalone language. To that end, the biggest, foremost concerns in its design were extensibility and embeddability rather than the needs of large, complex codebases. The language is limited; variables can only be accessed by by name, not by value or by reference. Complex nested data structures were impossible to create until fairly recently. Since people kept using Tcl as a stand-alone language, support for nested lists was added to accomodate them, though manipulating such structures remains painful.

The Tk ToolKit was a significant success for the original Tcl model, but no others have followed. In practice, dynamic languages like Perl, Python and Ruby which are designed to carry the complexity of a large codebase on their own proved more popular at the one end, while fully scriptable applications never caught on at the other end. With Tk's popularity long since dwindling, giving way to GTK and Qt, so does the prominence of Tcl. Most people would consider it obsolete, though as with any technology (particularly in the OpenSource world), it has found a small following of supporters and enthusiasts who continue to evolve it. There is also still a moderate but significant amount of legacy TclTk code around.

See also:


CategoryProgrammingLanguages, CategoryVeryHighLevelProgrammingLanguages