home *** CD-ROM | disk | FTP | other *** search
Text File | 1999-06-06 | 39.8 KB | 1,057 lines |
- The Linux Tcl and Tk HOWTO
- Luca Rossetti lukaros@tin.it <mailto:lukaros@tin.it>
- v0.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 applica¡
- tion 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
-
-
- 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
- <http://www.redhat.com> - 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/
- <ftp://sunsite.unc.edu/Linux/docs/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
- <http://sunsite.unc.edu/LDP/lpd.html> and www.linux-howto.com
- <http://www.linux-howto.com> and on many other Mirror World-Wide-Web
- sites.
-
- I will try to incorporate in my Web-Page
- <http://space.tin.it/computer/tlqhr/> 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 0.1: 28 October 1998 - first version;
-
- ╖ Version 0.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 <mailto:lukaros@tin.it> ), 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 <http://www.scriptics.com> and Larry W. Virden
- comp.lang.tcl FAQs <http://www.tclfaq.wservice.com/tcl-faq/> .
-
- I would like to thank the PLUTO <http://www.pluto.linux.it/> Italian
- Linux User Group and the whole volunteers of ILDP
- <http://www.pluto.linux.it/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
- <mailto:lukaros@tin.it>.
-
-
- 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
- <http://sunsite.unc.edu/LDP/LDP-COPYRIGHT.html> .
-
- Please read the LDP Manifesto <http://sunsite.unc.edu/LDP/LDP-
- Manifesto.html> for more details.
-
- 2. Tcl/Tk History
-
-
- Tcl/Tk originated with Dr. John Ousterhout
- <mailto:ouster@scriptics.com> (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 words at www.scripti
- cs.com/scripting/tclHistory.html
- <http://www.scriptics.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. You can read more abou t
- it, including how to join, who currently serves on the board of
- directors, and so on by visi ting Tcl Consortium
- <http://www.tclconsortium.org/>;
-
- ╖ February 1998: Dr. Ousterhout left Sun to create Scriptics
- <http://www.scriptics.com/>, a company dedicated to scripting
- tools, applications, and services. According to www.scriptics.com
- /about/news/qa.html < http://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
- <http://www.acm.org/> awarded the 1997 Software System Award to
- John Ousterhout and Scriptics ( www.acm.org/awards/
- <http://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 <http://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] <http://www.tcltk.com/itcl/>,
- ObjectTcl, TclX, Tix <http://tix.mne.com/>, and BLT
- <http://www.tcltk.com/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
- <http://expect.nist.gov>. 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/
- <http://www.scriptics.com/resource/software/extensions/>.
-
- 3.4. Supported Platforms
-
-
- This section contains information about Tcl 8.0 and Tk 8.0, the most
- recent version of Tcl/Tk. They were originally released on August 18,
- 1997 and the most recent patch releases (8.0.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/
- <ftp://ftp.scriptics.com/pub/tcl/>.
-
-
- The primary HTTP site is www.scriptics. com/software/download.html
- <http://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.0.3.tar.Z): compressed tar file (about 2.4 Mbytes).
- Tk sources (tk8.0.3.tar.Z): compressed tar file (about 3.3 Mbytes).
-
- Gzipped Tar Files
-
- Tcl sources (tcl8.0.3.tar.gz): gzipped tar file (about 1.5 Mbytes). Tk
- sources (tk8.0.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.0.3.tar.gz or tcl8.0.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.0.3.tar.gz
- ______________________________________________________________________
-
-
-
- or
-
- ______________________________________________________________________
- tar xf - zcat tcl8.0.3.tar.Z
- ______________________________________________________________________
-
-
-
- or
-
- ______________________________________________________________________
- tar xf - unzip tcl80.3.zip
- ______________________________________________________________________
-
-
-
- Each of these commands will create a directory named tcl8.0.3, which
- includes the sources for all platforms, documentation, and the script
- library for Tcl 8.0. 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 <ftp://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 "0_mirror" at: ftp.scriptics.com/pub/tcl/
- <ftp://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
- <http://www.scriptics.com/software/download.html>.
- At the time of this writing, recommended releases are the latest (Tcl
- 8.0.3 and Tk 8.0.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 < news.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
- <mailto:Ouster@scriptics.com> 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 <news:news.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
- <news:news.comp.lang.tcl.announce> newsgroup, send email with the
- details to tcl-announce <mailto:tcl-announce@mitchell.org>. 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/
- <http://www.scriptics.com/people/john.ousterhout/> by John K.
- Ousterhout <mailto:ouster@scriptics.com>. 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
-
-
- 6.1.1. 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.
-
- 6.1.2. 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
-
-
- 6.2.1. 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.
-
-
- 6.2.2. 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
- <http://www.scriptics.com/software/download.html> 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 <www.scriptics.com/about/news/qa.html> .
-
- 6.2.3. 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.
-
- 6.2.4. It is interpreted
-
-
- You can execute your code directly, without compiling and linking
- (though Tcl compilers are available).
-
- 6.2.5. 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.
-
- 6.2.6. 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.
-
- 6.2.7. 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 <http://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 <http://www.tclfaq.wservice.com/tcl-faq/part4.html> of the
- frequently-asked questions on Tcl/Tk (FAQs). I suggest you to visit
-
- Scriptics' Softwar e Central
- <http://www.scriptics.com/resource/software/>.
-
- Another good starting point is www.NeoSoft.com/tcl/
- <http://www.NeoSoft.com/tcl/>.
-
- One of the best Tcl applications running under Linux is called TkDesk
- <http://people.mainz.netsurf.de/~bolik/tkdesk/> a window manager and
- application launcher that works very well.
-
- If you're a Tcl/Tk Linux developer, feel free to send me
- <mailto:lukaros@tin.it> 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.
-
-
- 8.1.1. Tcl and the Tk Toolkit
-
-
- Author: John K. Ousterhout <mailto:ouster@scriptics.com>
-
- WWW book information:
- cseng.aw.com/bookdetail.qry?ISBN=0%2D201%2D63337%2DX&ptype=0
-
- Book's examples: ftp.script ics.com/pub/tcl/doc/book.examples.Z
- <ftp://ftp.scriptics.com/pub/tcl/doc/book.examples.Z>
-
- Book suppliment: www.scriptics.com/doc/tk 4.0.ps
- <http://www.scriptics.com/doc/tk4.0.ps>
-
- The book primarily covers Tcl 7.3 and Tk 3.6.
-
- 8.1.2. Practical Programming in Tcl and Tk, II ed.
-
-
- Author: Brent Welch <mailto:welch@acm.org>
-
- WWW book information: www.beedub.com/book/
- <http://www.beedub.com/book/>
-
- Book's table of contents: www.beedub.com/book/
- <http://www.beedub.com/book/>
-
- Book promotion info at section_50000.html of the URL
- www.borders.com/sections/ <http://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!
-
- 8.1.3. Tcl and Tk Reference Manual
-
-
- Editors: Donald Barnes, Marc Ewing <mailto:marc@redhat.com>, Erik
- Troan
-
- WWW book information: www.lsl.com/catalog/bo oks/tcltk/
- <http://www.lsl.com/catalog/books/tcltk/>
-
- 8.1.4. The Visual TCL Handbook, 1/e
-
-
- Author: David Young <mailto:david@inforef.com>
-
- WWW book information:
- www.amazon.com/exec/obidos/ISBN=013461674X/u/7141-5908756-107481
- <http://www.amazon.com/exec/obidos/ISBN=013461674X/u/7141-5908756-1074
- 81>
-
- 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.
-
- 8.1.5. Running LINUX
-
-
- Author: Matt Welsh and Lar Kaufman
-
- WWW book information: www.ora.com/ca talog/runux2/noframes.html
- <http://www.ora.com/catalog/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++).
-
- 8.1.6. Tcl/Tk for Dummies (For Dummies)
-
-
- Author: Timothy Webster, with Alex Francis
-
- WWW book information: www.dummies.com/ <http://www.dummies.com/>
-
- Another one of the series of the paperback programming books. This one
- focuses on the Tcl plugin as a programming environment.
-
- 8.1.7. Interactive Web Applications With Tcl/Tk
-
-
- Authors: Michael Doyle Hattie Schroeder
-
- WWW book information: www.eolas.com/tcl/ < http://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
- <ftp://ftp.scriptics.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
- <ftp://ftp.scriptics.com/pub/tcl/docs/styleGuide.tar.gz>. Other
- versions of it can be found at sunscript.su
- n.com/techcorner/styleGuide.ps
- <http://sunscript.sun.com/techcorner/styleGuide.ps>.
-
- ╖ A brief introduction to TCL/TK
- <http://http2.brunel.ac.uk:8080/~csstddm/TCL2/TCL2.html>by David
- Martland < mailto:csstddm@brunel.ac.uk>
-
-
- ╖ Another tutorial untitled User interfaces with Tcl/T k
- <http://www.scism.sbu.ac.uk/tkteach/>was written by Fintan Culwin
- <mailto:fintan@sbu.ac.uk>.
-
- ╖ 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.0)
- <http://cuiwww.unige.ch/eao/www/TclTkMan/Man.html>.
-
- ╖ The Tcl/Tk Cookbook <http://www.cis.rl.ac.uk/proj/TclTk/> 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) <http://www.tclfaq.wservice.com/tcl-
- faq/part2.html> for a great number of pointers to Tcl/Tk
- documentation and web sites.
-
- ╖ Point your web browser at Tcl/Tk Information <http://www.tcltk.com>
- : a site with many links to TclTk resources on the web
- (Information, Extensions, Tools, Training and Events).
-
- ╖ Have a look at Tcl-Consortium <http://www.tclconsortium.org/> : a
- non-profit organization which promotes Tcl/Tk and supports the
- development community.
-
- ╖ Point your Web browser at The Official Contributed Sources A rchive
- <http://www.NeoSoft.com/tcl/> 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
- <http://www.sun.com/sunworldonline/swol-10-1997/swol-10-scripting.html
- > by Cameron Laird < mailto:claird@Starbase.NeoSoft.com>
-
- ╖ 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
- <http://icemcfd.com/tcl/comparison.html> by Wayne Christopher
- <mailto:wayne@icemcfd.com>.
-
- ╖ E.J. Friedman-Hill's Tcl/Tk Course
- <http://herzberg.ca.sandia.gov/TclCourse/>: 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
- <http://www.tclfaq.wservice.com/tcl-faq/> .
-
- 8.5. Newsgroup
-
-
-
- comp.lang.tcl <news: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 <news:comp.lang.tcl.announce> : you will find
- release announcement, patches, new application and so on.
-
- Again, faq could be retrieved at Tcl-FAQs
- <http://www.tclfaq.wservice.com/tcl-faq/>.
-
- 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.0, and TclBlend and
- Jacl version 1.0. 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.
-
-
-
-
-