[comp.sys.amiga] AREXX and ICP

randy@bcsaic.UUCP (Randy Groves) (01/01/70)

Once again the question:  What is the status of REXX??  Is it a product?  Is
it PD software?  How and when will it be available?  I've not seen anybody
who seems to know about the existence of this software that has mentioned 
even a hint of this info.

Thanks much.


-- 
-randy groves - Boeing Advanced Technology Center
UUCP:	..!uw-beaver!uw-june!bcsaic!randy     USNail: Boeing Computer Services
CSNET:	randy@boeing.com		              PO Box 24346 M/S 7L-68
VOICE:	(206)865-3424				      Seattle, WA   98124

jimm@mitsumi.UUCP (Jim Mackraz) (09/11/87)

	Now that our newsfeed is working, I am reposting these comments on
	Inter Process Communication and AREXX on the Amiga.  They are
	a little old.

	--------------------------------------------------------------

	Since I haven't sounded too supportive of WHawes AREXX project,
	I should clarify.

	For background to those even less knowledgable than I, AREXX is
	a powerful interpreted (i think) language which reminds many people
	in purpose of the C-shell script language, but is reported to be
	much more powerful.  The language program has the capability to
	send messages to applications, which if matched with applications
	which understand the messages, can give flexible "macro" capability.

	To understand the context and reason for my remarks, it is probably
	necessary to have been at the relevant BADGE meeting.  Part of my
	villian role comes from my missing a portion of that meeting.

	My comments, nevertheless, follow.

	I like the language part of REXX.  I think it does/will make a
	fine product.  I have problems with two things: 1) the unnecessary
	and (my view) unhealthy assumption that interprocess messages
	are somehow tied in to the rexx effort, and 2) the specifics proposed
	for the protocol of these messages.  For shorthand, refer to 
	inter-process messages which have some application meaning as IPC
	(inter process communication).

	On the first point, IPC is something that the amiga lacks, and surely
	needs.  A standard for receiving--and sending--messages and a library
	or device (or "server") to support this would be a great contribution.
	There is no reason, however, to think of AREXX as the only program to
	be sending such messages.  For example, if a 3-d object editor saves
	a videoscape 3d file to ram: and sends a message to videoscape to
	render it, there is no rexx in the picture.  As another example,
	I would like a PD (i.e., free) message sender/macro language ,
	instead of REXX, to be available.  Perhaps with a graphical interface
	instead of a more traditional language.  (Recall HyperCard.)

	Another example: if a spreadsheet program is asked to dump a
	section of the spreadsheet to the clipboard, (perhaps for use
	by a separate graphics program), when that section is later changed,
	perhaps a message of some broadcast type (or routed to the last user
	of clipboard data?) could be sent out as notification.  The graphics
	program could acquire the new data and be well on the way to 
	processing the new version of the previous graph in the background, and
	even be done before the moment that the user asks to see a graph
	of his new figures.  Again, no macro language here, just communication
	between programs, tuned to the concept of data interchange.

	On the second point, my problems are with the description of the
	message protocol Bill was proposing at BADGE.  First, there is no
	"common command set" of messages, such as "create a window," "create
	a new 'thing,'" "delete a thing," "refresh a thing," "save a thing,"
	or "send me a thing."  The reference article for the meeting was
	Bill Gates' contribution on "dynamic data exchange" in the BYTE
	supplement.  DDE has a common command set that would be a start.

	The absence of a common command set and some standard examples is one
	reason the Amiga clipboard is a practical failure.  The protocol
	proposal "can transmit anything, it's completely open," but remember the
	clipboard can "store anything," as well.  An extensible command set is
	better than a command set reinvented for each application.  Compare 
	the now standard contents of the "Project" menu.

	Secondly, the plan was to send IPC messages to a task's IntuiMessage port.
	1) This is not a public port.  Intuition does some weird things with
	its messages, and probably needs some work in that area.  
	2) It is better, from a flow of control point of view, and very easy,
	to service two ports.  The IPC port should be named subject to some clever
	conventions, and installed on a system list for public access.  Don't
	mess with Intuition's problems.

	I didn't follow the implementation plans regarding a "Rexx Message Server,"
	but I heard more about REXX than about servers in general.  For instance,
	suppose REXX (or my program) sends a message to a program that is in
	the process of closing down.  What then?  The program may well have
	completed clearing its window idcmp port, so any IPC message at that
	port is about to get deallocated.  A protocol for removing public ports
	from access before closing must be sure that messages do not get sent
	into space, and that they are always replied.

	It was proposed that inter-process data exchange would be accomplished
	with these messages, supplanting or in addition to clipboard support.
	This is very probably unecessary--the clipboard should suffice--and if
	unecessary, a very bad idea.

	There was discussion about REXX loading a program if a message was to
	be sent to it.  I didn't hear enough to know how a program would be
	unloaded.  What if, in pseudocode: DO 5 TIMES send message to dpaint ENDDO.
	Does this load dpaint 5 times?

	The worst thing I heard was that the execution environment of programs
	loaded by REXX would be yet different from both the CLI and the Workbench
	environments.  Just what the world needs, another condition in application
	start-up code.  The WB environment was described as inadequate, without
	justification.  (Slurs against the CLI environment need no further
	justification.)

	On this, I know we would all like to rewrite the AmigaOS from scratch,
	but the same reasons we couldn't do it at Commodore-Amiga apply in this
	case. And if those reasons need to be re-learned, let's not learn them
	at the expense of the IPC potential of the Amiga OS.

	This potential is truly great.  The excitement over this aspect of 
	AREXX is well founded, but a little misplaced.  The knowledge, talent,
	and efforts of the people working with AREXX are indeed critical
	to the success of a standard for Amiga IPC.  My claims are
	that this effort should not be tied to REXX, and that it should
	be more sensitive to the existing and future pieces of the system
	and the standard problems of IPC such as those I have indicated
	above.

	I welcome corrections and comments, and general discussion and proposals
	for general IPC.  If someone can summarize Microsoft's DDE, it might
	be food for thought.

							jimm
							{amiga!pyramid}!mitsumi!jimm

