Conceptual Overview

What is Tcl?

Tcl stands for Tool Control Language. While not capitalized like other acronyms, that's still what it stands for. It was born at UC Berkeley in 1988 as a general purpose scripting language that could be built as a C library package and embedded into software. Because of this embeddable nature, extensions to Tcl could be easily written to add to the scope of what Tcl can do. Today, Tcl runs on most all computer platforms, UNIX, windows, Mac.

What Tcl is not

Tcl is not meant to be a replacement language for C or Ada or any of the other high level languages. It is meant as a generic scripting language that could be embedded inside other languages to come up with a common interface. Tcl lacks things like arrays (but it does have associative arrays), and linked lists, but it was never meant to do those things. That is left to the language it's embedded into. There are however extensions to Tcl that drastically increase it's scope. Python is a object oriented version of Tcl.

What is Tk?

Tk is an extension to Tcl that allows Tcl to take advantage of the X Window system. Tk provides a motif like widget set to Tcl so you can construct GUI applications using Tcl scripts instead of C code. The ease of the scripting language allows for rapid prototyping of GUI interfaces that is not available with other methods. Here is an example of something I wrote using Tk. The latest versions of Tk runs on UNIX, windows and Mac.

What Tk is not

Tk is not the answer to all your GUI needs. Being it's an interpreted X, it is slower than a compiled X application. For menus, dialog boxes, and various forms of user input, Tk performs very well, but if you want to do real graphic intensive stuff, Tk is probably not the way to go. Tk extensions go beyond just Tcl. There are Tk extensions for other scripting languages like Perl, and Python.

Enough of this overview jazz...let's get down to the basics of Tcl