× RexxLA Home About RexxLA About Rexx Community Members Symposium

Contact Us

Melinda Varian's Report

Subject:  Fourth Annual REXX Symposium
From:     Melinda Varian (Princeton)
Date:     Sat, 5 Jun 1993 15:45:31 EDT

I recently attended the Fourth Annual REXX Symposium, convened by
the Stanford Linear Accelerator Center.  The Symposium was held in
conjunction with a meeting of ANSI Committee X3-J18, which is preparing
a national standard for the REXX language.  The members of the ANSI
Committee and the authors of most implementations of REXX participated
in the Symposium, along with other people who use REXX on a variety of
platforms.

The great majority of the sessions during the Symposium dealt with REXX
on platforms other than its original home, VM/CMS.  There are now REXX
implementations on almost every known platform -- PCs of all flavors,
UNIX, OS/2, CMS, TSO, VMS.  Microsoft has announced that there will be
a third-party implementation of REXX for NT, and rumor has it that there
are at least three NT REXX implementations in the works.

I will mention below some of the Symposium sessions of particular
interest.  Note that I came back with several diskettes, in addition to
handouts, and would be happy to make copies of the handouts and to lend
the diskettes to anyone who is interested.


REXX -- The Future, Mike Cowlishaw
----------------------------------

Mike Cowlishaw, the author of REXX, discussed the state of REXX and
the continuing rapid growth in its use around the world.  There are now
eighteen commercial implementations of REXX and forty-one published
books.  REXX is accessible to well over ten million users.  There are
probably about one million people who code in REXX.  One hundred thousand
copies of his book "The REXX Language" (TRL) have been sold.

Various REXX interpreters and compilers are generally measured in terms
of REXX clauses per second (cps).  A high-end x86 (486/66) now gets
about 27,000 cps.  A RISC system has been measured at 42,000 cps (some
of the largest RISC systems have not yet been measured).  Large mainframe
systems have been measured at 90,000 interpreted cps per processor.  With
the IBM REXX compiler, numbers up to 465,000 cps have been seen.

Cowlishaw listed what he views as the "top ten" desired language
enhancements in terms of user requests (for things that are feasible
without an enormous change to the language).  Though he numbered them
in inverse order, he said not to construe the numbers as too significant:

10.  "Signal On Digits", to trap on unexpectedly "overprecise" numbers.

 9.  Expressions in stem references.

 8.  "Parse Caseless", to match strings even if they have a different
     mixture of upper- and lower-case characters.

 7.  "Parse Lower" (the opposite of "Parse Upper").

 6.  Indirect call, e.g.:
        where = 'anyname'
        Call (where) a, b
     would call the routine "anyname".

 5.  Change and Count functions to replace and count strings:
        needle = 'is'
        haystack = 'This is the third'
        new = 'at'
        Say Countstr(needle,haystack)
        Say Changestr(needle,haystack,new)

 4.  Call by reference (would introduce aliasing into the language),
     e.g.:
        Call fred p, q+1, r
        fred: Procedure Use Alias a, , c
        or
        fred: Procedure Use Arg (a), b, (c)

 3.  External Procedure Expose to allow externalization and sharing
     of routines by permitting Procedure Expose at the start of
     external routines.  (There are questions concerning the
     inheritance of the settings for Digits, etc.)

 2.  Extended Do to allow iteration over tails of compound variables,
     e.g.:
        Do Tail Over fred
           Say fred.tail
           End tail
     would display all values held in variables whose name begins with
     "FRED.".  (Changing the FRED. set while in the loop would be an
     error.)

 1.  Date and time conversion for other than the current instant, e.g.:
        Say Date('USA',19930827,'STANDARD') would display '08/27/93'.
     "Almost every programmer needs these at some time."

One other Cowlishaw quote:  "REXX is going to be a first-class object-
oriented language, as Simon's prototype has shown."


Object-Oriented REXX -- Simon Nash
----------------------------------

Simon Nash, the architect of Oryx, IBM's object-oriented extensions
to REXX, gave an excellent demonstration of Oryx.  Oryx's syntactic
extensions to REXX for object-oriented programming allow one to do
such things as assign an object to a variable and to write the methods
attached to an object in REXX.  Anything that can be done by the user
manipulating objects can also be done with REXX calls.