-- 
	Jim Mackraz
	Mitsumi Technology, Inc.
	{amiga,pyramid}!mitsumi!jimm

ewhac@well.UUCP (Leo 'Bols Ewhac' Schwab) (09/13/87)

** REPLACE THIS LINE WITH A TEN DOLLAR BILL AND RETURN IT TO THE SENDER **

	I attended the BADGE meeting where REXX was discussed.  As I
understood it, REXX can be thought of as nothing more that an intelligent
pipe device.  You feed it data, it does things to it, it spits the new data
out.  I get the feeling it's more than this, but I can't think what.

	Assuming it *is* just a smart pipe, then I think it should be
written as a device in the AmigaDOS filespace (like, maybe, REXX:).

	The objective of REXX is data exchange between programs, with REXX
converting the data format if necessary (at least, that's how I understand
it).  We already have a form of this.  It's RAM:.

	Now before you accuse me of being silly, think about it for a
moment.  All *CURRENTLY EXISTING* Amiga programs that read, manipulate, and
store data have one thing in common:  They all know how to talk to the
AmigaDOS filesystem.

	Currently, people who want to convert data from one format to
another save the data to RAM:, run a utility to convert it, and then load
the converted data into another program.

	So.  My idea was to make REXX an object in the AmigaDOS filespace,
