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!cs.utexas.edu!uunet!wrkgrp!ets
From: ets@wrkgrp.COM (Edward T Spire)
Subject: Re: Why you should not use Tcl
Message-ID: <1994Sep27.204819.14604@wrkgrp.COM>
Followup-To: gnu.misc.discuss,comp.lang.tcl,comp.lang.scheme
Organization: The Workstation Group
X-Newsreader: TIN [version 1.2 PL2]
References: <9409232314.AA29957@mole.gnu.ai.mit.edu> <RV.94Sep25192903@cslab6b.cs.brown.edu> <id.2XBD1.L1G@nmti.com> <367cj1$bqt@admin5.hsc.uth.tmc.edu> <id.X3CD1.ICL@nmti.com>
Date: Tue, 27 Sep 94 20:48:19 GMT
Lines: 76
Xref: glinda.oz.cs.cmu.edu gnu.misc.discuss:18414 comp.lang.tcl:19449 comp.lang.scheme:10009

Peter da Silva (peter@nmti.com) wrote:
: In article <367cj1$bqt@admin5.hsc.uth.tmc.edu>,
: Jay Maynard <jmaynard@admin5.hsc.uth.tmc.edu> wrote:
: > Why do you consider REXX to be "a lot worse"? It has a not insignificant
: > following, and not a few visual development tools, at least on OS/2.

: It's a cramped language, 

On the contrary, Rexx is a small, simple language, with a few well-
chosen facilities.

: with no clean method for parsing/extending the code directly

What's important in a language, ease of implementation or ease of use?
Rexx's syntax was carefully chosen after much usage of prototypes by
alpha and beta users, and is optimized for ease of use, not ease of
implementation.

: and a hideously complex inter-language calling sequence. 

Come now, this must certainly be an implementation detail rather than
a part of the overall language design.

: Plus it's
: got a set of its own flaws, like giving uninitialised variables their name
: as their value (the only rational alternatives are to trap (I prefer this)
: or to yeild the null string).

The trap alternative is available within the language design, so use it.

: It's got too much syntax. I don't think an embedded language should have a
: whit more syntax than is absolutely necessary.

Now we're back to Stallman's original contention, that a "scripting"
language is too limitting, and you really want a language that can
stand up to heavy duty programming tasks.  Rexx has a good combination
of power, ease of use, string manipulation capability, external
environment control, and portability.  It is very well suited to
scripting tasks as well as to larger programming projects, and has a
long track record on several platforms to support this claim.

: It's got oddball primitives for string handling that don't match the UNIX
: hacker tools. PARSE is not nearly as capable as REGSUB.

Oddball?  Note that REGSUB appears quite odd to those who are coming to
Unix from other computing environments!  To cast aside a language design
because it's not what you are used to seems very short-sighted.  As
mentioned above, the string handling facilities in Rexx are designed
for ease of use, and to produce easily maintained code, something
which can hardly be said for the typical Unix hacker tool.

: No two platforms have implementations close enough to allow easy code porting.
: That's where Scheme falls down, too, alas.

Also untrue.  Mr. da Silva's experience with Amiga REXX is a bit out
of the mainstream; the author of that product had not even read the
base design document for the language before creating his version.
The variants that run on VM, MVS, MS/DOS, OS/2, Unix, NT, VMS, & Netware
all are quite portable, other than in the "commands issued to external
environments" (i.e., the OS).  And when the "external environment"
is something itself portable (such as the XEDIT editor) then scripts
are often portable with little or no change at all.  Non-scripts
(i.e., application programs) are usually very portable as well,
in that they do not contain any commands to external environments.

The just about completed ANSI standard for Rexx will further improve
portability.  When will the ANSI Tcl standards committee begin their
work?    ;-)

-Ed

-- 

========== The only fool bigger than one who is always right ===========
=============== is one who must argue with that person =================
Ed Spire                                                  ets@wrkgrp.com
