[blue ribbon campaign] [Virtual Library] Virtual Library [Virtual Library] Computer Programming Languages

Tcl and Tk [Tcl Developer Xchange]

This page is maintained on a purely voluntary basis by Bertrand Ibrahim <Bertrand.Ibrahim@cui.unige.ch>, Visual Programming and Software engineering group, University of Geneva. The maintenance effort is partly funded by the Swiss National Science Foundation.

This page is accessible at the following alternative (and equivalent) URLs:

http://cui.unige.ch/eao/www/TclTk.html
http://cuisung.unige.ch/TclTk.html

and (to save network bandwidth) in gzip compressed format at:

http://cui.unige.ch/eao/www/TclTk.html.gz
http://cuisung.unige.ch/TclTk.html.gz
Last update: June 12, 2001 (a list of changes is available)



Table of content


Events

Various information sources

John Ousterhout left Sun Microsystems to create Scriptics, which has, later on, been renamed Ajuba Solutions, which has been acquired by Interwoven in October 2000. As a result, TclPro was released into the open source community by Interwoven,

A Tcl consortium was created but their site doesn't seem reachable anymore. The former primary site at Sun has been closed.

The Tcl and Tk core distribution is still freely available at http://sourceforge.net/projects/tcl (for downloads, follow the link "view ALL project files") and at ftp://ftp.scriptics.com/pub/tcl/. See the Tcl-foundry site for details. The core distribution is also available at http://www.ActiveState.com/ASPN/Tcl/.

Tcl development is now organized by the Tcl Core Team (TCT). The latest information is to be found in the Tcl Developer Xchange pages (now hosted by ActiveState.com), and particularly the pages about Tcl/Tk 8.4a2 (latest alpha release) and Tcl/Tk 8.3.3 (latest official release). Version 8.3.3 is a stable production release of Tcl/Tk 8.3.

Version 8.3 includes improved image and graphic handling.

Version 8.2 includes substantial performance improvement for string manipulations, and various bug fixes.

Version 8.1 introduced support for Unicode and internationalized applications via support for UTF-8 character format (see RFC 2044). It also added thread-safety to the C implementation, an all new regular expression package, multi-threading, and a message catalog.

Former versions are also accessible at the Tcl Developer Xchange site, see the release summary table for details. The major change in version 8.0 is the introduction of a compilation phase that increases the execution speed manyfolds, but it also includes namespaces, binary I/O, native look and feel on Windows and Macintoshes, a new font mechanism, and application embedding. See also "Changes to Tcl script semantics in Tcl 8.0" and Tcl Developer Xchange's "What's new".

Lots of resources and information are available in the Tcl URL Database.

See also the www.tcltk.org Web site.

==>> Mike Hopkirk's TCL WWW Info has very extensive info about Tcl (check its Tcl/TK Resources entry, under the Other Tcl Info Collations heading). An old versions of Mike Hopkirk's TCL WWW Info page is at

==>>

tcltk.com is a site for the Tcl/Tk community.

-> The Open Directory has an entry on Tcl/Tk.

-> Links2go has an entry for Tcl/Tk

-> Yahoo has an entry on Tcl/Tk

-> Lycos has an entry on Tcl/Tk

