Path: utzoo!utgpu!jarvis.csri.toronto.edu!cs.utexas.edu!uwm.edu!dogie.macc.wisc.edu!decwrl!granite.pa.dec.com!mwm From: mwm@raven.pa.dec.com (Mike (Real Amiga have keyboard garages) Meyer) Newsgroups: comp.sys.amiga.tech Subject: Re: Tcl - Tool command language Message-ID: Date: 3 Mar 90 23:21:31 GMT References: <5213@sugar.hackercorp.com> <132344@sun.Eng.Sun.COM> <363@stcvax.STORTEK.COM> <5232@sugar.hackercorp.com> Sender: news@decwrl.dec.com Organization: Missionaria Phonibalonica Lines: 69 In-reply-to: peter@sugar.hackercorp.com's message of 3 Mar 90 02:26:44 GMT In article <5232@sugar.hackercorp.com> peter@sugar.hackercorp.com (Peter da Silva) writes: In article mwm@raven.pa.dec.com (Mike (Real Amiga have keyboard garages) Meyer) writes: > Enough. The following two false statements have been made, and need to > be corrected. I'm sorry you interpreted my remarks as an attack on REXX. That was neither intended nor implied. I'm sorry if my casual and imprecise manner of writing has caused umprage. Let me take this opportunity to expand on my statements. No, I didn't interpret them as an attack on Rexx; I interpreted them as statements made in error. I was attempting to correct those; and not to attack either you or TCL. And I didn't post twice to make the point even harsher - that was a stupid mistake. >> REXX syntax and structure is based on that of PL/I, which is fine. Rexx also has better simple string handling capabilities than TCL. Rexx has string operators as part of the basic language, TCL has "string match" & "format", giving it a lot more power than than raw Rexx. > 2) "ARexx requires the programmer to provide a scripting language." OK, Arexx requires the programmer to provide a command line interpreter. String parser of some kind, which for most applications will be a command line interpreter. Look at treewalk & RexxPlPlot for counterexamples, though. TCL is a fine command line interpreter. REXX -- meet TCL. TCL -- meet REXX. From the looks of things, it should be straightforward to build a TCL/Rexx package that allows one to send Rexx messages to hosts from a TCL program, and to process Rexx messages in TCL. Since TCL (at least, the docs in the copy I have say this) doesn't yet have IP, there's not much point in doing the opposite. However, what get's passed to a TCL "client" command looks an awful lot like a Rexx RXFUNC message. Following through on that to make the AmigaTCL IP use Rexx messages would give TCL isntant access to RexxArpLib & the like. Such facilities may already be in AmigaTCL, though... What's interesting is that the two languages were meant for such similar applications, and it shows - yet they are such different languages. Rexx has stemmed variables (associative, multi-level arrays), and strings that can be processed along the lines of a TCL list. TCL does real lists & pointers instead. Both have a way of evaluating strings as expressions. TCL does C-like strings, with some extra magic for dealing with filenames. Rexx is more a mini-snobol for strings. Both have a way of accessing variables from calling environments (and neither shows it at the point of the call - bleah). That the two languages are radically different means different applications would be better off with one or another - or maybe even both (especially if MinRexx & Tcl_CreateCommand can be convinced to use the same data struture). It'd be nice to have a collection of programs that had both interfaces - or were available with both, just to play with the two. Someone want to post a version of FreeDraw with a TCL interface, and samples to duplicat Tomas's Rexx scripts? That'd be a good start. Treewalk, Nag, an emacs-like editor & fiveinline with TCL hooks (ok, I haven't released the Rexx-ported version yet) would also be nice to see.