Re: Why Tcl is a Bad Thing

Niels P. Mayer (mayer@leland.Stanford.EDU)
7 Oct 1994 17:50:15 GMT

In article <372mul$> (Brent Welch) writes:
>>>>Bill Janssen said:
>Bill, *flame on*, you are ignorant!

>The market
>is C programmers that have used UNIX shells. The market is not Lisp
>machine hackers. The leap from C and UNIX shells to Tcl is not a hard one.
>The plethora of extension packages (C libraries with a Tcl interface) is
>testimony to the success of Tcl, even in comparison to something like
>Python, as wonder a "language" as it is.

The market goes after capabilities not languages. Granted, a lot of
capabilities are available in TCL/Tk, mostly because it is a free and
unrestricted implementation, while other competing languages/toolkits may
cost money, have licensing restrictions, etc. Yes, I'm sure there's
something good behind Tcl/Tk that has spawned this grass-roots movement,
but it certainly isn't the quality of Tcl the language nor Tk the
toolkit. Basically, it gets the job done, albeit with brute force and a
complete lack of elegance.

There are also factors "behind" MS-DOS as a defacto standard, but it has
nothing to do with it's quality as an operating system.

Your statement "the market is not Lisp machine hackers" seems pretty
off-the-wall. There are plenty of Lisps out there that make good extension
languages. Given an environment that supports the facilities people need,
even the most stalwart C-head will use Lisp. The large "after market" of
extensions in GNU Emacs and AutoCAD are good examples of this.

Like I said previously, I wouldn't be arguing against Tcl/Tk if it simply
existed "out there" on the net without it's delusions of grandeur, without
a need for "world domination". But with talk of standardizing safe-Tcl as
an interapplication communication language and Sun's support for Tcl
looming on the horizon, it's time to speak up.

>Tk is probably the best window system toolkit available for X.

You've got to be kidding! I'll take OSF/Motif any day over Tk. In addition
to being a standard toolkit, it is a hell of a lot easier to decouple Motif
from any language it is embedded in, since it is a standalone C
library. Meanwhile, Tk is muddled with a bunch of TCL cruft. Every time I
run a Tk application on my otherwise Motif desktop, it sticks out like a
sore thumb -- both because it completely ignores all the global resource
customizations heeded by all real Motif applications, and because it
"feel"s different in terms of functionality, key-bindings, focus behavior,
internationalization, resolution-independence, etc.

Yes, Tk is "free", but I don't really care because I get Motif "for free"
with any workstation/OS I'd ever consider using for delivering product. And
it is supported, product-quality code, not an ever-changing hack that
claims it has Motif look-and-feel but really just has Motif look.

Yes, there are a number of Tk widgets out there. BUt there's also a nice
after-market for Motif widgets as well, both product and free.

As far as I can tell, the only place Tk is worth using is for users that
feel the need to continue using SunOS 4.1.3 and "OpenWindows", since Sun
did such a good job of making sure that Motif doesn't run on OpenWindows
(they shipped the system with a major bug that just "happens" to make the X
server croak when you use Motif, unless you get a patch that they released
later). This seems like a pretty reasonable conspiracy given that Sun was
busy pushing OpenLook at the time, and would do just about anything to
sabotage Motif. I see Sun's announced support of Tcl/Tk as their
last-ditch attempt at stabbing OSF in the back. If so, Tcl/Tk's popularity
is a pyrrhic victory if I've ever seen one.

>I think it boils down to the "offensive syntax" for you. You just
>can't handle it. As you say, this is a matter of taste.

I think it's a lot more than syntax. Yes, the syntax is braindamaged, but
so are the language semantics. THe fact that syntax and semantics are
intertwined in interpretive languages (especially when doing metalevel
extensions) makes TCL more than offensive. It's an abomination.

-- Niels.