-> AltaVista has an entry on Tcl/Tk (looks like an older copy of Lycos' page)

-> WebCrawler has an entry on Tcl/Tk

-> Galaxy has an entry on Tcl/Tk

-> Google has an entry on Tcl/Tk

-> The hypertext version of the FAQ is now maintained by the original author of the Usenet version, Larry W. Virden. A somewhat obsolete version can still be found at http://www.cis.ohio-state.edu/hypertext/faq/usenet/tcl-faq/top.html and is mirrored (with online Man pages and other goodies) at http://www.sco.com/Technology/tcl/Tcl.html .

-> There is a separate FAQ for Tcl/Tk on Windows

-> Kevin B. Kenny has an interesting document analyzing Dynamic Loading for Tcl.

-> David Martland has written an introduction to Tcl/Tk. This document is dated 1994!

-> Wayne Christopher has collected some News articles comparing Tcl with other systems.

-> Walnut Creek CDROM has an ftp archive and used to have a CD-ROM of Tcl/Tk software (as of October 1995, it had Tcl 7.4p1 and Tk 4.0p1).


Related newsgroups


Books on Tcl/Tk

There is a large overlap between the list below and the list of books found in Tcl Developer Xchange Resource Center

-> John Ousterhout's book Tcl and the Tk Toolkit is published by Addison-Wesley, ISBN 0-201-63337-X. It is also available in German as Tcl und Tk, ISBN 3-89319-793-1. An old draft version is available from CICA, Indiana University. This draft is by no means complete. PLEASE, don't write to the author to tell him about mistakes you found in it: it's just a draft and the final book has already been published!

-> Another book available online is Brent Welch's Practical Programming in Tcl and Tk, published by Prentice Hall (1st edition: ISBN 0-13-182007-9, 2nd edition: ISBN 0-13-616830-2). The second edition describes Tcl and Tk 8.0. A few selected chapters are available on-line. Please, note that the book is under copyright by Prentice Hall. However, the draft of the first version is available on-line for personal use. You can print one copy for personal use. Note that it is not the same as what you can buy at the store. PLEASE, don't write to the author to tell him about mistakes you found in it: it's just a draft and the final book has already been published! A Postscript copy of the draft is available at Sun Microsystems. A tar file of the examples is available.

-> Eric Johnson has written Graphical Applications with Tcl and Tk, published by M&T Books, 1996, ISBN 1-55851-471-6.

-> Don Libes' book Exploring Expect: A Tcl-based Toolkit for Automating Interactive Programs is a book about Expect, but contains an introduction to and an overview of Tcl.

-> J Adrian Zimmer has written Tcl/Tk For Programmers, published by the IEEE Computer Society (ISBN 0-8186-8515-8). Sample chapters are available on-line and include short introductions to Tcl, Tk, and the plugin.

-> Hattie Schroeder and Mike Doyle wrote "Interactive Web Applications with Tcl/Tk" for novice programmers, to introduce them to the ease and power of Tcl/Tk and to show how Web applications, such as interactive Web applets, Web browsers, Web servers, autonomous agents, client/server databases, browser-pull, and server push applications can be quickly built using Tcl/Tk.

-> Clif Flynt has written Tcl/Tk for Real Programmers (link not yet active), that will be published by Academic Press Professional in December 1998. The book focuses on writing scripts, using namespaces and packages, writing extensions, describing available tools and includes a CD-ROM with tutorials and code distributions.

-> Hal Abelson, Philip Greenspun, and Lydia Sandon are the authors of Tcl for Web Nerds. This book focuses on Tcl, not Tk, and on using Tcl for the web. It often makes reference to Scheme programming constructs, as the book is intended for MIT students who have already been exposed to this dialect of LISP. (Note: the complete content of the book is available on-line)


FTP sites that hold Tcl/Tk tools/programs


Extensions

-> Many extensions are available in ftp://ftp.neosoft.com/pub/tcl/alcatel/extensions/. Most of them are documented by a README file.

-> incr Tcl and incr Tk extend Tcl/Tk to support object-oriented programming. They include the [incr Widgets] library of more than 35 mega-widgets (like file browsers, HTML viewers, and paned windows). Version 2.1 includes: tcl7.6 and tk4.2, support for Unix, Windows and Macintosh platforms, support for shared libraries and dynamic loading, "dash" patch for extra canvas support, "plus" patch with support for C++ and standalone wish, new "pixmap" image type, a new "chain" command for chaining method invocations, etc. There is also a tutorial available.

-> XOTcl is based on MIT's OTcl and is meant to replace it. It is an Object-Oriented extension to Tcl/Tk. It supports simple and multiple inheritance. It includes support for dynamic object aggregation, nested classes, assertions, meta-data, per-object and per-class mixins, filters and dynamic component loading. XOTcl is compatible with Tcl 8.0.5 and higher.

-> TkSM is a simple OpenGL-based 3D modeling extension for Tcl7.4/Tk4.0 (p3) and Tcl7.5/Tk4.1. See also OpenSpace, a multi-user, distributed 3D modeling and simulation environment based on TkSM.

-> Cpptcl is a tool to allow simple integration of C++ objects with Tcl (and hence Tk). It includes automatic support for Tcl argument parsing, command completion, container classes, run-time type information, archival of object creations, ...

-> Tkpvm is a combination of PVM (Parallel Virtual Machine) and Tcl/Tk. It allows one to spawn and manage processes on multiple hosts and have these processes communicate through pvm-channels.

-> obTcl is a pure-Tcl object- and Megawidget-extension. See the README file.

-> For those interested in networking, Tcl-DP (Tcl-Distributed Processing) version 3.2 is available. Tcl-DP is also available from mm-ftp.cs.berkeley.edu, in the /pub/multimedia/Tcl-DP directory, as tcl-dp3.2.tar.Z.
Note: release 3.2 is compatible with Tcl7.3 and Tk3.6.

Note that since version 7.5 Tcl includes network features that might suffice your needs.

-> For those interested in turning character-based interactive programs into batch ones, have a look at Expect (there is an alternate site, in France).

-> TIX is a set of compound widgets, including a Combobox, a Motif style FileSelectbox, a PanedWindow widget, a Notebook widget and many more, built on top of TK. I personally like its pop-up menu facility. The author of TIX can be reached at <ioi@xpi.com>.

-> Pacco is a set of widgets that extends the toolkit Tk to supply object visualization.

-> A list of Tcl/Tk resources and documentation about incrTcl is available at http://www.tcltk.com/

-> TclX (a set of Tcl extensions and a shell for Unix system programming tasks and large application development) is available at http://www.NeoSoft.com/tcl/ftparchive/tclx-distrib/.

-> The Visualization Toolkit (VTK) is an object oriented C++ class library for performing graphics and data visualization. It includes a number of powerful visualization algorithms built in, with rendering support for OpenGL, Starbase, GL, XGL and X.

-> The Tcl/Tk visu extension provides a new Tk widget called the pict widget. It is an image widget, geared to gray-scale images. It was created by Pierre-Louis Bossart. Shaohua Zhou made an extension of "visu" for the visualization of geophysical data.

-> Jan Nijtmans has various extensions, among which an extension to add dash and stipple outlines to most canvas objects. He also has the Img package, that adds many image formats to Tk.

-> TSIPP is a 3D image specification and rendering toolkit for creating 3-dimensional scenes and rendering them using a scan-line z-buffer algorithm. It is compatible with Tcl 7.4 & Tk 4.0 and can render to the new Tk photo image

-> Tcl Data transformations (Tcl-Trf), by Andreas Kupries (a.kupries@westend.com), is an extension that provides for data encryption, generation of message digests, conversion from and to various data encodings, a reed-solomon error correcting coder, and (de)compression based on zlib 1.0.4. Tcl-Trf is developed for Tcl 7.6 or higher, and is available in http://www.westend.com/~kupries/doc/trf/.


Interfaces to other languages

-> MICO is a package to interface Tcl with CORBA-compliant software components.

-> An Ada interface to Tcl is available from the Arcadia project. Another one, named TASH, is available from Terry J. Westley.

-> A Prolog interface to the Tcl/Tk toolkit is available from the "European Computer-Industry Research Centre" (ECRC), in Germany.

-> It is possible to somewhat interface Tcl with Java. Tcl can call Java methods and Java can evaluate Tcl scripts.

-> A portable interface for Tk (PortTk) has been developed by Filip Karlemo (fkarlemo@snakemail.hut.fi), Ari Kiviluoma (akiviluo@snakemail.hut.fi) and Kimmo Joki-Korpela (kjk@snakemail.hut.fi) as a project course at Helsinki University of Technology. (There is an alternate path to this information)

-> Schemepkg is a Tcl/Tk package that provides an interface to a scheme interpreter from within Tcl scripts. Unlike Stk, Schemepkg is not a scheme interpreter for Tk; it is merely a set of Tcl commands that can be used to evaluate scheme code from within Tcl scripts. It is based on Brent Benson's Libscheme, which is a C library implementing a Scheme interpreter. Libscheme is required in order to use Schemepkg. Schemepkg is available in ftp://ftp.cs.indiana.edu/pub/kfisler/Schemepkg0.1.tar.gz or ftp://ftp.cs.indiana.edu/pub/kfisler/Schemepkg0.1.tar.Z.


Ports to other environments

Official releases are available for most platforms. We are listing here alternative ports:

-> Tcl 7.3, TclX7.3a, Tk3.6 for MSDOS & Desqview/X can be found at ftp://harbor.ecn.purdue.edu/pub/tcl/distrib/, in files mstcl73s.zip (sources) and mstcl73e.zip (executables). They are mirrored at ftp://ftp.germany.eu.net/pub/programming/languages/tcl/mirror.core/alcatel/distrib/.


Tcl/Tk based tools

-> tmk is a Tcl based make utility that supports cross-platform developement.

-> moodss is a modular and customizable spreadsheet.

-> Visual Tcl application development environment for UNIX, Windows and Macintosh platforms. It provides a GUI interface for most aspects of Tcl/Tk development and includes compound widgets and user-defined compound widget libraries. It can also be used to create Tclets for the Tcl Netscape plug-in.

-> The Visual Tcl Project is yet another application development environment for UNIX, Windows and Macintosh platforms, written by Doug Bebber.

-> GroupKit is a groupware toolkit used for developing real-time conferencing applications. These are groupware applications such as drawing tools, editors and meeting tools that are shared simultaneously among several users. The distribution includes not only the core toolkit but over 30 example groupware tools.

-> TkDesk is graphical desktop and file manager for UNIX/Linux and the X Window System.

-> The Tcl/Tk plugin for Netscape Navigator/Communicator and MS Internet Explorer allows Tcl/Tk applications (tclets) to be securely executed from within Web pages. Note: Current release is 2.0. The document Tk 4.2 SafeTk Modifications is now somewhat obsolete and the Tcl Developer Xchange has more recent info on Safe-Tcl. Example tclets can be found at:

-> There is a Tcl Web Server written in plain Tcl. Beside basic http server features, it includes many customization possibilities.

-> EXMH is a Tcl-based graphical interface to the MH email user agent.

-> TDebug 1.0: A Tcl/Tk debugger that doesn't require an extended interpreter. Tar file at ftp.neosoft.com - mirror copies in Switzerland, Germany and Finland.

-> tkinspect 5.1.6: a browser for Tk programs (a GUI to Tcl's info and Tk's pack and bind commands). Tar file at ftp.neosoft.com - mirror copies in Switzerland, Germany and Finland.

-> VisualGIPSY is a free GUI builder for Tcl/Tk 8.0.

-> XF is a rather powerful GUI builder written by Sven Delmas <garfield@cs.tu-berlin.de> Technical University Berlin, Germany. I personally don't find XF very intuitive to use, but trained users find it extremely useful. XF can be found at the following places:

-> Sean Halliday <halliday@ea.com> wrote a GUI builder (named GuiBuilder) that is quite easy to use. The latest release is v1.0 and works with Tcl7.4 and Tk4.0 (the help file help_src.tcl was missing from the 1.0 release until now). Former releases working with Tcl7.3 and Tk3.6 (v0.95 and v0.94) are still available.

-> Stephen Uhler, from Sun Microsystems Laboratories, has released SpecTcl, a graphical user interface builder for Tk. It can also generate Java and Perl code.

-> Richard Hipp <drh@acm.org> has put in the public domain a tool named "Mktclapp", a utility that helps you mix C/C++ with Tcl/Tk to make a standalone executable.

-> Liem Bahneman <roland@ssc.com> has moved tkHTML, a tcl/tk-based HTML document editor for X11. It has almost all the standard editing features of a word processor, as well as special functions for editing HTML documents. The current version (3.11) of TkHTML uses Netscape or Mosaic for previewing.

-> Code to parse and manage html can be found at ftp://ftp.scriptics.com/pub/tcl/misc/html_library-0.3.tar.gz

-> Jay Sekora has a freely-redistributable set of tools (text editor, directory browser, hypertext help-file viewer, etc. ) named jstools, archived on ftp://ftp.neosoft.com/pub/tcl/alcatel/code/

-> COMPASS (Computer Aided Search System) is a tool based on Tcl/Tk, C++ and TclPro for content-based image retrieval.

-> This VHDL Editor has VHDL syntax highlight and various other interesting features such as a hierarchy tree


WWW-related Tcl/Tk tools

-> Plume (formerly called SurfIt!) is a Web browser that can securely execute Tcl/Tk applets. Current release is 0.6.2 alpha. Pre-release 1.0a1 is also available (based on Tcl/Tk 8.0). The author is Steve Ball, who is now at Zveno.

-> Don Libes has a nice library named cgi.tcl that makes it easy for Tcl programs to generate HTML, including forms, tables, cookies, file upload, plug-ins, JavaScript, and Netscape extensions.

-> The Tcl/Tk Plugin for Netscape and Internet Explorer lets you create Web pages that contain safe Tcl/Tk applets. The plugin is available for Solaris 2.x, Windows NT, Windows 95 and MacOS.

-> TclStream is a prototype implementation of a Tcl-based command stream in the Berkeley Continuous Media Toolkit (available as a Netscape plug-in).

-> (broken link) Netscape-Remote is a dynamically-loadable Tcl/Tk extension that can be used to communicate with the Netscape Navigator browser on Unix systems.

-> NeoWebScript is a server-side scripting environment based on Safe Tcl. It is available as a module for the popular Apache webserver, and adds server-side in-html-file programming.

-> ccitcl is a system based on Mosaic's Common Client Interface (CCI) to allow a Tcl/Tk application to be tightly coupled with the Mosaic Web browser. It is apparently still based on Tcl 7.3 and Tk 3.6.


Additional widgets


Misc. Info.


MAN pages and other documentation

Tcl8.0/Tk8.0 MAN pages (@ elf.org)

CUI's local copy of HTML-ized MAN pages (8.0) (compressed version, uncompressed version) Please, use the compressed version to save network bandwidth if your WWW viewer supports automatic decompression

CUI's local copy of HTML-ized MAN pages (7.6&4.2) (compressed version, uncompressed version)

CUI's local copy of old Tcl7.4 / Tk4.0 MAN pages (compressed version, uncompressed version)

CUI's local copy of old Tcl7.3 / Tk3.6 MAN pages (compressed version, uncompressed version)

Tk Widgets Very Quick Reference, by Eric Foster-Johnson

I have a copy of a quick reference guide for Tcl 7.4 / Tk 4.0 in Postscript: gzip-compressed version (46 Kbytes), uncompressed version (151 Kbytes).

Eric Foster-Johnson's Grid Layout Mini-Tutorial.

Clif Flynts' tutorial TclTutor

Paul Raines' Tcl 7.5 / Tk 4.1 Reference Guide in Postscript (44 pages): gzip-compressed version (183 Kbytes), uncompressed version (55 Kbytes). See ftp://ftp.slac.stanford.edu/software/TkMail/tkref-4.1.0.tar.gz for the original set of files.


Note: although it is not necessarily your domain of interest, you might still be interested in having a look at the WWW Virtual Library page that I maintain about Visual Languages and Visual Programming. My research group uses Tcl/Tk to implement the user interface of our visual programming tools.
If you would like to comment on or give us some suggestions about the information we're providing, you can do so by following this link .

Bertrand Ibrahim  (CUI)  [VP-SE]


Clearinghouse approved