You might have heard of the Rexx scripting language from its role as the dominate scripting language on mainframes, OS/2, and the AmigaOS.What you may not know is that today free Rexx runs on nearly every operating system. This includes Windows, Linux, Unix; the major handheld operating systems such as Windows CE, Palm OS, Symbian/EPOC; mainframe systems including z/OS, z/VM, and z/VSE; and a wide variety of other operating systems such as Mac OS X, BSD, OpenVMS, DOS in all its forms, BeOS, QNX, eCS, osFree, AROS, AtheOS/Syllable, i5/OS, AS/400, and others.
Rexx is known for combining ease of use with power. This is not an easy synthesis to achieve because these goals naturally conflict. Rexx’s inventor, Michael Cowlishaw, employed a variety of special techniques to blend the two goals in a single language.
For example, Rexx is free-format and case-insensitive. It has very little syntax and a tiny instruction set. Yet its large built-in function set makes it powerful. And external functions are accessed just like built-in functions. Rexx scripts easily leverage existing code, in the form of programs, objects, functions, operating system commands, external interfaces, APIs, and the like.
Combining ease of use with power gives Rexx a very different personality than the scripting languages that evolved from the Unix tradition, such as Perl, Korn, Bash, Awk, and the C-shell. Rexx yields power without the burden of complex syntax. Rexx complements these other scripting languages more than it competes with them because their personalities vastly differ.
Free Rexx comes in the form of eight different free interpreters. All are “standard Rexx” plus extensions or features that adapt the language to particular platforms or goals. Some interpreters are extended for Windows, others for Linux or handhelds, while still others optimize execution speed or maximize portability. I list all the Rexx interpreters and where to download them at the end of this article.
Beyond Standard Rexx
Rexx comes in two fully object-oriented versions. Open Object Rexx is supported by the Rexx Language Association. It supports all object-oriented programming features like messaging, classes, encapsulation, inheritance, overloading, and the like. It features a huge hammer of a class library. roo! is an alternative OOP implementation that includes different operators, classes, and methods. Open Object Rexx runs under Linux, Unix, and Windows, while roo! is strictly a Windows product. roo! features an impressive set of tools and utilities for creating forms and GUI objects, working with XML and HTML, and programming the Windows command line.
Both Open Object Rexx and roo! are true super-sets of classic, procedural Rexx. They run traditional Rexx scripts yet allow developers to seque into object-oriented programming at any time and to any degree. Rexx presents an alternative to object-oriented scripting with Perl or strictly OO languages like Python or Ruby.
NetRexx brings “Rexx-like” scripting to the Java environment. Develop applets, applications, servlets, beans, and classes with NetRexx. NetRexx scripts use Java classes and NetRexx can be used to develop classes used by Java programs. NetRexx even generates fully commented Java code. This brings Rexx’s ease of use to the Java environment in the form of a fully Java-compatible tool.
Rexx has an international standard to which all Rexx interpreters adhere, except NetRexx. The language’s world-wide user community is especially strong in the new Europe. The Rexx community has produced undreds of free Rexx tools and interfaces. With these tools Rexx scripts program relational databases, XML, GUIs, forms, web servers, Apache, CGI, ActiveX controls, objects, editors, and other interfaces.
To Learn More
To get started, check out the Rexx Language Association web site. The new book Rexx Programmers Reference tells everything about the language, its interpreters, tools, and interfaces in its 700 pages for under $30.
Where to Get Free Rexx
Regina runs across a wide variety of operating systems. It is probably the most-widely-used free Rexx interpreter and it features professional documentation and a long-term support record. Regina has a vast set of “extended functions” that provide extra features beyond the Rexx standard.
Reginald is a standard Rexx specifically enhanced and extended for Windows. It includes hooks into Windows and provides the kind of support for Windows features that developers expect.
r4 is another standard Rexx specifically extended for Windows. It features a large set of command line tools and utilities and is especially easily to learn and work with. It is available from the same vendor as roo!, a fully object-oriented superset of classic procedural Rexx that comes with a complete set of utilities and tools for Windows programmers.
BRexx is the fastest Rexx interpreter. It has a tiny footprint and runs on Windows CE, as well as Windows, Unix, Linux, Mac OS X, DOS, AmigaOS, and other systems.
Rexx/imc is an interpreter for the Linux, Unix, and BSD platforms. It features Unix-friendly extensions and has a track record for support spanning back a decade.
Rexx for Palm OS brings Rexx programming to the Palm operating system. It integrates Rexx “applets” with all Palm resources. You can develop Palm applications that execute merely by a pen-swipe and intergrate various applications and Palm resources.
Open Object Rexx is a fully object-oriented superset of classic procedural Rexx that runs under Linux, Unix, and Windows.
NetRexx is a “Rexx-like” language that runs in the Java environment. NetRexx scripts use Java classes and can be used to develop applets, applications, servlets, beans, and classes.
About the Author:
Howard Fosdick is an independent consultant who has worked in most major scripting languages. He is the author of the comprehensive new book Rexx Programmers Reference.
If you would like to see your thoughts or experiences with technology published, please consider writing an article for OSNews.