with the following implementation details.  There would be REXX proper (the
actual language interpreter), and a REXX controller (language editor, which
feeds programs to REXX proper.  It'd have windows, gadgets, menus, etc.).
REXX proper would exist in the AmigaDOS filespace, and would receive control
messages from the REXX controller via standard Exec messages.  The message
packets would be documented, so that some other developer could create his
own controller, if need be.

	Now, here comes the good part.  REXX programs (under my scenario)
would have names associated with them.  To access these REXX programs from
"ordinary" programs, you would specify them as "filenames" existing on the
REXX: device.  Writing to this file (it's a file as far as outside programs
are concerned) would supply data to the input stream of the REXX program of
the same name.  Reading this file would provide the output the REXX program
generated.

	The type of scenario I'd like to see happen goes like this:  You
start up REXX proper, feeding a REXX program (we'll call it 'convert').
Next, you start up your favorite editor, and go to work on a program.
Eventually, you find the need for some graphic imagery in the form of source
code.  Using Super-Dooper multitasking, you start up DPaint, and create an
image.  You then grab it as a brush.  Then, you tell DPaint to save this
brush to a file called "REXX:convert".  DPaint happily does this, since it
can read and write files with no trouble.  REXX proper grabs this data, and
feeds it to the input of the 'convert' program.  You then go back to your
favorite editor, and ask it to insert into the current edit buffer the
contents of the file "REXX:convert".  The editor gleefully reads the stream.
Shortly thereafter, all this BOB source code magically appears on your
screen, converted directly from the brush ILBM by REXX.

	Have you noticed something about this?  I didn't have to rewrite
DPaint or my favorite editor to take advantage of this.  As it was presented
at the BADGE meeting, any program that wanted to take advantage of REXX
would have to have special code to do it.  You'd need to create special
message ports and code to deal with it all.  I think this is unnecessarily
shortsighted.  I believe my scenario has greater practical functionality, as
it requires *zero* modification of existing programs.

	The only thing that would be required of outside programs is that
they be able to read and write arbitrary chunks of data to a file.  I don't
know if existing spreadsheets can save arbitrary ranges of rows and columns;
I know that many editors/word procesors don't allow you to save arbitrary
chunks of text.

	Can anyone see any holes in my thinking?

In article <267@mitsumi.UUCP> jimm@mitsumi.UUCP (James Mackraz) writes:
>The worst thing I heard was that the execution environment of programs
>loaded by REXX would be yet different from both the CLI and the Workbench
>environments.  Just what the world needs, another condition in application
>start-up code.  The WB environment was described as inadequate, without
>justification.  (Slurs against the CLI environment need no further
>justification.)
>
	I agree with this assertion.  We don't need YA Startup Environment.
I've never written a "correct" Workbenchable program, because I perceive it
to be too much trouble.  If a third environment pops up, I'll probably crawl
into a hole somewhere.... :-)

	As always, this is just me talking.

_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
Leo L. Schwab -- The Guy in The Cape	ihnp4!ptsfa -\
 \_ -_	 Bike shrunk by popular demand,	      dual ---> !{well,unicom}!ewhac
O----^o	 But it's still the only way to fly.  hplabs / (pronounced "AE-wack")
"Work FOR?  I don't work FOR anybody!  I'm just having fun."  -- The Doctor

ali@rocky.STANFORD.EDU (Ali Ozer) (09/13/87)

In article <3939@well.UUCP> ewhac@well.UUCP (Leo 'Bols Ewhac' Schwab) writes:
>	I attended the BADGE meeting where REXX was discussed.  As I
>understood it, REXX can be thought of as nothing more that an intelligent
>pipe device.  You feed it data, it does things to it, it spits the new data
>out.  I get the feeling it's more than this, but I can't think what.

At the Desktop Publishing Conference here in Santa Clara Tom Rokicki was
showing AmigaTeX, with the newest features. One thing he did was to 
load a TeX file into (his own REXXified version of) mg, then hit ESC-T.
This caused the currently selected region of text to get sent to TeX, 
which processed the incoming TeX commands and sent them over to the previewer
as soon as a page was ready. Thus, you had instant previewing (next best
thing to wysiwyg TeX). The communication between the programs was all done 
with REXX. (For all you TeXies out there, I don't think this version is 
being released yet, so don't ask him how to get this (like I did 8-) ).
But I was happy to finally see REXX in action (as at the BADGE meeting 
we hadn't seen it actually working).

Of course, the above could've been possible without the use of REXX as well.
He would've still needed to hack up mg a bit. But, with REXX, you have the
capability to talk to any REXX compatible program, and any other editor
(TxED, for instance, which I understand has a REXX port?) could be used to
replace mg. Or that's what it sounds like to me.

>	Assuming it *is* just a smart pipe, then I think it should be
>written as a device in the AmigaDOS filespace (like, maybe, REXX:).

That's the problem I see with REXX --- If it sells as a seperate commercial
product, I can't see it getting too successful. (A label on the package
says "Requires 512K Amiga, 1.2 KickStart. AREXX recommended.") And what 
happens when the user gets REXX? "Copy the AREXX program from the REXX
disk to your TeX disk. Then edit your startup-sequence file and..."
Maybe every developer that wants to use it should get a license to include 
it with his/her program? That's a bit messy too. You can also understand
the author's attempt at making money off the program (he's also the
person who brought us conman). Maybe C-A should look at
the product, and if they decide it's useful and worthwhile enough, they
should buy all rights to it? No? Any solutions?

Ali Ozer, ali@rocky.stanford.edu

peter@sugar.UUCP (09/14/87)

In article <267@mitsumi.UUCP>, jimm@mitsumi.UUCP (Jim Mackraz) writes:
> 	start-up code.  The WB environment was described as inadequate, without
> 	justification.  (Slurs against the CLI environment need no further
> 	justification.)

Well I, for one, would like to see some justification for slurs against the
CLI *program* environment. It seems to be pretty much a superset of the WB
one. I don't know about you, but I like having standard input and standard
output around...

Now, it might be too hard to emulate. Apropos of which...

Since you seem to know so much about it: how do you use Execute to run a CLI
program in a window and actually get control back when the program finishes?
I always end up with a CLI hanging around until I do and ENDCLI.
-- 
-- Peter da Silva `-_-' ...!hoptoad!academ!uhnix1!sugar!peter
--                 'U`      ^^^^^^^^^^^^^^ Not seismo!soma (blush)

UH2@PSUVM.BITNET (Lee Sailer) (09/14/87)

One side issue.  REXX is the name of the IBM mainframe equivalent of
Unix shell script programming.  Maybe y'all can think of a differnt
name for this beast?
     

peter@sugar.UUCP (09/15/87)

> [LEO describes a great device, REXX:]

Hey, Leo, I love it, but...

why not try to take advantage of the wealth of UNIX-based and UNIX-type
filters already around.

First of all, PIPE: should be able to do the job:

Save as "PIPE:name1"

In your CLI do "2> rexx <pipe:name1 >pipe:name2 using programname".

In your editor read "pipe:name2".

not so hot, is it. OK, do this...

Save as "CLI:name2/rexx using programname".

CLI: would talk to a CLI through a randomly named pipe and start up a CLI
with Input()=randompipe and Output()=PIPE:name2.

It's gotta be possible. Matt Dillon's DTERM does it.

Then you can do this:

Save as "CLI:awk/awk 'something_awful { and more awkward junk }'".

To handle cases when you want to read again from the same program you just
wrote, add an alternate name "BUFFERCLI:" or "TANK:".

Thanks for the idea... I know some people realy dump on the CLI... but
since it's there, why not use it?
-- 
-- Peter da Silva `-_-' ...!hoptoad!academ!uhnix1!sugar!peter
--                 'U`      ^^^^^^^^^^^^^^ Not seismo!soma (blush)

cmcmanis%pepper@Sun.COM (Chuck McManis) (09/15/87)

In article <20098UH2@PSUVM> UH2@PSUVM.BITNET (Lee Sailer) writes:
>One side issue.  REXX is the name of the IBM mainframe equivalent of
>Unix shell script programming.  Maybe y'all can think of a differnt
>name for this beast?

The point being that AREXX is *just like* REXX on the IBM mainframes.
This was the whole point of it in the first place. So if you know
REXX you know AREXX and vice versa sort of. I get the feeling that
what I think REXX is, what Leo thinks it is, and what Jim think it
is are all different and all wrong. We have a definite marketing problem
here. [I've never used REXX on a mainframe, but friends I trust assure
me AREXX is just like it]. 



--Chuck McManis
uucp: {anywhere}!sun!cmcmanis   BIX: cmcmanis  ARPAnet: cmcmanis@sun.com
These opinions are my own and no one elses, but you knew that didn't you.

peter@sugar.UUCP (09/16/87)

In article <581@rocky.STANFORD.EDU>, ali@rocky.STANFORD.EDU (Ali Ozer) writes:
> Of course, the above could've been possible without the use of REXX as well.
> He would've still needed to hack up mg a bit. But, with REXX, you have the
> capability to talk to any REXX compatible program, and any other editor
> (TxED, for instance, which I understand has a REXX port?) could be used to
> replace mg. Or that's what it sounds like to me.

Why re-invent the wheel?

Pipes have been shown over the past 13 years to be a reliable and convenient
way of providing filters for all manner of disparate applications. The same
thing is available to every one of you, right now, using the "save to pipe"
capability in vnews. You can take this message and feed it through an awk
program, or a while pipeline, just by entering:

s|program<CR>

Why not do the same thing in an analogous manner on the Amiga? The named pipes
are already there. The only thing you need to do is set up a more convenient
method for the user to deal wit them. I don't really think that my suggestion
of CLI: is the last word on the subject, but I think it's the direction we need
to be going.

> That's the problem I see with REXX --- If it sells as a seperate commercial
> product, I can't see it getting too successful. (A label on the package
> says "Requires 512K Amiga, 1.2 KickStart. AREXX recommended.") And what 
> happens when the user gets REXX? "Copy the AREXX program from the REXX
> disk to your TeX disk. Then edit your startup-sequence file and..."

How about writing a REXX program to edit startup-sequence?

> Maybe every developer that wants to use it should get a license to include 
> it with his/her program? That's a bit messy too. You can also understand
> the author's attempt at making money off the program (he's also the
> person who brought us conman).

I think everyone should have the right to make money off it. Perhaps he
can release a subset version of REXX with the TeX preprocessor hardcoded
into it to be released with TeX, and charge for the full blown version?

