What are Tcl and Tk

Home    Documentation    Screenshots    Binary distributions    Source distribution   

Tcl and Tk originated with Dr. John Ousterhout (Oh'-stir-hout - last syllable rhymes with rout, not root) from the University of California, Berkeley, California, now working for Sun.

Tcl (current release version 8.0) stands for ``tool command language'' and is pronounced ``tickle.'' More information about Tcl can be found on the WWW site of the authors:

Tcl is actually two things: a language and a library. First, Tcl is a simple textual language, intended primarily for issuing commands to interactive programs such as text editors, debuggers, illustrators, and shells. It has a simple syntax and is also programmable, so Tcl users can write command procedures to provide more powerful commands than those in the built-in set.

Second, Tcl is a library package that can be embedded in application programs. The Tcl library consists of a parser for the Tcl language, routines to implement the Tcl built-in commands, and procedures that allow each application to extend Tcl with additional commands specific to that application. The application program generates Tcl commands and passes them to the Tcl parser for execution. Commands may be generated by reading characters from an input source, or by associating command strings with elements of the application's user interface, such as menu entries, buttons, or keystrokes. When the Tcl library receives commands it parses them into component fields and executes built-in commands directly. For commands implemented by the application, Tcl calls back to the application to execute the commands. In many cases commands will invoke recursive invocations of the Tcl interpreter by passing in additional strings to execute (procedures, looping commands, and conditional commands all work in this way).

An application program gains three advantages by using Tcl for its command language. First, Tcl provides a standard syntax: once users know Tcl, they will be able to issue commands easily to any Tcl-based application. Second, Tcl provides programmability. All a Tcl application needs to do is to implement a few application-specific low-level commands. Tcl provides many utility commands plus a general programming interface for building up complex command procedures. By using Tcl, applications need not re-implement these features. Third, extensions to Tcl, such as the Tk toolkit, provide mechanisms for communicating between applications by sending Tcl commands back and forth. The common Tcl language framework makes it easier for applications to communicate with one another.

Tk (current release 8.0) - an extension to Tcl which provides the programmer with an interface to the X11 windowing system. The author's home ftp site for the Tk source is Note that many users will encounter Tk via the ``wish'' command. Wish is a simple windowing shell which permits the user to write Tcl applications in a prototyping environment.


Tcl/Tk has its own newsgroup. It is called comp.lang.tcl.


Lots of info about Tcl can be found in the Tcl FAQ. It is avaiable from Many FAQs, including this one, are available on the archive site . The name under which a FAQ is archived appears in the Archive-name line at the top of the article. For example, this part of the comp.lang.tcl FAQ is archived as .


There is a book about Tcl:
Title: Tcl and the Tk Toolkit
Author: John K. Ousterhout
Publisher:		Addison-Wesley
Expected availability:	April 1994
ISBN:			0-201-63337-X

Where can I get these packages and info about them?

The "home site" for Tcl on the Internet is One of the main sites carrying Tcl and extensions is

Peter De Rijk
hosted at Logo