Subject: Fifth Annual REXX Symposium From: Melinda Varian Date: Sun, 15 May 1994 22:40:27 EDT I attended the Fifth Annual REXX Symposium in Boston, May 1-4, and found it to be very interesting and useful. I was struck by how much REXX has spread since the last Symposium. We saw implementations for new platforms and continued growth in numbers of users and importance of uses. The extent to which REXX has taken on a life of its own was brought home to me when a friend described a chat he'd had with another attendee, who turned out never to have heard of REXX's birthplace, CMS. * * * * * * * * * * Mike Cowlishaw (IBM) -- Interesting Corners of REXX The first speaker of the Symposium was Mike Cowlishaw, the author of REXX. Mike's topic was "Interesting Corners of REXX". He pointed out a number of REXX features that people tend to forget to use, such as Procedure Expose lists. One tip that I took home with me was to use Trace Labels to verify that all paths through a program are exercized by one's test suite. Mike showed this nice little program to determine the parity of a byte: bits = X2b('C7') /* 11000111 */ ones = Translate(bits, ' ', '0') ones = Length(Space(ones, 0)) parity = ones//2 and this tricky procedure to shuffle the numbers in a range: /* Shuffle the numbers in the range 1->max */ SHUFFLE: Procedure Signal Off Novalue max = Arg(1) out = '' Do i=1 to max sub = Random(i,max) Say ar.sub out = out Substr(ar.sub,4) If sub = i Then Iterate ar.sub = ar.i End Return out I have the foils from Mike's presentation for anyone who is interested. I also have Mike's contributions to the Symposium diskette: PMGLOBE -- an Earth globe that keeps time and has a variety of other functions, such as calculating distances. GOSERVE -- an OS/2 gopher server. PMPRINTF -- a C printf function for use from Presentation Manager programs. * * * * * * * * * * Tom Brawn (IBM) -- AIX REXX/6000 and REXX for NetWare Tom Brawn, of IBM's REXX interpreter development group in Endicott, presented two recently released REXX interpreters, IBM AIX REXX/6000 and IBM REXX for NetWare (product numbers 5764-057 and 5764-075, respectively). These are both ports of IBM's OS/2 REXX kernel but with additional system-specific features. For example, the RS/6000 REXX has SysCreatePipe, SysFork, SysWait, etc., and the Netware REXX has RxDosCopy, RxDosPresent, RxQueryNLM, etc. Both are available on an "as-is" basis, but Brawn stressed that they have been widely used within IBM, so should have few bugs. He also mentioned third-party vendors who have adopted these REXX implementations as the scripting languages for their applications. The RS/6000 interpreter costs $200, and the NetWare interpreter costs $495. I have additional information on both. * * * * * * * * * * Klaus Hansjakob (IBM) -- News from the Compiler Klaus Hansjakob, of IBM's Vienna Lab, presented an update on IBM's REXX compiler for CMS and MVS. A recent PTF to the compiler added support for an "alternate library", for use on systems that do not license the REXX run-time library. This alternate library can be distributed freely without royalty. Another new compiler feature is a Copyright directive that puts a Copyright statement in cleartext at the beginning of an object file. He gave a list of the important functions currently missing from the compiler: o TRACE support o REXX I/O for CMS o INCLUDE facility o MARGINS He discussed the performance ramifications of different methods of calling functions from REXX programs on MVS and CMS, e.g., the advantages of EXECLOADing, NUCXLOADing, and using the compiler's DLINK capability (which includes external functions in the same module as their caller). He pointed out that compiled REXX functions can be included in a REXX external function package (external function packages come first in the search order), and he gave out source for two ASSEMBLE files used in building external function packages. I have his handouts and the ASSEMBLE files for anyone who is interested. He offered to distribute the source via email, as well. His addresses are hansjako@vabvm1.vnet.ibm.com and ATIBMCXP on IBMMAIL. * * * * * * * * * * Patrick Mueller (IBM) -- ROX: REXX Object eXtensions Patrick Mueller, of IBM Cary, described ROX, his OS/2 REXX function package that provides some object-oriented programming capabilities. Mueller's package is not part of IBM's official Object REXX develop- ment, but rather a tool he built on his own. ROX is available via FTP from ftp.cdrom.com in pub/os2/2_x/program/rexx and was also put on the Symposium diskette. Mueller's other contribution to the Symposium diskette was RxD, a Presentation Manager source-level debugger for REXX. I have documentation for both ROX and RxD. * * * * * * * * * * Eric Giguere (Watcom) -- VX-REXX for OS/2 Eric Giguere is author of the REXX FAQ and one of the authors of Watcom's VX-REXX package, which is an OS/2 REXX "visual builder". (There are currently three REXX visual builders in wide use, VX-REXX, Hockware's VisProREXX, and Gpf's Gpf/REXX. The three are competing rather hotly with one another, with the effect that they are all rapidly becoming more powerful. Demo diskettes for the latest version of VisProREXX were handed out at the Symposium, and I have just gotten a copy of Version 2 of VX-REXX. Drop by for a demo of either.) Eric demonstrated the current release of VX-REXX, which has a source- level debugger and allows one to create PM macros and executables that can run with a royalty-free run-time DLL. He said that Watcom intends to keep on growing VX-REXX. They are currently beta-testing VX-REXX CSK, a client-server package that provides database (DB2 and Watcom SQL) access and charting. Eric mentioned that Watcom has been purchased by PowerSoft. He said that a patch to VX-REXX V2 was being released that week and would be available on their bulletin board. (It is now available via anonymous ftp from rexx.uwaterloo.ca as /pub/os2/vxrexx/vxrx20a.zip.) He pointed out that there is a very active VX-REXX forum on IBMLink. * * * * * * * * * * Alan Matthews (Percussion Software) -- Using REXX and Notrix for Lotus Notes Data Manipulation Alan Matthews began with an excellent overview of Lotus Notes and then described his company's products, Notrix and Notrix Composer. Notrix provides REXX functions for manipulating Lotus Notes data without using C and the difficult Lotus Notes API. Notrix Composer is a tool for moving data between Notes and external databases. I have Matthews' foils and flyers on both products. (NOTRIX is $3500/server and Composer is $5000/server; one copy serves all connected users.) * * * * * * * * * * Pam Taylor (The Workstation Group) -- X-based GUI XEDIT-like Editor Pam Taylor, the product manager for Uni-REXX, described work that the Workstation Group is doing on Uni-XEDIT, their XEDIT-like UNIX editor. She said that now that many of their customers are becoming more used to the UNIX environment, they are beginning to ask for new capabilities in Uni-XEDIT, such as scroll bars, cut-and-paste, pull-down menus, and mouse awareness. She demonstrated a new version that had all these features. (The single-copy price for each of their products is $499, with considerable discounts for quantity purchases.) She said that their Uni-REXX sales are up over previous years but seem still to be driven by sales of their editors, as users want the ability to write editor macros. However, they believe that Uni-REXX is starting to sell more on its own merits now. Pam also said that they are considering writing an object-oriented uni-REXX. * * * * * * * * * * Ian Collier (Oxford) -- New Features in REXX/imc Ian is a graduate student at Oxford and author of REXX/imc, which was written for SunOS but has been tested on AIX. It is available in /pub/freerexx/imc at rexx.uwaterloo.ca. Ian discussed a number of features that he had added since last year's Symposium: o popen and pclose functions for establishing a pipe to a shell command. o two SUBCOMs, UNIX and COMMAND (the latter addresses a small built-in shell). o rxque, a stack daemon that runs as a separate process and can be used for inter-process communication. Incidentally, Ian will be graduating soon and will be needing a job. * * * * * * * * * * Jim Crosskey (IBM) -- IBM Views on REXX Jim Crosskey is the manager of REXX interpreter development in Endicott. There are 30+ programmers in his group. He said that there has recently been increased interest in REXX on the part of IBM executives and cited a Statement of Direction released in April for Object REXX for MVS. He also said that they are considering a Macintosh implementation of Object REXX. One of Crosskey's foils: REXX Future Directions o Wide range of platforms o Apply new technology: - Object Oriented programming (SOM, DSOM, etc.) - Visual Programming tools - OpenDoc o Develop REXX function packages to expand presence: - Communications, MultiMedia, Database, . . . o Encourage REXX as the "application extender" o Improve documentation - Primer/on-line tutorial - Books, books and more books o Expand user base - Students, non-"glass house" and OS/2 users There was an extended Q&A period following Crosskey's presentation. One attendee characterized IBM's marketing strategy for REXX as "hopefully, over time". It appears that IBM is addressing requirements for extensions to the REXX language only via Object REXX, which is a complete rewrite of the interpreter. There is no plan for Object REXX for CMS. (Crosskey suggested in a conversation later in the day that it might be possible to port the MVS Object REXX to CMS. I had wondered during his talk why that was not planned. It seems clear that the VM customers who have spent a decade or so waiting for REXX language extensions had better start speaking up about the lack of a plan for CMS REXX.) * * * * * * * * * * Tom Brawn (IBM) -- Object REXX on Windows IBM is now beta-testing its Object REXX implementation for OS/2 and Windows. Tom Brawn demonstrated the Windows version. The current plan is that Object REXX will be integrated into OS/2, replacing the interpreter now shipped with OS/2. It is likely that Object REXX for OS/2 will be shipped before the end of the year; the Windows version will probably ship after that. Object REXX is said to be "100% compatible" with "Classic REXX". It includes a number of extensions to the REXX language that have nothing to do with OO, including: o Expressions in stems o Parse enhancements (Parse Caseless, Parse Lower) o Countstr and Changestr functions o Extended Do (iterate over stem) o Date conversion Object REXX is a Win32s applications and requires Windows 3.1. It runs on Windows and NT and will run on Chicago. It requires 4MB of memory. A simple Windows interface is shipped with the beta. Object REXX for Windows has its own threading package, to provide the concurrency the "operating system" cannot. * * * * * * * * * * Simon Nash (IBM) -- Object REXX Class Hierarchy Simon Nash, the original developer of IBM's Object REXX, gave an invigorating presentation on the logic of the Object REXX class hierarchy that was continued by popular demand the following day. OS/2 Object REXX supports the Workplace shell. Asked about SOM, Simon said that the current thinking is that if it is there it will be fully supported by Object REXX, but Object REXX will not depend on it. * * * * * * * * * * Luc Lafrance (Simware) -- How Simware Implement REXX on Multiple Platforms Luc Lafrance emphasized Simware's commitment to REXX (5 of their 30 developers are currently working on REXX). Their REXXware is now on three platforms (Windows, Macintosh, and NetWare). The price of the NetWare version is $695. (REXXware has been tested and approved by Novell.) * * * * * * * * * * Timothy Sipples (IBM) -- Working (and Playing!) with REXX and OS/2 Multimedia Tim Sipples is the author of the OS/2 FAQ. He joined IBM quite recently. He gave a very enthusiastic presentation on REXX and MMPM/2. (Although a friend groused that everything Tim was showing could have been done on a Mac years ago, I was impressed enough to come home and install MMPM/2 and gather up a few film clips.) Help for using REXX with multimedia is found in the Multimedia folder. Sipples mentioned that in the CDROM distribution of OS/2, there are a large number of multimedia files that are not found in the diskette distribution. His contributions to the Symposium diskette were a BMP file included by audience demand after it appeared in his presentation and DIAL11, a REXX MMPM/2 telephone dialler written by Helge Hafting. * * * * * * * * * * Edmond Pruul -- REXX Reuse and Portability Edmond Pruul, a former CMS developer, led the group in a discussion of REXX portability issues. * * * * * * * * * * Doug Benson (Lotus) -- Ami Pro and REXX Doug Benson of Lotus demonstrated using REXX with Ami Pro. He said that despite the fact that Lotus continues to develop its own scripting language, it has a strong commitment to REXX. Lotus had moved all of its OS/2 developers (hundreds of them) to Windows, but in the last 1.5-2 years many have been moved back to OS/2, and 50 more have been hired to work on OS/2. Lotus will be coming out with new OS/2 versions of all of its major products, and those will all be REXX-enabled. * * * * * * * * * * Mark Hessling (Griffith University) -- Using REXX as a Database Tool Mark Hessling, from Griffith University in Australia, is the author of THE ("The Hessling Editor"), a KEDIT-lookalike for UNIX that can be FTPed from Waterloo. Hessling has recently written GUROO, the Griffith University REXX Oracle Overseer, a REXX external function package that provides a REXX-Oracle interface. They use it with Anders Christensen's Regina (a REXX for UNIX implementation). GUROO will not be distributed, but Hessling and a friend are considering doing another similar implementation that would be. * * * * * * * * * * Lee Krystek (Boole and Babbage) -- Using REXX in a Unix Environment to Manage Network Operations Lee Krystek of Boole and Babbage discussed B&B's COMMAND/Post product, a UNIX application for managing complex network operations. They chose REXX (the Workstation Group's uni-REXX) for their implementation for a number of reasons, including the powerful message parsing capability and the ability to pass commands to underlying environments. I have a copy of Krystek's paper. * * * * * * * * * * Hal German (GTE) -- Choosing a Command Language: an Application-centric Approach Hal German discussed his methodology for selecting the most appropriate language for an application. * * * * * * * * * * Anders Christensen (Sintef Runit) -- Techniques for Performance Tuning REXX Interpreters Anders Christensen is the author of Regina, a free UNIX REXX. Regina is available via anonymous ftp from ftp.pvv.unit.no (in /pub/rexx). A new version (0.07a) will be made available shortly. Anders has made very substantial reductions in Regina's CPU use since the last Symposium. One of the most important changes he made was to store pointers into the variable structure in the parse tree. I have a copy of Anders' paper. * * * * * * * * * * David Shriver (IBM) -- REXX for CICS/ESA: "Get more CICS with REXX" I was rather astonished at the extensiveness of the new REXX for CICS. In the process of adding support for REXX, the CICS folks have also added a hierarchical directory structure ("the REXX File System"), an application development environment, and dynamic commands, as well as a passel of other functions. Although REXX is announced for only the MVS CICS, they clearly intend to support REXX in the other CICS environments. I have the foils from this presentation and a glossy about the product (which GAs later this year). * * * * * * * * * * Hobart Spitz (NYC MTA) -- Converting JCL to REXX Hobart Spitz described his experiences in converting two large MVS production shops from JCL to REXX, resulting in substantial simplification and greater control. I have his handout. * * * * * * * * * * Eric Giguere (Watcom) -- REXX-Enabling OS/2 Applications Eric Giguere, stepping in at the last minute for a missing speaker, provided an excellent introduction to REXX-enabling OS/2 applications (both making an application call REXX macros and allowing those macros to invoke subcommands in the application). Though I have pages of notes, I think it wiser to refer people to Eric's article on this topic, which is to appear in a forthcoming issue of "OS/2 Developer" that will be devoted entirely to REXX. * * * * * * * * * * Linda Littleton (Pennsylvania State University) -- REXX Resources on the Internet Linda Littleton presented a very useful compilation of the REXX resources of the Internet and BITNET (LISTSERV lists, FTP sites, and gopher sites). I have copies of her handout. Mike Cowlishaw also referred us to the gopher at index.almaden.ibm.com, which is a source for the REXX CPS ("clauses per second") standard used in measuring REXX implementations. * * * * * * * * * * Other comments: During the Symposium, Charles Daney (the author of Personal REXX) said that he highly recommends Dick Goran's OS/2 REXX handbook. (Goran, Richard K., "REXX Reference Summary Handbook", Second Edition, ISBN:0-9639854-1-8, $19.95.) Goran's coordinates: CFS Nevada, Inc. 953 E. Sahara Ave, Suite 9B Las Vegas, Nevada 89104-3012 (702) 732-9616 72200.347@compuserve.com Another book spoken well of during the Symposium was "Object Oriented Design with Applications" by Grady Booch (Benjamin Cummings, 1991, $44.95). Gabe Goldberg, co-author of "The REXX Handbook", was unable to attend the Symposium but sent a letter to the attendees asking for feedback on TRH, in preparation for a possible second edition. Gabe's coordinates: Computers and Publishing, Inc. 13382 Brookfield Court Chantilly, VA 22021 (703) 968-5738 gabe@access.digex.net Other events in conjunction with the Symposium included a meeting of the REXX Language Association and a meeting of the REXX ANSI Committee. A dinner was held to celebrate REXX's 15th birthday, slightly belatedly. Perhaps the most amusing reminiscence of that evening was Simon Nash's story of having lunch with Mike in the cafeteria and telling him that he wasn't sure the world was ready for this new language Mike was thinking of writing. One of the stars of the evening was Ray Mansell, whom Mike believes to be the first person to have written a REXX program. Ray spoke of having convinced a crusty manager to give Mike some free time to work on REXX, despite that manager's belief that JCL was all one really needed. One post-Symposium comment: The following is from a description of HEDI, the Harvard Electronic Data Interchange, in a recent posting by Michael Laing (mpl@tegsun.harvard.edu). It seems to be an opportunity for the Symposium Program Committee to find a speaker for next year and for IBM to find a potential user for Object REXX across many platforms: Current implementations include: 1) REXX on IBM Mainframe (VM), PC (DOS), and Sun (SunOS 4.1.3); and 2) Prograph on Macintosh (MacOS 7.x). The REXX implementations are rather complex because REXX is not (yet) object-oriented. Nonetheless they are very easy to extend and REXX's built-in parsing capability is handy. The Prograph implementation is powerfully object-oriented, but the language is not widely known; additionally, this implementation currently handles fewer object types than the VM or SunOS REXX versions. It is implemented as a background agent however and processes transactions quite quickly without the user noticing any slowdown. Prograph is moving cross-platform to Windows NT/3.1 and Unix. Melinda Varian Office of Computing and Information Technology Princeton University - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (Reproduced with the permission of the author.)