Conman is still a disappointment to me. It's PD, but the source is in assembler
which pretty much precludes easy hacking. It doesn't have the features I would
find desirable (adding menus and function keys via escape sequences, a-la
ANSI.SYS on the IBM-PC), and I don't have the time to waste on 68000 assembly.
I bought this machine so I could avoid assembly language.

Has anyone done a driver in Aztec 'C' v3.4? All the examples and PD versions
I've seen have been Lattice-based.
-- 
-- Peter da Silva `-_-' ...!hoptoad!academ!uhnix1!sugar!peter
--                 'U`      ^^^^^^^^^^^^^^ Not seismo!soma (blush)

peter@sugar.UUCP (09/16/87)

In my previous article where I said "I think everone should have the right
to make money off of it", I meant to say "I think everyone should have the
right to make money off their software". I did not intend to suggest that
REXX or CLI: or whatever become some sort of pyramid scheme.
-- 
-- Peter da Silva `-_-' ...!hoptoad!academ!uhnix1!sugar!peter
--                 'U`      ^^^^^^^^^^^^^^ Not seismo!soma (blush)

peter@sugar.UUCP (09/16/87)

> > That's the problem I see with REXX --- If it sells as a seperate commercial
> > product, I can't see it getting too successful. (A label on the package
> > says "Requires 512K Amiga, 1.2 KickStart. AREXX recommended.").

How about a REXX runtime package, that the developer can link with a pre-
compiled REXX program or programs? The user gets the right to run REXX the
way the devloper set up, but not write his own programs.
-- 
-- Peter da Silva `-_-' ...!hoptoad!academ!uhnix1!sugar!peter
--                 'U`      ^^^^^^^^^^^^^^ Not seismo!soma (blush)

daveh@cbmvax.UUCP (Dave Haynie) (09/17/87)

in article <765@sugar.UUCP>, peter@sugar.UUCP (Peter da Silva) says:
> Summary: REXX Runtime
> 
>> > That's the problem I see with REXX --- If it sells as a seperate commercial
>> > product, I can't see it getting too successful. (A label on the package
>> > says "Requires 512K Amiga, 1.2 KickStart. AREXX recommended.").
> 
> How about a REXX runtime package, that the developer can link with a pre-
> compiled REXX program or programs? The user gets the right to run REXX the
> way the devloper set up, but not write his own programs.
> -- 
> -- Peter da Silva `-_-' ...!hoptoad!academ!uhnix1!sugar!peter
> --                 'U`      ^^^^^^^^^^^^^^ Not seismo!soma (blush)

It seems to me that once the full REXX to Amiga-Application interface is
defined and documented, you could have an arbitrary program serving in
the REXX server slot just as easily as you could have a REXX client.  I
think this touches upon some of the stuff that JimM was talking about in
relation to REXX.  

One function of REXX appears to be to provide a standard, BASIC-like macro
language that'll function for any program that wants a macro language, as
well as between programs that want macro languages.  That would certainly
ease the job of anyone building a new program, in that they wouldn't have
to build yet another macro language into their program, only the message
ports or whatever it is that REXX requires.  And of course, that helps the
user in that he now learns just one macro language, instead of VT100 macro,
DPaint Macro, GonzoCalc Macro, HyperWord Macro, etc.  And certainly a 
scaled down run-time REXX would let the developer choose this scheme.  But
what I see in this is that some kind of standardized port interface to
programs give you the choice of macro languages for your programs.  Joe
Pazooli down the street might be happy with the mini-runtime REXX language
as-is.  His neighbor's a power-user and will only be satisfied by the
full commercial AREXX, which gives him N can't-live-without new powers.  I'd
probably turn my "almost-works" LISP interperter into a macro language that
supports the same protocols.  I don't know how tightly coupled the REXX
interface is to the specific language that REXX implements is, but certainly
what I'm talking about would be possible, given enough forethought.  
-- 
Dave Haynie     Commodore-Amiga    Usenet: {ihnp4|caip|rutgers}!cbmvax!daveh
"The A2000 Guy"                    PLINK : D-DAVE H             BIX   : hazy
     "God, I wish I was sailing again"	-Jimmy Buffett

rogerh@arizona.UUCP (09/18/87)

Is REXX written up anywhere?  If not, could some kind soul post
a brief description?  I feel like I've left the dock without a
boat in this discussion... 

		Thanks,
		Roger Hayes
		rogerh@arizona.edu

OP.DAVIS%SCIENCE@utah-cs.UUCP (09/19/87)

REXX is the Restructured EXecutive, developed by Michael Cowlishaw
then of IBM U.K It's an interpreted, PL/I-like language first used 
on IBM's VM/CMS mainframe systems.

  Your library may have his summary article 'The design of the REXX
language',  IBM Systems Journal, vol 23. no. 4, 1984, or the books 
"Modern Programming Using REXX", by Robert P. O'Hara and David Roos
Gomberg, or Cowlishaw's "The REXX Language: A Practical Approach to 
Programming", both published by Prentice-Hall in 1985.

  Here's an example program from the summary article:

/* This routine removes duplicate words from a string, and     */
/* illustrates the use of a compound variable (HADWORD) that   */
/* is indexed by arbitrary data (words).                       */
Justone: procedure               /* make all variables private */
  parse arg wordlist                  /* get the list of words */
  hadword.=0                 /* show all possible words as new */
  outlist = ''                   /* initialize the output list */
  do while wordlist !=''  /* loop so long as we have some data */
    /* split WORDLIST into the first word and the remainder    */
    parse var wordlist word wordlist
    if hadword.word then iterate  /* loop again if already had */
    hadword.word = 1    /* remember that we have had this word */
    outlist = outlist word /* and add this word to output list */
    end
  return outlist   /* finally return the result */
-------

peter@sugar.UUCP (Peter da Silva) (09/20/87)