In addition to the language extensions, Oryx includes:

o  Graphical user interface support via a class library of visual
   objects that supports OS/2 Presentation Manager and AIX/Motif,
o  A development environment that includes a class browser, an
   interactive debugger, an object inspector, etc., and
o  Integrated support for the objects of the OS/2 Workplace shell,
   using IBM's System Object Model (SOM).

Nash was refreshingly non-religious in his view of object-oriented
programming.  He displayed no list of oo commandments and simply
urged people to try creating some objects and sending them some
messages, gradually working into oo thinking.


Pearly PERL -- Larry Wall
-------------------------

Wall, the author of Perl, gave quite a useful presentation on Perl
(starting out by saying, "I must be nuts to come here!") and then
spent an hour taking questions jointly with Cowlishaw.

I was struck by the similarity of the origins of the two languages,
neither of which was an official development project and both of
which achieved excellence via an iterative refinement process, as
the authors distributed their efforts to users on a large network
and then incorporated their feedback to enhance the languages.

When asked about the prospects for an object-oriented Perl, Wall said
that he has given it some thought and believes that it will not be
difficult to incorporate oo concepts into Perl.  He mentioned that
20,000 copies of his Perl book have been sold.

A few Wall quotes:

o  "Almost all of the C operators come straight across into Perl.  Some
    of you may think of that as a feature."

o  "I do not worship APL."

o  "Perl just lays smoothly under my mental fingertips."

o  "All language designers are arrogant by definition."


An Introduction to Visual BASIC, or, Know Thine Enemy -- Robert O'Hara
----------------------------------------------------------------------

O'Hara, co-author of the first trade book on REXX, now works for
Microsoft, where he is involved in the design of software for a
personal digital assistant called WinPad.

O'Hara is well remembered for his presentation at the First REXX
Symposium, which was entitled, "Why REXX Died".  That presentation
was given as if it were a retrospective delivered in 1996.  Its thesis
was that REXX had died because Microsoft had forced the universal
adoption of Visual BASIC (following Bill Gates' replacing Dan Quayle
on the 1992 Republican ticket).

Though he is no fan of Visual BASIC, O'Hara emphasized in his demonstra-
tion the importance of VB's development environment, which compensates
somewhat for the inelegance of the language.  The fact that more than a
million copies of VB have been sold makes it a major player no matter
what one may think of a language that has more than a hundred reserved
words.

Although VB is not an imbeddable language today, it does allow direct
Windows system calls; one can use it to get to the entire system.  It
is likely that "Object BASIC" will appear first on NT and that it will
be more of a macro language than Visual BASIC is now.

Although Microsoft has announced that there will be a third-party REXX
for NT, one can assume that REXX will never be incorporated in NT and
thus that it will never be used as the scripting language for commercial
NT applications.


REXX in Windows, NT & Mac Networked to UNIX -- Neil Milstead
------------------------------------------------------------

This session was a sketch of some very exciting work in progress by
the author of Uni-REXX.  Among his topics were the use of REXX with
Excel on both the Macintosh and Windows, data transfer via sockets
(with no concern about external data representation because of REXX's
string orientation), remote execution of REXX programs (e.g., PCs and
Macs sending program strings to be executed on a UNIX server), inter-
process communication via the Windows clipboard, generic dialogs for
NT and the Mac (e.g., "DialogFileGet" to prompt for an input file
and "DialogMessage" to display a message box), and much more.


uni-REXX on Multiple UNIX Platforms -- Ed Spire
-----------------------------------------------

Spire, who is the head of The Workstation Group, who sell Uni-REXX
and Uni-XEDIT, reviewed the quite impressive progress that Uni-REXX
has made in the past year in bringing UNIX concepts into the language,
stdin, stdout, stderr, named streams, sockets, fork, getxxx, etc.
Uni-REXX now has RXSQL capability (based on Oracle) and considerable
client-server support.  Spire also noted that market acceptance is
improving.

