Penguin
Diff: HowToTclTkHOWTO
EditPageHistoryDiffInfoLikePages

Differences between current version and predecessor to the previous major change of HowToTclTkHOWTO.

Other diffs: Previous Revision, Previous Author, or view the Annotated Edit History

Newer page: version 3 Last edited on Monday, October 25, 2004 5:07:58 am by AristotlePagaltzis
Older page: version 2 Last edited on Friday, June 7, 2002 1:07:39 am by perry Revert
@@ -1,1556 +1 @@
-  
-  
-  
-The Linux Tcl and Tk HOWTO  
-  
-  
-  
-----  
-  
-!!!The Linux Tcl and Tk HOWTO  
-  
-!!Luca Rossetti  
-lukaros@tin.itv0.2, 07 November 1998  
-  
-  
-----  
-''This document describes the Linux approach to Tcl, a scripting langua  
-ge.  
-It is an easy to learn interpreted language that uses a typeless approach to  
-achieve a higher level of programming and a rapid application development.  
-The Tk toolkit is a programming environment for creating graphical user interf  
-aces  
-(GUI) under X Window System. Their capabilities include the possibility to  
-extend and embed in other application, rapid development and ease of use. Toge  
-ther,  
-Tcl and Tk provide many benefits both to application developer and user. Tk-ba  
-sed  
-interfaces tend to be much more customizable and dynamic than those built with  
-one of the C or C++ based toolkits. Tk implements the Motif look and feel.  
-A great number of interesting X applications are implemented entirely in Tk,  
-with no new application-specific commands at all.''  
-----  
-  
-  
-  
-  
-!!1. Introduction  
-  
-  
-****1.1 Purpose of this document  
-  
-****1.2 What you should know before reading  
-  
-****1.3 New versions of this document  
-  
-****1.4 Revision History  
-  
-****1.5 Feedback and other stuff  
-  
-****1.6 Credits  
-  
-****1.7 Distribution Policy  
-  
-  
-  
-  
-  
-!!2. Tcl/Tk History  
-  
-  
-****2.1 Cronology  
-  
-  
-  
-  
-  
-!!3. What is Tcl/Tk  
-  
-  
-****3.1 What is Tcl?  
-  
-****3.2 What is Tk?  
-  
-****3.3 Extensions  
-  
-****3.4 Supported Platforms  
-  
-  
-  
-  
-  
-!!4. Installing and getting started with Tcl and Tk  
-  
-  
-****4.1 Downloading the Core Distributions  
-  
-****4.2 Installation  
-  
-****4.3 The Contributed Archive  
-  
-****4.4 Mirror Sites  
-  
-****4.5 Which Releases to Use  
-  
-****4.6 Where to report problems, bugs, or enhancements  
-  
-  
-  
-  
-  
-!!5. Just a little bit of Programming  
-  
-  
-****5.1 The one-minute program in Tcl  
-  
-  
-  
-  
-  
-!!6. Scripting Language: pros and cons  
-  
-  
-****6.1 Some of the most common complaints about Tcl  
-  
-****6.2 Some of the most pros about Tcl  
-  
-  
-  
-  
-  
-!!7. Most Famous Programs using Tcl/Tk  
-  
-  
-  
-  
-!!8. References  
-  
-  
-****8.1 Books  
-  
-****8.2 Manual and On-line Tutorials  
-  
-****8.3 World Wide Web sites  
-  
-****8.4 Other documents & Frequently Asked Questions  
-  
-****8.5 Newsgroup  
-  
-  
-  
-  
-  
-!!9. Tcl/Tk License Terms  
-----  
-  
-!! 1. Introduction  
-  
-  
-  
-  
-  
-This is the Linux Tcl and Tk HOWTO. It is intended as a Linux reference  
-covering everything you should know concerning installation, configuration  
-and an introduction to development under Tcl and Tk. History and some pros  
-and cons about Tcl and Tk under Linux are analized, and references are given  
-to many other sources of information on a variety of topics related to this  
-simple but powerful scripting language.  
-  
-  
-If you ever rebuilt your Linux kernel inside X using the command  
-----  
-  
-make xconfig  
-  
-----  
-  
-  
-you surely managed to face the strenght of this simple but powerful scripting  
-language.  
-  
-  
-After executing the first step of kernel rebuilding, a script called kconfig.tk  
-is executed via wish (the Tcl intepreter). The Linux Kernel Configuration wind  
-ow  
-appears. Instead of answering a series of questions, this X-based configuratio  
-n  
-utility allows you to use checkboxes to select which kernel options you want  
-to enable.  
-  
-  
-The system stores your last configuration options so that every time you  
-run it, you need only to add or remove some checks and you don't need to reent  
-er  
-the whole set of option. Moreover you can fill the whole (or part of the) list  
-of kernel option the order you want. After this simplified step you can rebuil  
-d  
-your kernel in the traditional way.  
-  
-  
-There's actually another famous case. Have you ever used "printtool"  
-? (Printer Config Tool (C) Copyright 1994 by  
-Red Hat Software - author: Michael  
-Callahan).  
-If you installed a Red Hat distribution you happily managed to  
-use it to set up printing services . Well, printtool front-end is mainly a  
-Tcl/Tk script.  
-  
-  
-For those who don't know Red Hat let me tell you how you can easily configure  
-your printers just filling some textboxes and filling in some checkboxes.  
-  
-  
-The program itself takes care of setting up printing services through the  
-creation of spooling directory, writes /etc/printcap file and the printer's  
-filter, reloads lpd and tests your filter with ascii or postscript pages. It  
-allows you manipulate ghostscript options (i.e. choose up to 8 pages per outpu  
-t  
-page and setting margins), has an help-on-line and many more features.  
-  
-  
-What is the difference compared to other service-printing implementation?  
-  
-  
-Everything is achieved by using Tcl/Tk as a "glue" between consolidated  
-application and operating with normal Linux configuration files in a visual  
-and interactive window under X-Window. No new application-specific commands  
-were written at all.  
-  
-!!1.1 Purpose of this document  
-  
-  
-  
-  
-  
-  
-Currently the purpose of the document is limited to giving initial references  
-to Linux users; in future versions I will try to incorporate a small "Programm  
-ing  
-Tutorial".  
-Let me state that again: this is not (and doesn't want to substitute)  
-an omnicomprehensive "user manual" or "reference" for Tcl and Tk development  
-and programming - it's just a starting point for Linux users.  
-  
-  
-The author's concept of reference manual coincides with the definition  
-of man pages and many people learn Tcl/Tk from these basic source of informati  
-on.  
-These files are a part of the source code distribution and are installed on  
-your Linux box. You will be able to access the Tcl/Tk manual pages through  
-the man command.  
-  
-  
-Many structured and complete programming tutorials have been written in  
-order to let the new user begin hacking with Tcl/Tk; tons of other material  
-are available in the Internet. Interpreting Tcl/Tk philosophy I won't try to  
-reinvent the wheel, I will manage to glue the huge amount of material already  
-available.  
-  
-  
-I suggest you to have a look at the other documents listed in the  
-References section in order to find where to retri  
-eve  
-specific information about Tcl and Tk.  
-  
-!!1.2 What you should know before reading  
-  
-  
-  
-  
-  
-  
-In order to understand the abc of Tcl/Tk you shouldn't be a programming-guru,  
-command sintax is very simple. Basically you have to be familiar with:  
-  
-  
-****simple programming concepts;  
-****  
-  
-****using very common unix commands and/or utilities;  
-****  
-  
-****having access to the Internet;  
-****  
-  
-****using ftp.  
-****  
-  
-  
-!!1.3 New versions of this document  
-  
-  
-  
-  
-  
-  
-Newer versions of this document will be uploaded to ftp site:  
-ftp://sunsite.unc.edu/ pub/Linux/HOWTO/  
-and will be available on all other mirrors.  
-  
-  
-Hypertext and other versions of this and other Linux HOWTOs are available  
-mainly at  
-sunsite.unc.edu/LDP/lpd.ht ml  
-and  
-www.linux-howto.com and on  
-many other Mirror World-Wide-Web sites.  
-  
-  
-I will try to incorporate in  
-my Web-Page the most  
-recent html and sgml version of the document. Most Linux CD-ROM distributions  
-include the HOWTOs, often in a subdir of /usr/doc/ directory, and you can also  
-buy printed copies from several vendors.  
-  
-  
-Sometimes the HOWTOs available from CD-ROM vendors, ftp sites, and in hardcopy  
-format are out of date. If the date on this HOWTO is more than six months in  
-the past, then a newer copy is probably available on the Internet.  
-  
-  
-If you make a translation of this document into another language, drop  
-me a line and I'll include a reference to it here.  
-  
-!!1.4 Revision History  
-  
-  
-  
-  
-  
-  
-****__Version .1__: 28 October 1998 - first version;  
-****  
-  
-****__Version .2__: 07 November 1998 - deep restyling and lifting.  
-****  
-  
-  
-!!1.5 Feedback and other stuff  
-  
-  
-  
-  
-  
-  
-I rely on you, the reader, to make this HOWTO useful. If you have any suggestio  
-ns,  
-corrections, or comments, please send them to me, (  
-Luca Rossetti ), and I will try to  
-put them in the next revision.  
-  
-  
-If any of the links mentioned in this document becomes unavailable or changes,  
-please notify me immediately so that I can update and/or remove the link.  
-  
-  
-I am willing to answer general questions about Tcl/Tk and Linux as best  
-as I can. Before doing so, please read all of the information in this HOWTO,  
-and send me detailed information about the problem.  
-  
-  
-If you publish this document on a CD-ROM or in hardcopy form, a complimentary  
-copy would be really appreciated. E-mail me and I will send you back my postal  
-address.  
-  
-  
-In many section I mention publishing companies or commercial URL sites:  
-I really don't work for these guys.  
-  
-!!1.6 Credits  
-  
-  
-  
-  
-  
-  
-Most of the information in this HOWTO comes from Dr. Ousterhout's  
-Scriptics and Larry W. Virden  
-comp.lang.tcl FAQs  
-.  
-  
-  
-I would like to thank the  
-PLUTO Italian Linux User Group  
-and the whole volunteers of  
-ILDP (Italian Linux Document  
-ation  
-Project) especially Eugenia Franzoni and Giovanni Bortolozzo for their feedbac  
-k.  
-  
-!!1.7 Distribution Policy  
-  
-  
-  
-  
-  
-  
-This document is Copyright 1998 by  
-Luca Rossetti.  
-  
-  
-This document is distributed in the hope that it will be useful to the  
-reader: of course it is considered to be without any warranty; without even  
-the implied warranty of merchantability or fitness for a particular purpose.  
-This HOWTO is free documentation; you can redistribute it and/or modify it  
-under the terms of the  
-LDP COPYRIGHT  
-.  
-  
-  
-Please read the  
-LDP Manifesto  
-for more details.  
-----  
-  
-!!2. Tcl/Tk History  
-  
-  
-  
-  
-  
-Tcl/Tk originated with  
-Dr. John Ousterhout (pronounced  
-"Oh'-stir-howt") while teaching at University of California, Berkeley, Califor  
-nia.  
-He actually started implementing it when he got back to Berkeley in the spring  
-of 1988; by summer of that year it was in use in some internal applications,  
-but there was no Tk. Read about the history of Tcl/Tk directly from its author  
-'s  
-words at  
-www.scripti cs.com/scripting/tclHistory.html.  
-  
-!!2.1 Cronology  
-  
-  
-  
-  
-  
-  
-****__1989:__ The first external releases of Tcl and beginning of Tk imp  
-lemention;  
-****  
-  
-****__1991__: First release of Tk;  
-****  
-  
-****__1994:__ Dr. Ousterhout was hired by Sun Microsystems, Inc.: he was  
-a Distinguished  
-Engineer and led the Tcl project.  
-****  
-  
-****__April/May 1997:__ the Sun research group responsible for Tcl devel  
-opment  
-were spun off into a Sun business group called !SunScript. However, things chan  
-ged  
-again soon afterwards. You can read more about that evolution selecting "!SunSc  
-ript_story"  
-at URL:  
-Su nScript-Story .  
-****  
-  
-****__August 1997:__ a Tcl Consortium was formed.  
-****  
-  
-****__February 1998:__ Dr. Ousterhout left Sun to create  
-Scriptics, a company dedicated  
-to scripting tools, applications, and services. According to  
-www.scriptics.com /about/news/qa.html,  
-core Tcl and Tk remain free, with the team at Sun continuing work right now  
-on Tcl/Tk 8.1. After the next release, the intention is that work on the core  
-will migrate from Sun to Scriptics, with the Sun team will focus more on Tcl  
-extensions and applications.  
-****  
-  
-****__April 23, 1998:__ the Association for Computing Machinery  
-ACM awarded the 1997 Software System  
-Award to John Ousterhout and Scriptics (  
-www.acm.org/awards/). This award  
-is given to an institution or individual recognized for developing a software  
-system that has had a lasting influence, reflected in contributions to concept  
-s,  
-in commercial acceptance, or both.  
-****  
-  
-----  
-  
-!!3. What is Tcl/Tk  
-  
-  
-  
-  
-!!3.1 What is Tcl?  
-  
-  
-  
-  
-  
-  
-Tcl is the acronym for "Tool Command Language" (it is pronounced "tickle").  
-Tcl is actually divided into two things: a language and a library.  
-  
-  
-Tcl is a simple textual programming language, intended for issuing commands  
-to interactive programs such as text editors, debuggers and shells. It has  
-a simple syntax and it is also programmable.  
-  
-  
-Tcl users can write command procedures to provide more powerful commands  
-than those given in the built-in set.  
-  
-  
-Second, Tcl is a library package embeddable in applications. The Tcl library  
-consists of a parser for the Tcl language, routines to implement the Tcl built  
--in  
-commands, and procedures which allow each application to extend Tcl with addit  
-ional  
-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 interfa  
-ce,  
-such as menu entries, buttons, and other widgets. When the Tcl library receive  
-s  
-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 make recursive invocation  
-s  
-of the Tcl interpreter by passing in additional strings to execute (in fact  
-procedures and conditional-looping commands all work in this way). An applicat  
-ion  
-program can obtain many advantages by using Tcl for its command language:  
-  
-  
-****Tcl provides a standard syntax: once users know Tcl, they will be able  
-to issue commands easily to any Tcl-based application.  
-****  
-  
-****Tcl succeeds to provides programmability. All a Tcl application needs to  
-do is to implement a few application-specific low-level commands. Tcl provides  
-many utility commands and a general programming interface for building up comp  
-lex  
-command procedures. By using Tcl, applications need not reimplement these feat  
-ures.  
-  
-****  
-  
-****Extensions to Tcl, such as the Tk toolkit, provide mechanisms for communi  
-cating  
-between applications by sending Tcl commands back and forth. The common Tcl  
-language framework makes it easier for applications to communicate with one  
-another.  
-****  
-  
-  
-  
-It is important to note that Tcl was designed thinking that the programmer  
-should actually use two or more languages when designing large software system  
-s.  
-One for manipulating complex internal data structures, or where performance  
-is important, and another, such as Tcl, for writing very small scripts that  
-glue together the other pieces, providing hooks for the user to extend.  
-  
-  
-For the Tcl script writer, ease of learning, ease of programming and ease  
-of gluing are more important than performance or facilities for complex data  
-structures and algorithms.  
-  
-  
-Tcl was designed to make it easy to drop into a lower language when you  
-come across tasks that make more sense at a lower level. In this way, the basi  
-c  
-core functionality can remain small and one need only bring along pieces that  
-one particular wants or needs.  
-  
-  
-One answer to "What is Tcl?" can be found at  
-www.!NeoSoft.com/tcl /whatistcl.html  
-.  
-  
-!!3.2 What is Tk?  
-  
-  
-  
-  
-  
-  
-Tk (pronounced "tee-kay") is an extension to Tcl which provides the programmer  
-with an interface to the X11 windowing system . Note that Tk has been successf  
-ully  
-compiled under X11 R4, X11 R5, X11 R6, as well as Sun's NeWS/X11 environments.  
-  
-  
-  
-  
-  
-Many users will encounter Tcl/Tk via the "wish" command. Wish is a simple  
-windowing shell which permits the user to write Tcl/Tk applications in a proto  
-typing  
-environment.  
-  
-  
-At present Tcl/Tk cannot handle Japanese, Chinese, Korean, .... language  
-fonts.  
-  
-!!3.3 Extensions  
-  
-  
-  
-  
-  
-  
-Since Tcl is so easy to extend, many try to share extensions, including  
-the popular itcl,  
- [[incr Tcl ],  
-!ObjectTcl, TclX,  
-Tix , and  
-BLT.  
-  
-  
-These extensions, of course, require an extended Tcl interpreter. Moreover,  
-many Tcl free applications require a particular Tcl extension to run.  
-  
-  
-One of the most popular extension is called  
-Expect.  
-It allows you to place a  
-friendly front-end inside most command-line based UNIX applications, such as  
-ftp, telnet, rlogin, passwd, fsck, and so on.  
-  
-  
-A complete list of Tcl/Tk extensions can be found at URL  
-www.scr iptics.com/resource/software/extensions/.  
-  
-!!3.4 Supported Platforms  
-  
-  
-  
-  
-  
-  
-This section contains information about Tcl 8.0 and Tk 8., the most recent  
-version of Tcl/Tk. They were originally released on August 18, 1997 and the  
-most recent patch releases (8..3) were made on September 3, 1998.  
-  
-  
-When you download Tcl and Tk you get two programs, wish and tclsh, supporting  
-script libraries, and on-line reference documentation. These programs are gene  
-ral  
-purpose platforms for writing applications with Tcl. Wish includes the graphic  
-al  
-user interface toolkit Tk. The packages are ready to use after installation.  
-  
-  
-  
-  
-  
-Tcl 8.0 and Tk 8.0 run on most releases of the following operating systems:  
-  
-  
-  
-  
-  
-****Windows 95  
-****  
-  
-****Windows NT  
-****  
-  
-****Solaris and SunOS  
-****  
-  
-****Linux  
-****  
-  
-****HP-UX  
-****  
-  
-****SGI  
-****  
-  
-****IRIX  
-****  
-  
-****Digital Unix  
-****  
-  
-****AIX  
-****  
-  
-****SCO Unix  
-****  
-  
-****Most other Unix-like operating systems Macintosh (68K and Power Mac)  
-****  
-  
-****Pre-compiled releases are available for different Linux distribution.  
-****  
-  
-----  
-  
-!!4. Installing and getting started with Tcl and Tk  
-  
-  
-  
-  
-  
-Most modern distribution include Tcl and Tk. Rpm and deb packages with  
-precompiled binaries are avalaible for Red Hat, SuSE and Debian distributions  
-(that'll make installation easier).  
-  
-  
-A modern distribution standard installation will include Tcl/Tk as it is  
-needed by many configuration tools running mainly under X.  
-  
-  
-Tcl and Tk are distributed freely in source form via the Internet. There  
-are no restrictions on their use and no licenses or royalties are needed (see  
-the  
-license.terms section for complete information).  
-  
-  
-  
-  
-  
-Many more Tcl/Tk scripts and extensions are also available freely.  
-  
-!!4.1 Downloading the Core Distributions  
-  
-  
-  
-  
-  
-  
-The Tcl/Tk core consists of the Tcl and Tk libraries, plus the wish and  
-tclsh applications, associated documentation, script libraries, and demonstrat  
-ive  
-applications. The primary FTP site for this information is  
-ftp.scriptics.com/pub/tcl/.  
-  
-  
-  
-  
-  
-The primary HTTP site is  
-www.scriptics. com/software/download.html .  
-  
-!!4.2 Installation  
-  
-  
-  
-  
-  
-  
-Unless already available for your Distribution in proprietary packages  
-you'll want to download the source release. You'll need both Tcl and Tk source  
-s.  
-This procedure refers to the second case.  
-  
-  
-Choose between compressed tar and gzipped tar format.  
-  
-  
-Compressed Tar Files  
-  
-  
-Tcl sources (tcl8..3.tar.Z): compressed tar file (about 2.4 Mbytes). Tk  
-sources (tk8..3.tar.Z): compressed tar file (about 3.3 Mbytes).  
-  
-  
-Gzipped Tar Files  
-  
-  
-Tcl sources (tcl8..3.tar.gz): gzipped tar file (about 1.5 Mbytes). Tk  
-sources (tk8..3.tar.gz): gzip'ed tar file (about 2.1 Mbytes).  
-  
-  
-When you retrieve one of these files, you will get a compressed tar file  
-with a name like tcl8..3.tar.gz or tcl8..3.tar.Z. The files are identical  
-except for the technique used to compress them (.gz files are generally smalle  
-r  
-than .Z files).  
-  
-  
-To unpack the distribution, invoke shell commands like the following, depending  
-on which version of the release you retrieved:  
-----  
-  
-gunzip -c tcl8..3.tar.gz  
-  
-----  
-  
-  
-or  
-----  
-  
-tar xf - zcat tcl8..3.tar.Z  
-  
-----  
-  
-  
-or  
-----  
-  
-tar xf - unzip tcl80.3.zip  
-  
-----  
-  
-  
-Each of these commands will create a directory named tcl8..3, which includes  
-the sources for all platforms, documentation, and the script library for Tcl  
-8.. To compile and install the distribution, follow the instructions in the  
-README file in the distribution directory. Be sure to compile Tcl before Tk,  
-since Tk depends on information in Tcl.  
-  
-!!4.3 The Contributed Archive  
-  
-  
-  
-  
-  
-  
-There are many other freely available packages for Tcl and Tk, including  
-both scripts written in Tcl and extensions written in C or C++. These packages  
-include database applications and network access, a graphical user interface  
-builder, the expect program, additional Tk widgets, and dozens of other things  
-.  
-The primary site for the Tcl/Tk archive is  
-ftp.neosoft.com/pub/tcl.  
-  
-!!4.4 Mirror Sites  
-  
-  
-  
-  
-  
-  
-Several other sites around the world mirror the whole or part of the material  
-from the core site and the contributed archive; you may find more useful to  
-retrieve information from a mirror site that is close to you.  
-  
-  
-Ftp file "_mirror" at:  
-ftp.scriptics.com/pub/tcl/  
-for a list of the mirror sites in your country.  
-  
-!!4.5 Which Releases to Use  
-  
-  
-  
-  
-  
-  
-Always refer to newer recommended version in section "Tcl/Tk Core" of the  
-  
-  
-  
-Scriptics Soft ware Central page.  
-  
-  
-At the time of this writing, recommended releases are the latest (Tcl 8..3  
-and Tk 8..3), which were released in September, 1998. Tcl 8.0 contains a new  
-bytecode compiler that can speed up execution by a factor of 2-10x. It also  
-provides namespaces, binary I/O, and several other new features.  
-  
-  
-Tk 8.0 is the first release to provide native look and feel on Macintoshes  
-and PCs. Tk 8.0 also supports application embedding and has a new portable  
-font mechanism. Both Tcl 8.0 and Tk 8.0 provide additional features in the  
-Safe-Tcl security model.  
-  
-!!4.6 Where to report problems, bugs, or enhancements  
-  
-  
-  
-  
-  
-  
-Use  
-comp.lang.tcl for public communicati  
-ons.  
-  
-  
-The alternative would be to send problems, suggestions, new ideas, etc.  
-directly to the author. Email to  
-John Ousterhout will reach the  
-author of Tcl and Tk.  
-  
-  
-When reporting problems or bugs, be sure to mention all the details needed  
-for a correct diagnosis. Basically you will have to describe what hardware,  
-operating system and version of Tcl/Tk you are using, if you have made any  
-modification or add on and provide, if possible, either a small piece of code,  
-or a URL to some code which demonstrates the problem.  
-  
-  
-If you have software from which you think the community might benefit (either  
-a program, function, extension, or simple example), or you have a document,  
-magazine or journal article, thesis, project, or even commercial advertisement  
-,  
-be sure to let the appropriate guys know.  
-  
-  
-There are FAQ maintainers for each of these areas as well as a  
-comp.lang.tcl.announce  
-newsgroup you can use.  
-  
-  
-It is always worthwhile to submit your contributions directly to the ftp  
-site so more folk in the future can benefitthanks to your experience.  
-  
-  
-To make announcements to the  
-comp.lang.tcl.announce  
-newsgroup, send email with the details to  
-tcl-announce. Also, feel  
-free to just point folk at your own ftp site or WWW site if you have one which  
-can be used .  
-----  
-  
-!!5. Just a little bit of Programming  
-  
-  
-  
-  
-  
-Since Tcl is an interpreted language, to run a Tcl program (also called  
-a script), you normally pass the script file to the Tcl interpreter, wish,  
-for example:  
-----  
-  
-wish hello.tcl  
-  
-----  
-  
-  
-You can also use wish in interactive mode and type in commands at the command  
-line.  
-  
-  
-There's another standard Tcl interpreter, tclsh, which only understands  
-the Tcl language. Tclsh does not have any of the Tk user interface commands,  
-so you cannot create graphical programs in tclsh.  
-  
-  
-Some Tcl freeware applications extend the Tcl language by adding new commands  
-written as C functions. If such is the case, you need to compile the applicati  
-on  
-instead of just passing its Tcl code to the wish interpreter. This application  
-program, from a Tcl perspective, is really a new version of the wish interpret  
-er,  
-which the new C commands linked in. Of course, the application program may  
-be a lot more than merely a Tcl interpreter. (Note: you can also use Tcl's  
-auto-loading capability on systems that support it.)  
-  
-!!5.1 The one-minute program in Tcl  
-  
-  
-  
-  
-  
-  
-Tcl has a simple structure. Each line starts out with a command, such as  
-button and a number of arguments. Each command is implemented as if it was  
-a C function. This function is responsible for handling all the arguments.  
-  
-  
-  
-  
-  
-As a very standard example, the following is the Hello World program in  
-Tcl/Tk:  
-----  
-  
-# This is a comment  
-button .b -text "Hello World" -command exit  
-pack .b  
-  
-----  
-  
-  
-In this case you have to type the commands interactively to tclsh or wish.  
-  
-  
-You can also place command into script files and invoke these just like  
-shell scripts. To do this for the previous example, rewrite the Hello World  
-program as follows:  
-----  
-  
-#! /usr/local/bin wish -f  
-button .b -text "Hello World" -command exit  
-pack .b  
-  
-----  
-  
-  
-Put the text inside a file called Hello and make sure that wish is installed  
-in /usr/local/bin (otherwise you will have to change opportunely the path).  
-  
-  
-Make the file Hello executable issuing the command  
-----  
-  
-chmod 775 Hello  
-  
-----  
-  
-  
-and run it inside X.  
-  
-  
-You will see a button labelled Hello World inside a window: clicking it  
-will close (exit) the window.  
-----  
-  
-!!6. Scripting Language: pros and cons  
-  
-  
-  
-  
-  
-To understand the importance and the future of Tcl/Tk I strongly suggest  
-to point your web browser at the URL  
-www.scriptics .com/people/john.ousterhout/  
-by  
-John K. Ousterhout . You  
-will read about the importance and the comparison between scripting (in langua  
-ges  
-such as Tcl) and system programming (in languages such as C and Java).  
-  
-  
-To read a document about comparisons see  
-the comparison discussion.  
-  
-  
-Here's a summary of the most important pros and cons about Tcl/Tk.  
-  
-!!6.1 Some of the most common complaints about Tcl  
-  
-  
-  
-  
-  
-!Tcl is interpreted  
-  
-  
-  
-  
-  
-The data is primarily treated as strings, programs written in Tcl are slow.  
-Tcl 8.x attempts to address this by doing some degree of compilation as well  
-as permitting additional variable types.  
-  
-!Several characteristics are not intuitive  
-  
-  
-  
-  
-  
-Comments are commands rather than traditional comments, numbers beginning  
-with 0 are octal, proper use of quoting mechanisms, etc. These aspects are  
-covered in the various FAQs.  
-  
-!!6.2 Some of the most pros about Tcl  
-  
-  
-  
-  
-  
-!It is a high-level scripting language  
-  
-  
-  
-  
-  
-You need to write a lot less code to get your job done, especially when  
-compared to Motif or Win32 applications. In general, the number of Line Of  
-Code (LOC) of a software project is one of the most important complexity index  
-es.  
-  
-  
-  
-  
-!Tcl is free  
-  
-  
-  
-  
-  
-You can get the sources for free over the Internet from Scriptics Download  
-Page or from the FTP site for Tcl.  
-The software c ore site  
-includes the source code version, as well as binary versions for Windows and  
-Macintosh platforms; or, you can get Tcl on a number of CD-ROMs for a nominal  
-cost.  
-  
-  
-Read about Tcl and Tk core free at  
-www.scriptics.com/about/n ews/qa.html .  
-  
-!It runs on many platforms  
-  
-  
-  
-  
-  
-Versions exist for UNIX (Linux... of course), Windows and Macintosh. Except  
-for a few platform differences, your Tcl scripts will run the same way on all  
-systems.  
-  
-!It is interpreted  
-  
-  
-  
-  
-  
-You can execute your code directly, without compiling and linking (though  
-Tcl compilers are available).  
-  
-!It is extensible  
-  
-  
-  
-  
-  
-It's easy to add your own commands to extend the Tcl language. You can  
-write your commands in C or Tcl.  
-  
-!It is embeddable in your applications  
-  
-  
-  
-  
-  
-The Tcl interpreter is merely a set of C functions that you can call from  
-your code. This means you can use Tcl as an application language, much like  
-a macro language for a spreadsheet application.  
-  
-!Tcl/Tk is Year 2000 (Y2K) compliant  
-  
-  
-  
-  
-  
-Read what the creator of the Tcl and Tk core tells about this topic  
-www.scriptics.com/Y2K.html  
-.  
-  
-  
-  
-----  
-  
-!!7. Most Famous Programs using Tcl/Tk  
-  
-  
-  
-  
-  
-Apart from the two implementation described in the  
-Introduction, there are many applications writte  
-n  
-in Tcl/Tk or a combination of Tcl and C. A complete list where to look for  
-these implementation is the  
-part 4  
-of the frequently-asked questions on Tcl/Tk (FAQs). I suggest you to visit  
-  
-  
-  
-Scriptics' Softwar e Central.  
-  
-  
-Another good starting point is  
-www.!NeoSoft.com/tcl/.  
-  
-  
-One of the best Tcl applications running under Linux is called  
-!TkDesk  
-a window manager and application launcher that works very well.  
-  
-  
-If you're a Tcl/Tk Linux developer, feel free to  
-send me a URL (and a description of  
-the work) that I can link to in here.  
-----  
-  
-!! 8. References  
-  
-  
-  
-  
-  
-For many reasons people often like having a hard-copy manual as a reference  
-or like to be helped by other folks online.  
-  
-  
-Here you can find a selection of reference books, tutorials, www-sites  
-and newsgroup.  
-  
-!!8.1 Books  
-  
-  
-  
-  
-  
-  
-Many books concerning Tcl/Tk were written and are to be published. I won't  
-even try to list them all (__another howto woudn't be enough for that__ :  
-) ). You  
-can find much more information plus additional notes at:  
-  
-  
-****  
-www.tcltk.com/consortium/resources/books.html  
-****  
-  
-****  
-www.amazon.com/exec/obidos/subst/categories/computer-programming/tcl-tk-article/002-8989352-4516417  
-****  
-  
-****Page: tcl_books.html at URL  
-starbase-neosoft-tcl-books  
-****  
-  
-  
-  
-Here I will try to summarize with some notes the book I know concerning  
-the subject, they're all at a basic-medium level. Again, people who know the  
-subject, have enough information about where to find advanced level books.  
-  
-  
-  
-  
-!Tcl and the Tk Toolkit  
-  
-  
-  
-  
-  
-Author:  
-John K. Ousterhout  
-  
-WWW book information:  
-cseng.aw.com/bookdetail.qry?ISBN=%2D201%2D63337%2DX&ptype=  
-  
-Book's examples:  
-ftp.script ics.com/pub/tcl/doc/book.examples.Z  
-  
-Book suppliment:  
-www.scriptics.com/doc/tk 4..ps  
-  
-The book primarily covers Tcl 7.3 and Tk 3.6.  
-  
-!Practical Programming in Tcl and Tk, II ed.  
-  
-  
-  
-  
-  
-Author:  
-Brent Welch  
-  
-WWW book information:  
-www.beedub.com/book/  
-  
-Book's table of contents:  
-www.beedub.com/book/  
-  
-Book promotion info at section_50000.html of the URL  
-www.borders.com/sections/  
-  
-This updated edition describes Tcl / Tk 8.0 as it was during the beta period.  
-Along with the material from the first edition, it also covers sockets, packag  
-es,  
-namespaces, a great section describing the changes in Tcl 7.4, 7.5, 7.6, and  
-8.0 (and Tk as well), Safe Tk and the Plugin!  
-  
-!Tcl and Tk Reference Manual  
-  
-  
-  
-  
-  
-Editors: Donald Barnes,  
-Marc Ewing, Erik Troan  
-  
-  
-WWW book information:  
-www.lsl.com/catalog/bo oks/tcltk/  
-!The Visual TCL Handbook, 1/e  
-  
-  
-  
-  
-  
-Author:  
-David Young  
-  
-WWW book information:  
-www.amazon.com/exec/obidos/ISBN=013461674X/u/7141-5908756-107481  
-  
-A comprehensive guide to Visual TCL. This book leads reader from basic  
-graphical user interface development concepts to meaningful application develo  
-pment.  
-The book focuses on the TCLX and VT extensions, addressing many fundamental  
-TCL topics. VT is a Motif based graphical interface, incompatible with Tk.  
-The entire TCL language is documented in a separate Commands section. Comes  
-with a CD-ROM that includes SGI, Solaris, HP-UX, AIX and Unixware versions  
-of Visual Tcl.  
-  
-!Running LINUX  
-  
-  
-  
-  
-  
-Author: Matt Welsh and Lar Kaufman  
-  
-  
-WWW book information:  
-www.ora.com/ca talog/runux2/noframes.html  
-  
-Running Linux is a really well written basic book. It has a chapter on  
-programming using Tcl/Tk. (and Perl, C, C++).  
-  
-!Tcl/Tk for Dummies (For Dummies)  
-  
-  
-  
-  
-  
-Author: Timothy Webster, with Alex Francis  
-  
-  
-WWW book information:  
-www.dummies.com/  
-  
-Another one of the series of the paperback programming books. This one  
-focuses on the Tcl plugin as a programming environment.  
-  
-!Interactive Web Applications With Tcl/Tk  
-  
-  
-  
-  
-  
-Authors: Michael Doyle Hattie Schroeder  
-  
-  
-WWW book information:  
-www.eolas.com/tcl/  
-  
-This is a learning by example book, for people who know a bit of programming,  
-but are not experts. It covers developing applets as well as stand-alone appli  
-cations  
-and simple server applications. The book comes with the Spynergy toolkit, whic  
-h  
-adds a variety of pure Tcl/Tk procedures for distributed processing, URL retri  
-eval,  
-HTML rendering, database management and platform independent file managment,  
-Ed, a Tcl editor and testing environment, an image conversion tool, a demo  
-of Tk features, a client/server version of a rolodex application, a pure Tcl  
-web server, a client/server push application, a tcl web browser,  
-  
-!!8.2 Manual and On-line Tutorials  
-  
-  
-  
-  
-  
-  
-****John Ousterhout has written an engineering style guide that describes the  
-coding, documentation, and testing conventions that will be used at Sun in  
-the coding of the C code in the Tcl core and has made it available to other  
-Tcl and Tk developers. It is located at  
-ftp.script ics.com/pub/tcl/doc/engManual.tar.Z  
-****  
-  
-****A second style guide, covering the writing of Tcl scripts, can be found  
-at  
-ftp.scr iptics.com/pub/tcl/docs/styleGuide.tar.gz.  
-Other versions of it can be found at  
-sunscript.su n.com/techcorner/styleGuide.ps.  
-****  
-  
-****  
-A brief introduction to TCL/TK by  
-David Martland  
-****  
-  
-****Another tutorial untitled  
-User interfaces with Tcl/T kwas  
-written by  
-Fintan Culwin .  
-****  
-  
-****Although you should have your Tcl/Tk manual pages on your system, here's  
-another place where to look for  
-TCL Manual Pa ges (from TCL7.4)-Tk Manual Pages (from TK4.).  
-****  
-  
-****  
-The Tcl/Tk Cookbook offe  
-rs  
-a lot of getting-started information.  
-****  
-  
-  
-!!8.3 World Wide Web sites  
-  
-  
-  
-  
-  
-  
-There are a great number of WWW resources which provide additional information  
-about many aspects of Tcl and its extensions.  
-  
-  
-****Refer to  
-Tcl-FAQs (pa rt2)  
-for a great number of pointers to Tcl/Tk documentation and web sites.  
-****  
-  
-****Point your web browser at  
-Tcl/Tk Information : a site with many  
-links to !TclTk resources on the web (Information, Extensions, Tools, Training  
-and Events).  
-****  
-  
-****Point your Web browser at  
-The Official Contributed Sources A rchive  
-for the Tool Command Language (Tcl) and the Tk Toolkit, hosted by !NeoSoft,  
-Inc.  
-****  
-  
-****  
- For a discussion dealing with the pros and cons  
-of the major scripting languages :  
-article in !SunWorld  
-by  
-Cameron Laird  
-****  
-  
-****A web page that contains a variety of comparisons between Tcl/Tk and othe  
-r  
-similar systems. Most of them are taken from "comp.lang.tcl", the author would  
-be happy to add any other important article that you folks want to send to  
-him.:  
-Comparison  
-by  
-Wayne Christopher.  
-****  
-  
-****  
-E.J. Friedman-Hill's Tcl/Tk Course:  
-this document is available only in !PowerPoint source form and in low-quality  
-HTML form (in HTML format all the figures and some of the text is missing).  
-****  
-  
-  
-!!8.4 Other documents & Frequently Asked Questions  
-  
-  
-  
-  
-  
-  
-A lot of material is available on the Internet: introductory papers, white  
-papers, tutorials, slides, postscript versions of published books in draft  
-and many more.  
-  
-  
-For a complete reference please give a look at the excellent  
-Tcl-FAQs .  
-  
-!!8.5 Newsgroup  
-  
-  
-  
-  
-  
-  
-  
-comp.lang.tcl is an unmoderated Usenet  
-newsgroup, created for the discussion of the Tcl programming language and tool  
-s  
-that use some form of Tcl, such as the Tk toolkit for the X window system,  
-Extended Tcl, and expect.  
-  
-  
-For Tcl/Tk related announcements always refer to  
-comp.lang.tcl.announce : you  
-will find release announcement, patches, new application and so on.  
-  
-  
-Again, faq could be retrieved at  
-Tcl-FAQs.  
-----  
-  
-!! 9. Tcl/Tk License Terms  
-  
-  
-  
-  
-  
-The following terms apply to the all versions of the core Tcl/Tk releases,  
-the Tcl/Tk browser plug-in version 2., and !TclBlend and Jacl version 1..  
-Please note that the !TclPro tools are under a different license agreement.  
-This agreement is part of the standard Tcl/Tk distribution as the file named  
-"license.terms".  
-  
-  
-TCL/TK LICENSE TERMS  
-  
-  
-This software is copyrighted by the Regents of the University of California,  
-Sun Microsystems, Inc., Scriptics Corporation, and other parties. The followin  
-g  
-terms apply to all files associated with the software unless explicitly discla  
-imed  
-in individual files.  
-  
-  
-The authors hereby grant permission to use, copy, modify, distribute, and  
-license this software and its documentation for any purpose, provided that  
-existing copyright notices are retained in all copies and that this notice  
-is included verbatim in any distributions. No written agreement, license, or  
-royalty fee is required for any of the authorized uses. Modifications to this  
-software may be copyrighted by their authors and need not follow the licensing  
-terms described here, provided that the new terms are clearly indicated on  
-the first page of each file where they apply.  
-  
-  
-IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY FOR  
-DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT  
-OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY DERIVATIVES THEREOF,  
-EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  
-  
-  
-THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES, INCLUDING,  
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR  
-A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THIS SOFTWARE IS PROVIDED ON AN  
-"AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE NO OBLIGATION TO PROVIDE  
-MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.  
-  
-  
-GOVERNMENT USE: If you are acquiring this software on behalf of the U.S.  
-government, the Government shall have only "Restricted Rights" in the software  
-and related documentation as defined in the Federal Acquisition Regulations  
-(FARs) in Clause 52.227.19 (c) (2). If you are acquiring the software on behal  
-f  
-of the Department of Defense, the software shall be classified as "Commercial  
-Computer Software" and the Government shall have only "Restricted Rights" as  
-defined in Clause 252.227-7013 (c) (1) of DFARs. Notwithstanding the foregoing  
-,  
-the authors grant the U.S. Government and others acting in its behalf permissi  
-on  
-to use and distribute the software in accordance with the terms specified in  
-this license.  
-  
-  
-  
-----  
+Describe [HowToTclTkHOWTO ] here.