In article <28070@sun.uucp>, cmcmanis@pepper.UUCP writes:
> The point being that AREXX is *just like* REXX on the IBM mainframes.

Say what? You want to implement an IBoMination on an Amiga?

> This was the whole point of it in the first place. So if you know
> REXX you know AREXX and vice versa sort of.

So you want to implement Yet Another Scripting Language that only a few
people know anything about? What's wrong with UNIX-style scripts? Or if
you want to go whole-hog, use Xlisp. Modified lisps are one of the most
common special purpose languages around (GNU Emacs, ADVsys, etc...). And
given the typical memory requirements of IBM-mainframe software, I'd doubt
that AREXX would be too handy for us 512K types.
-- 
-- Peter da Silva `-_-' ...!hoptoad!academ!uhnix1!sugar!peter
--                 'U`  Have you hugged your wolf today?

peter@sugar.UUCP (Peter da Silva) (09/23/87)

...which is fast catching on as a more-powerful and portable replacement
for AWK? Source code is generally available, and it seems to be everything
REXX is and more.
-- 
-- Peter da Silva `-_-' ...!hoptoad!academ!uhnix1!sugar!peter
--                 'U`  Have you hugged your wolf today?

rokicki@rocky.STANFORD.EDU (Tomas Rokicki) (09/24/87)

>> This was the whole point of it in the first place. So if you know
>> REXX you know AREXX and vice versa sort of.

> So you want to implement Yet Another Scripting Language that only a few
> people know anything about? What's wrong with UNIX-style scripts? Or if

Few people?  There is a huge base of REXX users out there.  Unix
scripts are fine, as long as you add full awk capabilities as well.

> you want to go whole-hog, use Xlisp. Modified lisps are one of the most
> common special purpose languages around (GNU Emacs, ADVsys, etc...). And

Oh, so now you want to sink the Amiga with those damn parentheses!
(I spend most of my time hacking Lisp machines, so I know and love
Lisp, but you can keep the damned parentheses.)  Seriously, Lisp
would be fine, with the proper extensions, but the thing is, REXX
exists and works well on the Amiga, and Xlisp doesn't.  By works well,
I'm talking about for general use as a scripting language and as
a inter-process communication medium; all of the necessary hooks,
including reentrancy and residence aren't in XLISP yet.

> given the typical memory requirements of IBM-mainframe software, I'd doubt
> that AREXX would be too handy for us 512K types.

Wrong, AREXX is tiny, tiny, tiny.  All in crufty hand-coded
assembly.  Why don't you call Bill Hawes and talk to him about
it?

-tom

peter@sugar.UUCP (Peter da Silva) (09/25/87)

In article <611@rocky.STANFORD.EDU>, rokicki@rocky.STANFORD.EDU (Tomas Rokicki) writes:
> > So you want to implement Yet Another Scripting Language that only a few
> > people know anything about? What's wrong with UNIX-style scripts? Or if
> Few people?  There is a huge base of REXX users out there.  Unix
> scripts are fine, as long as you add full awk capabilities as well.

There a huge base of IBM-mainframe types out there who know REXX. Most people
with Amigas, however, are more likely to be frustrated UNIX fans.

> > you want to go whole-hog, use Xlisp. Modified lisps are one of the most
> > common special purpose languages around (GNU Emacs, ADVsys, etc...). And
> Oh, so now you want to sink the Amiga with those damn parentheses!

Actually, I've changed my mind on this. I've decided I want to use ICON.

I've had enough BASIC like and PL/1 derived languages to last me a couple of
lifetimes.
-- 
-- Peter da Silva `-_-' ...!hoptoad!academ!uhnix1!sugar!peter
--                 'U`  Have you hugged your wolf today?
-- Disclaimer: These aren't mere opinions... these are *values*.

grr@cbmvax.UUCP (George Robbins) (09/26/87)

In article <822@sugar.UUCP> peter@sugar.UUCP (Peter da Silva) writes:
> In article <611@rocky.STANFORD.EDU>, rokicki@rocky.STANFORD.EDU (Tomas Rokicki) writes:
> > > So you want to implement Yet Another Scripting Language that only a few
> > > people know anything about? What's wrong with UNIX-style scripts? Or if
> > Few people?  There is a huge base of REXX users out there.  Unix
> > scripts are fine, as long as you add full awk capabilities as well.
> 
> There a huge base of IBM-mainframe types out there who know REXX. Most people
> with Amigas, however, are more likely to be frustrated UNIX fans.

The person who wrote AREXX is one of those mainframe types who happens to also
be interested in the Amiga and felt the lack of one of the few (my opinion)
nice features of the IBM operating system/editor arrangements.  Now it may
well be that it doesn't appeal to you, in which case you are free to to a
better job, however it seems that you have been criticising AREXX on general
principles without bothering to find out what it is really all about...

-- 
George Robbins - now working for,	uucp: {ihnp4|rutgers|allegra}!cbmvax!grr
but no way officially representing	arpa: out to lunch...
Commodore, Engineering Department	fone: 215-431-9255 (only by moonlite)

randy@bcsaic.UUCP (Randy Groves) (09/27/87)

Is this product out yet???  Any info on what it will cost?  I haven't hacked
REXX since working on IBM maintrash a few years ago, but it looked good.


-- 
-randy groves - Boeing Advanced Technology Center
UUCP:	..!uw-beaver!uw-june!bcsaic!randy     USNail: Boeing Computer Services
CSNET:	randy@boeing.com		              PO Box 24346 M/S 7L-68
VOICE:	(206)865-3424				      Seattle, WA   98124

toebes@sas.UUCP (John Toebes) (09/29/87)

In article <774@sugar.UUCP>, peter@sugar.UUCP (Peter da Silva) writes:
> In article <28070@sun.uucp>, cmcmanis@pepper.UUCP writes:
> > The point being that AREXX is *just like* REXX on the IBM mainframes.
> Say what? You want to implement an IBoMination on an Amiga?
Actually if you look at the history of REXX on CMS, it succeeded because it
was so good - not because of IBM.  From rumors of its origins I understand
that IBM did not want to release it but it got so much flak internally that
it decided to make a product of it.

