Rexx – A Quick Overview by Howard Fosdick ©
The Rexx scripting language is known for combining power and ease of use. Invented at IBM over two decades ago, it predates many other popular scripting languages, such as Perl, Python, PHP and Tcl/Tk.
IBM bundled Rexx with all its operating systems (OS, VM, VSE, OS/2, OS/400, i5/OS, and PC-DOS). But Rexx's popularity slipped as IBM and its mainframes lost their dominance.
Today Rexx experiences renewed popularity as scripting languages explode in importance. The open source software movement places scripting languages front and center as powerful general-purpose programming languages.
The result is that today there are nine free Rexx interpreters. Rexx runs on every available operating system including mobile phones, handhelds, laptops, PCs, servers and mainframes.
Hundreds of free tools interface Rexx to every imaginable technology, including relational databases, SQL, XML, Apache, CGI, web tools, GUIs, Tk, graphics and imaging tools, ActiveX controls, Windows Script Host and ... you name it. A vibrant international user community conducts online forums in several spoken languages.
Rexx comes in three varieties. Classic Rexx is the procedural language that's been with us for two decades. Classic Rexx distinguishes itself by combining power with ease of learning and ease of use. Normally these goals conflict. Rexx embodies numerous techniques to meld them.
You can learn classic Rexx in a matter of days, yet you won't run out of power as you become proficient in the language. This is why classic Rexx became the premier scripting language for mainframes, OS/2 and the Amiga OS. Microsoft bundled it in its early Windows Resource Kits. Today classic Rexx runs everywhere.
Like Linux, Rexx comes in different "distros." This differs from scripting languages like Perl or Python that have a single source. Some Rexx interpreters support particular platforms or are optimized for specific purposes. Others are specific to one of the varieties of Rexx.
Different "distros" gives you the advantage (and the burden) of making a choice. Download the interpreter that best meets your needs. Or download and test several. They're all free.
All the distros meet the Rexx language standard, called TRL-2. Rexx also has an international ANSI standard, referred to as ANSI-1996. So code developed with one Rexx intepreter runs under any other, as long as you stick within the standards.
A driving decision-point in choosing a Rexx interpreter is the host operating system. Regina, Reginald, BRexx and r4 are the candidates for Windows, while Regina, Rexx/imc, and BRexx are available for Linux. For handhelds, use BRexx for Windows CE, Regina for Symbian/EPOC and Rexx for Palm OS for Palms.
Object-oriented Rexx is a superset of classic Rexx. It fully supports object-oriented scripting with classes, messaging, single and multiple inheritance, encapsulation and data hiding, operator overloading and polymorphism and a robust class library. Any classic Rexx script runs under object Rexx, and staff can easily transfer their skills to object Rexx. Object Rexx brings Rexx's ease of use to object-oriented scripting.
There are two object Rexx distributions. Open Object Rexx was invented at IBM and is today supported by the Rexx Language Association. OORexx, as it is called, is a popular object Rexx distro and it runs under Windows, Linux and Unix. It integrates with Windows through ActiveX, Object Linking and Embedding (OLE), Windows Script Host (WSH), Active Directory Services Interfaces (ADSI) and Windows Management Instrumentation (WMI).
Object-oriented roo! is offered by Kilowatt Software, which also produces the classic r4 interpreter. It is also fully object-oriented and offers the advantage of classic and object-oriented interpreters from one vendor. Kilowatt Software offers excellent free tutorial and reference materials with their interpreters.
Rexx for Java Integration
NexRexx is a Rexx-like language for scripting in Java environments. It represents the third variety of Rexx. NetRexx scripts use Java classes and can be used to create classes used by Java programs. You can develop applets, applications, servlets, and Enterprise Java beans with NetRexx.
IBM studies show that NetRexx reduces the number of lexical tokens versus Java source for a typical class by about 35% and it requires 20% fewer keystrokes. NetRexx can be intermixed to any degree into Java-based systems. It can even generate fully commented Java code. NetRexx brings Rexx's ease of use to the Java environment.
So there you have it. One of the oldest scripting languages is blossoming anew as the open source movement drives scripting into the IT mainstream. I'll wrap up with a few more resources. The beauty of the open source movement is that it's easy to get started ... most resources are freely available on the Web.
Howard Fosdick is an independent consultant who has worked with most major scripting languages. He's the author of the Rexx Programmer's Reference, which covers everything about Rexx, its interfaces, and tools in 700 pages for about $25.