Earlier in the Symposium, there was a panel discussion by several of
the UNIX heavies in attendance, including Ian Collier, of Oxford,
the author of "imc", one of the shareware UNIX REXX implementations.
Anders Christensen, of the Norwegian Institute of Technology, the
author of another UNIX REXX called "regina", did not attend this year,
but sent along an announcement of the latest release of "regina".


IBM's Workplace OS -- Paul Giangarra
------------------------------------

Giangarra, one of the chief architects of IBM's new MACH-based
operating system, gave an excellent presentation on the concepts of
micro-kernel technology in this operating system, which is to present
"dominant and alternate personalities" (virtualizations of different
architectures) in order to run applications written for many of the
common platforms.  Interestingly, his introduction to the virtual
machine concept was as a graduate student using CP/67 at Rensselaer
Polytechnic Institute (RPI).


REXX on the Macintosh, the Final Frontier -- Jose Aguirre
---------------------------------------------------------

Aguirre (University of Texas) has implemented a REXX for Mac called
TEXX.  I have a copy of TEXX.


WATCOM's Visual REXX for OS/2 (VX-REXX) -- Eric Giguere
-------------------------------------------------------
Visual Programming with REXX in OS/2 (Vis/Pro REXX)  -- David Hock
------------------------------------------------------------------
Visual PM REXX (REXX Works!) -- Amir Kolsky
-------------------------------------------
Visual REXX (VREXX) -- Craig Swanson
------------------------------------

These sessions all dealt with "visual builders" for OS/2 for building
GUI applications using REXX:

o  VX-REXX is a product of WATCOM and has just been released.  I have
   a flyer.  The sales number is (800) 265-4555.

o  Vis/Pro REXX, from Hockware, has also just been released.  I have a
   demo disk and a real copy of the product.  The sales number is
   (919) 387-7391.

o  REXX Works! is being developed at IBM's Watson Lab and is not
   currently planned to be a product.

o  VREXX was also developed at Watson and is available via anonymous
   FTP from software.watson.ibm.com (in the file /pub/os2/vrexx2.zip).
   I have a paper discussing its use.

All these packages seemed to be modelled more or less closely on Visual
BASIC and to provide a REXX alternative to VB.  They allow one to design
a window for an application and then attach REXX to the user-interface
objects in that window.  To my untrained eye, there was not much to
distinguish between the first three, although perhaps the WATCOM product
had the most extensive development environment.  They all appeared quite
usable, but Oryx also has many (most?) of the same facilities built in,
and so may displace them all when it appears on the market.


Use of REXX in a Visual Builder -- Richard Hoffman
--------------------------------------------------

Hoffman, who is with IBM in Austin, also discussed a visual builder.
His builder will use Oryx and the OS/2 SOM, which he said will be
available on AIX before the end of the year and is currently being
ported to Windows.  "There will be SOM on the mainframe."  The objects
created by his builder will include both GUI objects and things like
spreadsheet links and will be "chameleons" (that is, they will assume
the look-and-feel of each system as applications are ported between
systems).  The application interface provided by his product will bring
in functions like cut/paste, networking, undo/redo, and the user
interface.


REXX Extensions to OS/2 -- Charles Daney
----------------------------------------

Charles Daney, the author of Personal REXX for MS-DOS and OS/2,
discussed "REXXLIB", an extensive set of functions he is selling
as an add-on to IBM's REXX for OS/2.  REXXLIB includes mathematical
functions, stem and array functions, and functions for file system
services, operating system information and services, hardware
information and control, and interprocess communication.  I have
a copy of REXXLIB and a detailed manual, as well as a handout.


REXX I/O for VM -- Gary Brodock
-------------------------------

Brodock is a REXX developer for IBM in Endicott.  His presentation
described the enhancements for CMS REXX that were announced two days
later as part of VM/ESA Release 2.1 (CMS 10), the addition of the REXX
stream I/O capability described in TRL and already implemented on several
other platforms.  I have a handout from this session.


THE, A Free XEDIT Look-alike for Multiple Platforms -- Mark Hessling
--------------------------------------------------------------------

THE stands for "The Hessling Editor".  Hessling is at Griffith
University in Brisbane, Australia.  THE is similar to KEDIT and
XEDIT and supports REXX macros.  It runs on UNIX, DOS, and OS/2.
I have source (and the DOS and OS/2 executables).