> > This was the whole point of it in the first place. So if you know
> > REXX you know AREXX and vice versa sort of.
> So you want to implement Yet Another Scripting Language that only a few
> people know anything about? What's wrong with UNIX-style scripts? Or if
REXX is not just another scripting language.  It was designed from the ground
up to talk to programs unlike the UNIX-style scripts which simply acts as
an intelligent pipe.  This is not intended to start Yet Another
MY-LANGUAGE-IS-BETTER-THAN-YOURS Holy wars, but to point out that you
should research the item in question before taking pot-shots at it.
> you want to go whole-hog, use Xlisp. Modified lisps are one of the most
> common special purpose languages around (GNU Emacs, ADVsys, etc...). And
> given the typical memory requirements of IBM-mainframe software, I'd doubt
> that AREXX would be too handy for us 512K types.
This is the place where you are the most wrong.  Bill has coded the entire
thing from the ground up in highly tuned assembly language!  He has to the
best of my knowledge implemented the first truely MULTI-TASKING program control
intelligent script language.  It uses some of the best features of the Amiga
including libraries and global message ports to give the greatest flexibility
in communication with REXX and with other programs that use the REXX interface.
Furthermore, he has designed and thought out quite carefully the communications
interface so that you could implement even your own script language that talks
to any of the programs comming out to take advantage of the REXX interface.
> -- Peter da Silva `-_-' ...!hoptoad!academ!uhnix1!sugar!peter
--
 |_o_o|\\   John A. Toebes, VIII       usenet:..mcnc!rti-sel!sas!toebes
 |. o.| ||
 | .  | ||  Coordinator of ...
 | o  | ||    The Software Distillery
 |  . |//     USnail: 235 Trillingham Ln, Cary NC 27511
 ======       BBS: (919)-471-6436

peter@sugar.UUCP (09/30/87)

The last thing the Amiga needs is another programming environment, with more
hooks that people have to make to their programs if they want them to be
competitive. One of the things Apple did right was force developers to stick
to the standard user interface. The Amiga has two standard interfaces right
now: the workbench, and the CLI. I like this, although I think that it could
have been done without forcing two programming environments on people (yes, I
know something about the history behind it and understand that there really
wasn't much in the way of alternatives).

In any case people should be encouraged to develop tools and applications that
fit in with the existing CLI and Workbench unless there's an overriding reason
not to. REXX as a script language is probably really useful for some people...
maybe even me. REXX as a new programming environment with custom ports and
stuff is overkill. REXX as a device (REXX:) is better. It's still not perfect,
because maybe other scripting languages would be better for other people (icon,
or awk, or sed, or...). What's wrong with a CLI:?

Finally I think people at C=, and C= in all its corporate glory, should be
discouraging people from making the Amiga even more of a mishmash of operating
systems than it is. While encouraging people to develop standard tools and
applications that fit well together, of course.

Instead of discouraging people who are trying to keep what conceptual
integrity remains intact.

da Silva's law #2^n-1: don't be different just for the sake of being different.
-- 
-- Peter da Silva  `-_-'  ...!hoptoad!academ!uhnix1!sugar!peter
-- Disclaimer: These U aren't mere opinions... these are *values*.

mlm@ncsuvx.ncsu.edu (Mike McMullen) (10/01/87)

This discussion on AREXX and scripting languages is getting out of hand.
Whats the big deal anyway? I work as a systems programmer in a multi-machine
environment. I do work on VM/CMS, VMS, and Ultrix each of which has a
different scripting language. There are features in all scripting languages
that work elegantly for some given application. On the Amiga I think it
would be great if I could have my choice of script language for a given
application. Instead of everyone saying this is the script language I should
use, let ME pick what I want to use. C= provides CLI scripts. If I want
something that I can be sure will work on anyone else's machine I can use a
CLI script or I can provide a disk that sets up my applications environment
that people can copy or let them integrate my environment into their 
setup.

Personally, I find REXX for the Amiga exciting. Hopefully I can take some
of my execs off of our IBM machine and run them on my Amiga. This type of
capability makes the Amiga more interesting for the dye in the wool IBMers.
This makes my life easier on pushing C= stuff on campus because it can
appeal to a wider audience. What I'm starting to read here is my script 
language is better than yours type jazz when we are comparing apples to
oranges. Let the developer decide what he wants!

Well now who is interested in writing DCL for the Amiga? ;-)

Mike McMullen
NCSU Computing Center
Raleigh, NC 
mlm@ncsuvx.ncsu.edu

rokicki@rocky.UUCP (10/01/87)

> The last thing the Amiga needs is another programming environment, with
> more hooks that people have to make to their programs if they want them
> to be competitive. One of the things Apple did right was force
> developers to stick to the standard user interface. The Amiga has two
> standard interfaces right now: the workbench, and the CLI. I like this,
> although I think that it could have been done without forcing two
> programming environments on people (yes, I know something about the
> history behind it and understand that there really wasn't much in the
> way of alternatives).

I disagree.  The Amiga certainly needs a standard for communication among
programs, one that the global single clip-board does not address.  Because
the applications that will be interfaced cannot be forseen, it should be
programmable, preferably by the user.

The Amiga also needs a standard macro language that all applications can
share, once again, user programmable.  Then only one macro language need
be learned, and everyone is happy.

One thing that must be understood is that there are different levels of
users.  The novice feels right at home with the workbench, because of
its visual nature.  Expert users usually feel encumbered by the workbench;
it is much faster to type a command than to point and click, point and
click, oh, there's the program, point and click.  I think putting both
interfaces on the Amiga was a major win.

But we still need a scripting language; the CLI stuff just isn't smart
enough.  Every major operating system that I know about has developed
a powerful scripting language; Unix has shell, IBM has REXX, VMS has
DCL, etc.  One of the uses of this scripting language, of course, is to
present a cleaner interface to the end user.

