I don't know who this Richard Stallman guy is, but he doesn't like TCL.
Why you should not use Tcl
Richard Stallman, GNU Project
As interest builds in extensible application programs and tools, and some
programmers are tempted to use Tcl, we should not forget the lessons learned
from the first widely used extensible text editor--Emacs.
The principal lesson of Emacs is that a language for extensions should not
be a mere "extension language". It should be a real programming language,
designed for writing and maintaining substantial programs. Because people
will want to do that!
Extensions are often large, complex programs in their own right, and the
people who write them deserve the same facilities that other programmers
rely on.
The first Emacs used a string-processing language, TECO, which was
inadequate. We made it serve, but it kept getting in our way. It made
maintenance harder, and it made extensions harder to write. Later Emacs
implementations have used more powerful languages because implementors
learned from the problems of the first one.
Another lesson from Emacs is that the way to make sure an extension facility
is really flexible is to use it to write a large portion of the ordinary
released system. If you try to do that with Tcl, you will encounter its
limitations.
Tcl was not designed to be a serious programming language. It was designed
to be a "scripting language", on the assumption that a "scripting language"
need not try to be a real programming language. So Tcl doesn't have the
capabilities of one. It lacks arrays; it lacks structures from which you can
make linked lists. It fakes having numbers, which works, but has to be slow.
Tcl is ok for writing small programs, but when you push it beyond that, it
becomes insufficient.
Tcl has a peculiar syntax that appeals to hackers because of its simplicity.
But Tcl syntax seems strange to most users. If Tcl does become the "standard
scripting language", users will curse it for years--the way people curse
Fortran, MSDOS, Unix shell syntax, and other de facto standards they feel
stuck with.
For these reasons, the GNU project is not going to use Tcl in GNU software.
Instead we want to provide two languages, similar in semantics but with
different syntaxes. One will be Lisp-like, and one will have a more
traditional algebraic syntax. Both will provide useful data types such as
structures and arrays. The former will provide a simple syntax that hackers
like; the latter will offer non-hackers a syntax that they are more
comfortable with.
Some people plan to use Tcl because they want to use Tk. Thankfully, it is
possible to use Tk without Tcl. A Scheme interpreter called STk is already
available. Please, if you want to use Tk, use it with STk, not with Tcl. One
place to get STk is from ftp.cs.indiana.edu:pub/scheme-
repository/imp/STk-2.1.tar.Z