There are many extensions to the language that provide very nice
data abstraction. One that we use is [incr Tcl], also called itcl.
It provides an object oriented extension to Tcl with classes, methods,
private, public, and common data, etc. We've found it very nice and very
quick. Large Tcl programs can be written using this without running into
the mess that Stallman and others are claiming is inevitable.
Along these lines, ** ANY ** programming language can be used to develop
horrible, spaghetti code which constantly falls apart. LISP, Scheme, C,
C++, or any language, does not prevent you from writing poor functions, using
global variables, etc.
Tcl and its extensions are not the be all end all of languages. It is
a great language for small to medium projects and its Tk extension provides
quick and easy extensibility into adding GUI's to applications. Tcl is a good
glue (as Ousterhout says in his book) for putting together lots of applications
and uniting them with a GUI. This doesn't mean that everything has to be
written in Tcl. I've been developing LISP code for real systems since 1990
and have been writing C since 1987. I've learned that mono-language systems
might be good for small in-house efforts, but each language offers subtle
nuances that are very useful. Writing a system that incorporates C, Lisp,
Tcl, perl, etc. is not a bad thing.
-- =================================== Drew J. Asson AI Sr. S/W Engr - APSB Space Telescope Science Institute (410) 338-4474, Fax: (410) 338-1592 =================================== STScI: firstname.lastname@example.org Newton: DrewJAsson (@eworld.com) ===================================