> In any case people should be encouraged to develop tools and
> applications that fit in with the existing CLI and Workbench unless
> there's an overriding reason not to. REXX as a script language is
> probably really useful for some people...maybe even me. REXX as a
> new programming environment with custom ports and stuff is overkill.
> REXX as a device (REXX:) is better. It's still not perfect, because
> maybe other scripting languages would be better for other people
> (icon, or awk, or sed, or...). What's wrong with a CLI:?

People should definitely build tools that work with CLI and Workbench.
But there are many things that cannot be done with CLI or Workbench.
The thing is, REXX should be there if you need it; if you don't, good,
don't use it.  Other people will.  Why is REXX with custom ports
overkill?  I don't understand that at all.  If you think REXX would be
good as a device, you are missing the main point of REXX.  How can a
device invoke primitives from a program?  Normally, a device acts
strictly as a slave to a program; REXX and a program can interact at
different levels, with the program as a slave to REXX, vice versa, or
with the two of them communicating much more on a peer basis.

Other scripting languages will always be good for other people.
But, REXX exists, works well in the Amiga environment, and gives
one an incredible amount of power.  Today.

> Finally I think people at C=, and C= in all its corporate glory, should
> be discouraging people from making the Amiga even more of a mishmash of
> operating systems than it is. While encouraging people to develop
> standard tools and applications that fit well together, of course.

And what better way to encourage standard tools and applications that
fit well together, then by proscribing and supporting a standard and
programmable means of communication among tasks?  This is a problem
that won't go away be pretending it doesn't exist, Peter; until a
standard is agreed upon, people will continue to write non-cooperative
tools or tools that cooperate in incompatible ways.

It's really that simple.

> Instead of discouraging people who are trying to keep what conceptual
> integrity remains intact.

The conceptual integrity shall remain intact, perfectly intact.
It will just be made more powerful, extended for those of us who
need such extensions.

ralph@mit-atrp.UUCP (10/02/87)

It was mentioned that the CLI was for expert users and the workbench
for beginners.
Well.....just to let others like me not feel alone....
I am a serious veteran computer user and I have been valiantly using the
workbench. I only use the CLI when I'm *forced* to by programs that
don't understand icons.
I feel that it's easier to just point to something and drag it to its
new desination instead of typing:
  copy df0:stuff/funky/wow vd0:c/test/whoosh
I guess it's all diff'rent strokes for diff'rent fokes.
I realize the Workbench has problems (like slow drawers !),
but I think there's a future in this. Even if I have to fix it.
But anyhow, there are those among us who are not new at computers and
still would rather work in icons. I firmly believe (perhaps alone now)
that I can even *program* in an icon-based language.
Go ahead and laugh....they laughed Galileo, and at Columbus...
we all know the world is rou
                            n

                             d

tenny@z.dec.com (Dave Tenny | DTN 225-6089) (10/06/87)

Having coded many things in REXX using VM/CMS, and many scripts
on Ultrix; I'll take REXX anyday.  A good implementation can be really
fast, the biggest performance problem on CMS was when you allocated
lots of stemmed variables (and de-allocated).  I think REXX got tied
up in free storage calls.  I've always thought perhaps a way to 
pre-allocate lots of storage in REXX would be useful.

If Mr. da Silva would care to declare any REXX experience,
I'll be happy to take his Unix religion with more than a grain of salt.

I'd love a REXX for the Amiga!

