Newsgroups: gnu.misc.discuss,comp.lang.tcl,comp.lang.scheme
Path: cantaloupe.srv.cs.cmu.edu!das-news.harvard.edu!news2.near.net!MathWorks.Com!europa.eng.gtefsd.com!howland.reston.ans.net!swrinde!pipex!news.maz.net!news.ppp.de!news.Hanse.DE!lutzifer.hanse.de!wavehh.hanse.de!cracauer
From: cracauer@wavehh.hanse.de (Martin Cracauer)
Subject: Re: Why you should not use Tcl
Message-ID: <1994Sep27.115139.17053@wavehh.hanse.de>
Organization: The Internet
References: <9409232314.AA29957@mole.gnu.ai.mit.edu> <3679ks$gn1@aurns1.aur.alcatel.com> <367pmt$qks$1@usenet.pa.dec.com> <3680s8$rn6@ursula.ee.pdx.edu>
Date: Tue, 27 Sep 94 11:51:39 GMT
Lines: 66
Xref: glinda.oz.cs.cmu.edu gnu.misc.discuss:18374 comp.lang.tcl:19403 comp.lang.scheme:9974

marcus@ee.pdx.edu (Marcus Daniels) writes:

>paik@mlo.dec.com (Samuel S. Paik) writes:

>>RMS almost certainly advocates the 'big complex system' for GNU.

>RMS almost certainly advocates GNU becoming a `big complex system'.

Don't think so. He want people not to use a very limited languages,
want them to use a more powerful one. The more powerful language may
be more complex, but this doesn't lead to a more complex system.

It is certainly a more complex system where you mix many different
programming languages. Tcl is not intended to be used for big
projects. So, if you started with a little project and it grows, what
are you supposed to do? At one point you will have to use two
different languages, you have to maintain you libararies in two
languages, you have to follow the development of the tools for two
languges. If you finally move your entire work to the new language,
then you have to maintain interfaces to your old friends still using
the simple one. Not to mention that you have to rewrite you old
libaries and tools (OK, I usually an happy to rewrite my environment
every too years :-).

I don't advocode Lisp dialects to be the right substitute for Tcl, but
you could have look at the environment of the Lisp Machines to get an
impression how a system looks like that is both powerful and not 'the
big complex system'. Lisp is one enables that can be used to write
code that: 
- Can be used to write efficient, native-machine-compiled code 
- Can be used in command-line-interpreters like shells

UNIX is the other side. *Every* UNIX system uses at least these levels
of languages:
- C-language system- and library-calls
- Executables to map these calls to something useful for interactive work
- sheels to start these execuables

How many executables on you UNIX system are really not more than
wrappers to system calls? Many. Waste of programming time.

If you had a language that fits both for system-level-programmang
*and* interactive shell-like work, you had to write each routine only
once, as a call. No need for commandline-wrappers.

What happens now: Many people realise, that C is too low-level to make
Tk-like fast prototyping real. Unix shells rarely can do anything
useful without the wrappers to the C-library-calls. So a third level
is introduced, scripting languages like perl and tcl.

To make it worse, one of the most widly used languages of that level,
tcl, offers not much more power than a UNIX shell, therefore
introducing a new level of languages to the system without beeing
really better that the old shell-level.

I consider this to lead to more complex system without doing anything
really useful.

Therefore, Richard Stallman's statement regarding tcl is one step to
prevent systems from becoming too complex, IMHO.

Martin
-- 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Martin.Cracauer@wavehh.hanse.de, Fax. +49 40 5228536, German language accepted
 No guarantee for anything. Anyway, this posting is probably produced by one 
 of my cats stepping on the keys. No, I don't have an infinite number of cats.
