[alt.sources] Tcl - a tool command language for Unix INTRO

karl@sugar.hackercorp.com (Karl Lehenbauer) (12/18/90)

Tcl is a freely redistributable string processing language and programming
environment for Unix and Xenix.  It is well suited to doing the sort of
programming tasks that are typically done as shell scripts and awk programs.

I have written several thousand lines and supervised the writing of nearly
twenty thousand lines of Tcl code over the last few months, and my experience
has been that programmers are enthusiastic about programming in Tcl, that they
are extraordinarily productive when using it, and that they come up to speed
on it very quickly -- thanks to its simple syntax, likeness to familiar Unix
and C language constructs, built-in programming environment, on-line help
facility, and thorough documentation, programmers have been able to learn
the language and be writing significant programs in it in only one day.

In my experience, Tcl has typically outperformed large shell scripts running
the usual mix and density of expr, sed, grep, awk, sort, etc, by a factor of
ten or more.  The execution time of one shell script at a customer site shrank
from an estimated 200 hours (they had never allowed it to run to completion)
to a little over five hours.

Tcl has also proven to be very useful when linked with an application to
provide a debugging environment during development.  It is a simple matter
to drop a Tcl interpreter into a program under development and to write a few
C routines whereby you can pass parameters from Tcl, call some piece of your
application, collect the results and return them back to Tcl.  This really
helps with testing and prototyping.  Also, Tcl command-controlled debugging
versions of memory allocation and free routines are included.  These routines
can greatly assist in finding bugs in your C code where your code writes past
the end or before the beginning of an allocated block.  They can also trace
allocations and frees by source file name and line number, break on the Nth
allocation, and more.  I think you will find that the endeavor of setting up
an application to include Tcl for debugging pays off the very first time
you need to find such a bug.

You can do a lot more with Tcl than what I've described here.  Some further
uses are described in the README document that comes with this release.

Mark Diekhans, Peter da Silva, Jordan Henderson and I built the Tcl programming
language and environment included in this package on top of the embeddable Tcl
interpreter created at the University Of California at Berkeley.  All source
code to the Tcl interpreter and our extensions are included in this package and
may be used for any purpose without license or royalties of any kind, subject
only to the requirement that Berkeley's copyright and our copyright messages
and liability disclaimers not be removed.

Here's one from us.

Karl Lehenbauer (uunet!sugar!karl)
December 16th, 1990

Following this message will be the README file, then the Tcl release as
a 12-part uuencoded, compressed cpio archive.  We realize this will
cause trouble for a few people, but see our rationale in the README
file.  We'll do a shar archive for the formal release.

-- 
-- uunet!sugar!karl
-- Usenet access: (713) 438-5018