Dave Tenny
VAX LISP development.
(Please won't somebody write Common Lisp for the Amiga...)

rokicki@rocky.STANFORD.EDU (Tomas Rokicki) (10/08/87)

[ Oh, by the way, this is the fellow who brought you Conman. ]

AREXX will be available by October 14th from:

	William Hawes
	PO Box 308
	Maynard, MA  01754
	(617) 568-8695

$49.95 includes a 150 page manual, header files
for use of REXX facilities within applications,
and the REXX software itself.

Feel free to call Bill if you have any questions.

-tom

peter@sugar.UUCP (Peter da Silva) (10/12/87)

OK, so maybe REXX is an exception to the VM/CMS==huge and slow rule. And
I'll admit I shouldn't be knocking new programming languages (new to the
Amiga, anyway).

But why implement it in such a weird way? If you want to take advantage of
REXX (and I might be wrong about this... it's been known to happen) you have
to handle a thing called a REXX port... presumably another message port...
in your program. And when you do, you can't use it to take advantage of any
other filters than REXX.

Making it a device that can be addressed through AmigaDOS (as some have
suggested) would be an improvement. Better still would be to make it
possible for other filters to be plugged in. Now, most any program you
want to use as a filter is going to have the ability to read from Input()
and write to Output() (except for REXX, apparently).

Programs like awk and sed that have proven useful over the years. Newcomers
like icon. Quicky programs that even novice programmers can turn out
quickly in whatever language they like to do strange and bizzarre things
to data. 

Before going off in a new direction, how about looking at an environment
that has been using filters with great success for many years...

...instead of setting up another clipboard. Look how useful that's been.
-- 
-- Peter da Silva  `-_-'  ...!hoptoad!academ!uhnix1!sugar!peter
-- Disclaimer: These U aren't mere opinions... these are *values*.

daveh@cbmvax.UUCP (Dave Haynie) (10/12/87)

in article <11774@decwrl.DEC.COM>, tenny@z.dec.com (Dave Tenny | DTN 225-6089) says:
> 
> If Mr. da Silva would care to declare any REXX experience,
> I'll be happy to take his Unix religion with more than a grain of salt.

I've never actually used REXX, and I've used UNIX shell, DCL, the Amiga 
script language, and a few others.  After glancing through the AREXX
manual yesterday, I can state with certainty that as a scripting language
alone it's going to be much more powerful than any of the others I've yet
seen (actually, there was one they were developing on the DEC-20s at CMU
to replace the standard TOPS script language, though I haven't seen it
anywhere else).  That's not even considering the much tighter coupling you
can get if a program specifically uses AREXX as a macro language. 

By the way, this is the only thing IBM that I've ever liked.  PC-DOS, XEDIT,
etc. are the worst of their type as far as I'm concerned.  They got so many
things wrong it just stands to reason that they must have done something
right.  I think REXX must be it.

> Dave Tenny
> VAX LISP development.
> (Please won't somebody write Common Lisp for the Amiga...)
                               ^^^^^^^^^^^^^^^^^^^^^^^^^
I'll second that one!

-- 
Dave Haynie     Commodore-Amiga    Usenet: {ihnp4|caip|rutgers}!cbmvax!daveh
   "The B2000 Guy"              PLINK : D-DAVE H             BIX   : hazy
    "Computers are what happen when you give up sleeping" - Iggy the Cat

randy@bcsaic.UUCP (Randy Groves) (10/15/87)

In article <2472@cbmvax.UUCP> daveh@cbmvax.UUCP (Dave Haynie) writes:
>in article <11774@decwrl.DEC.COM>, tenny@z.dec.com (Dave Tenny | DTN 225-6089) says:
>> (Please won't somebody write Common Lisp for the Amiga...)
>                               ^^^^^^^^^^^^^^^^^^^^^^^^^
>I'll second that one!
>

Thirds!  Thirds!  And while you're about it put in CLOS, the Common Lisp
Object System (ya, I know, I'll have to get a LOT more memory!!!).

Anybody listening?


Also how about an object system for C.  Does anybody know whether C++ or
Objective C are available for the Amiga??



-- 
-randy groves - Boeing Advanced Technology Center
UUCP:	..!uw-beaver!uw-june!bcsaic!randy     USNail: Boeing Computer Services
CSNET:	randy@boeing.com		              PO Box 24346 M/S 7L-68
VOICE:	(206)865-3424				      Seattle, WA   98124

mwm@eris.BERKELEY.EDU (Mike (My watch has windows) Meyer) (10/18/87)

In article <2409@bcsaic.UUCP> randy@bcsaic.UUCP (Randy Groves) writes:
<In article <2472@cbmvax.UUCP> daveh@cbmvax.UUCP (Dave Haynie) writes:
<>in article <11774@decwrl.DEC.COM>, tenny@z.dec.com (Dave Tenny | DTN 225-6089) says:
<>> (Please won't somebody write Common Lisp for the Amiga...)
<>                               ^^^^^^^^^^^^^^^^^^^^^^^^^
<>I'll second that one!
<>
<
<Thirds!  Thirds!  And while you're about it put in CLOS, the Common Lisp
<Object System (ya, I know, I'll have to get a LOT more memory!!!).
<
<Anybody listening?

Yeah, I'm listening. CL is one of my projects for right after this one
(you know how that goes...).

Anyway, since the best way to get something done is to get someone
else to do it or you, I'll make an offer:

Kyoto Common LISP (KCL) is C-sourced implementation of Common LISP for
Unix systems. My quick glance at it shows that it should be portable
to Amigas without great amounts of pain.

I'm willing to download and mail Amiga floppies to anyone who's
interested enough to mail me blank floppies in the first place.

Of course, the offer for CScheme 5.0 still stands.

	<mike
--
The handbrake penetrates your thigh.			Mike Meyer
A tear of petrol is in your eye.			mwm@berkeley.edu
Quick, let's make love before we die.			ucbvax!mwm
On warm leatherette.					mwm@ucbjade.BITNET

craig@unicus.UUCP (10/20/87)

In <2409@bcsaic.UUCP>, randy@bcsaic.UUCP (Randy Groves) writes:
>In article <2472@cbmvax.UUCP> daveh@cbmvax.UUCP (Dave Haynie) writes:
>>in article <11774@decwrl.DEC.COM>, tenny@z.dec.com (Dave Tenny | DTN 225-6089) says:
>>> (Please won't somebody write Common Lisp for the Amiga...)
>>                               ^^^^^^^^^^^^^^^^^^^^^^^^^
>>I'll second that one!
>>
>
>Thirds!  Thirds!  And while you're about it put in CLOS, the Common Lisp
>Object System (ya, I know, I'll have to get a LOT more memory!!!).

Fourths.  I didn't know that the Common Lisp Object System had actually
been specified, I thought Symbolics, Xerox, etc., were still bickering.
I thought Common Loops had the edge in this battle, but what happened ?

As to the memory, an A2000 with 16 megs RAM and some 10 meg SCSI floppies
to back up the partition (oh, and leave 6 meg for ramdisks and incidentals)
ought to be able to do it.  Most Lispmachines don't have an MMU, either.
But it ought to have a 68000 with 68881 at least at 16 MHz.  
With a good monitor, you might be talking about $5000 for the whole thing
in about a year when: (monitor=$500, CPU+RAM=$1500, A2000=$1000, LISP=$2000)
with real-live support, etcetera.  That's a hell of a lot cheaper than a
Xerox D-Machine or a Symbolics box.  And probably not much slower.

>Anybody listening?

Hopefully.  To be the first microcomputer true workstation would be more
than worthwhile.  CAD/CAM, AI, and other fields are screaming for this.
It's pretty difficult to do proper research when you can't afford the
workstations.

>Also how about an object system for C.  Does anybody know whether C++ or
>Objective C are available for the Amiga??

I don't, but the C++ compilers supposedly compile to C code, at which point,
any standard C compiler *should* be able to use it.  Possibly with some
global search/replaces for funny file names.  I think you'd only have to
construct some dummy libraries that looked like Exec, etc. on the C++ box.
If I'm all wet about this, someone please correct me and accept my apology.
Of course, if you want to work with C++ *ON* your Amiga, it'll be a while.
Though I expect to see it before a decent Common Lisp.

	Craig Hubley, Unicus Corporation, Toronto, Ont.
	craig@Unicus.COM				(Internet)
	{uunet!mnetor, utzoo!utcsri}!unicus!craig	(dumb uucp)
	mnetor!unicus!craig@uunet.uu.net		(dumb arpa)