X-CUA -- Michael Johnson
------------------------

X-CUA is a product of Relay Technology (formerly the VM Systems
Group) that provides an X-based toolkit for building CUA-compliant
GUI applications on VM or AIX, using REXX or C.  One of its selling
points is ease of conversion of existing applications to a GUI
interface.  Under CMS, the user logs on via a 3270 window on his
workstation and then invokes applications that use X-CUA to build
other windows on the workstation.  The basic process of using X-CUA
is:

o  The application calls X-CUA to build a GUI display and to
   register for callbacks for specified events (button pushing,
   etc.).

o  X-CUA translates the requests into X protocol and transmits
   them to the X server on the workstation.

o  The X server sends back event notifications.

o  X-CUA invokes the callback routines, which may be written in
   REXX or C.

I have a detailed handout from this session.


Exploiting VM/CMS REXX Facilities with Waterloo C -- Eric Giguere
-----------------------------------------------------------------

Giguere discussed the extensive facilities in Waterloo C for inter-
acting with REXX programs, including program calls in both directions
and accessing REXX variables from C programs, as well as accessing the
CMS program stack and XEDIT file buffers from C programs.  I have a
handout from this session.


SAA REXX Compilation -- Walter Pachl
------------------------------------

Pachl manages product testing at the IBM Software Development Lab in
Vienna.  He described the features of Version 2 of the IBM REXX Compiler,
which has just become available.  Version 2 supports level 3.48 of the
REXX language.  Its most important features are:

o  Full support of the Interpret instruction,
o  Binary strings and the x2b and b2x functions,
o  New Parse templates, +(v), -(v), and =(v), where "v" is a variable
   with a numeric value,
o  The Value function with two or three arguments (for evaluating an
   expression), and
o  Compilation without access to the C library.

Pachl noted that the new Parse templates and the new capability of
Value should address 80-90% of the uses of the Interpret instruction.

He commented on the furor that the introduction of binary constants
has caused (because "anything'b" now denotes a binary constant, which
causes many existing REXX programs to break).  "I no longer use any
one-character variable names.  God knows what number systems are coming
next."

He also commented on Cowlishaw's Top Ten list that his own Top Ten
would include "a decent message" on a Novalue condition by default.

I was delighted by his description of the technique Vienna had used
to get IBMers to shake the bugs out of Version 2 before it ships to
customers.  The compiler was distributed over VNET to anybody who
asked for it.  Each person who reported a bug that would have been
APARable after release was awarded one "Vienna Point".  Everybody who
accumulated at least one Vienna Point was awarded with a Sachertorte
from Vienna.  The person who received the most Vienna Points got to
pick his Sachertorte up in Vienna, all expenses paid.

The new version of the compiler has just been added to the Higher
Education Software Consortium, so we should be getting it soon.


Will Object-Orientation Relieve my REXX Frustrations? -- David Robin
--------------------------------------------------------------------

Robin, who is the manager of the REXX Project in SHARE, discussed the
need for non-object-oriented extensions to the REXX language, which
coincided closely with the list Cowlishaw had given earlier with an
emphasis on the extensions that are needed to allow REXX programs to
be written in a more modular form.

Robin also provided the most widely repeated tag line of the Symposium
when he complained of repeatedly being told by the oo-bigots back home
that the reason he saw needs for extensions other than the oo extensions
is that he didn't "have modern thinking".


Bibliography
------------

Some current trade books dealing with REXX:

Cowlishaw, Michael F., "The REXX Language: A Practical Approach to
   Programming", second ed., Prentice-Hall, 1990, ISBN 0-13-780651-5.

O'Hara, Robert, and David Gomberg, "Modern Programming Using REXX",
   second ed., Prentice-Hall, 1988.

Goldberg, Gabe, and Phil Smith III, eds., "The REXX Handbook",
   McGraw Hill, 1991, ISBN 0-07-023682-8.

Daney, Charles, "Programming in REXX", McGraw Hill, 1992,
   ISBN 0-07-015305-1.

Kiesel, Peter, "REXX Advanced Techniques", McGraw Hill, 1992,
   ISBN 0-07-034600-3.


- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Originally placed on IBM servers with the permission of the author.)