Why use Rexx?
Rexx is fun and it's free. It's easy but offers great power. You can start scripting Rexx immediately, yet you won't outgrow the language if you are a high-end, power developer. See more benefits here.
As a power developer, why do I care about Rexx’s ease of use?
You’ll be incredibly productive when freed from the shackles of syntax-oriented programming. You’ll make fewer mistakes and spend less time debugging. You can develop large, complex applications very quickly. Your applications will have fewer bugs and be highly reliable. Power developers are the biggest beneficiaries of an “easy” language like Rexx.
What sorts of applications is Rexx good for?
Rexx is a general-purpose language that offers thousands of free add-on tools. It is used for almost any imaginable application. Examples include web programming, server control, PC-based scripting, handheld programming, mainframe job control, XML and text processing, and many, many others.
Are there any applications where one would not use Rexx?
Years ago interpreters like Rexx, Tcl/Tk, Perl, and Python were too slow for some applications. Given the great improvements in both hardware and language technology, today these scripting languages are used for almost any application. This academic study (PDF file) verifies this in its comparison of Rexx and other scripting languages to C, C++, and Java.
You might still choose a compiled language over scripting languages if you absolutely have to optimize machine performance and are willing to do so at the cost of your labor. Examples might be a high-volume OLTP application or a scientific application that does intensive number-crunching. Rexx and other scripting languages tend to be poor choices when programming directly to hardware, for example, when writing a device driver for an operating system.
What platforms does Rexx run on?
Rexx runs on nearly any platform, from phones and handhelds to laptops to PCs to servers to mainframes. It runs on all major operating systems and a large percentage of the “niche” systems as well. Rather than list all the operating systems on which Rexx runs, we list the major operating system "families" (groups of related operating systems) on which it runs --
Windows, Linux, Unix, BSD, Android, Mac OS X, Mac OS “classic,” DOS (32- and 16- bit), i5/OS and OS/400,
mainframes (all mainframe operating systems including OpenEdition for zSeries & s/390, z/OS, z/VM, & z/VSE),
and handhelds (Windows CE, Windows Mobile, other Windows, Android, iOS (jailbroken), Symbian/EPOC32, Palm OS, DOS emulation).
Rexx also runs on many important niche systems including OS/2, eCS, osFree, AmigaOS, AROS, MorphOS, VAX, BeOS, QNX, SkyOS, AtheOS, Syllable, others.
What operating systems bundle Rexx?
Rexx comes bundled with all IBM mainframes (on all mainframe operating systems), i5/OS, OS/400, OS/2, eCS, OS/2 Warp, osFree, AmigaOS, AROS, MorphOS, SkyOS, and IBM's PC-DOS versions 7 and 2000.
Rexx is the predominant scripting language on all these systems (except PC-DOS).
How many developers use Rexx?
As with every free or open source language, there is no way to compile accurate statistics, so no one knows.
Rexx predominates on the systems with which it is bundled (listed in the answer to the previous question).
Rexx is widely enough used that its user community has attained the "critical mass" to offer:
* Excellent support through many active forums
* Enough free tools to accomplish any task
* A selection of excellent free interpreters that run on nearly any platform
* Support in many spoken languages by users in countries around the world
How many free tools are available for Rexx?
Thousands. Our Tools section lists many of them and gives hot links to download them.
Are there different versions of Rexx?
Rexx comes in three basic varieties --
1. "Classic" Rexx. This is a procedural programming language, defined by Rexx’s
ANSI 1996 standard.
2. Object Rexx. This is a superset of classic Rexx, fully extended for object-oriented
programming. All object-oriented programming features are completely supported, including
messaging, classes, objects, single and multiple inheritance, data hiding and encapsulation,
polymorphism and operator overloading and a large class library. All Classic Rexx
programs will run under object Rexx without alteration.
3. NetRexx. This is a "Java-compatible," Rexx-like language. It coexists interchangeably with
Java code and runs under the Java Virtual Machine. You can develop applications, applets,
servlets, and beans with NetRexx, then intermix their use in any way desired with Java
components. NetRexx uses Java classes and can be used to develop classes for use by
Java programs. NetRexx will even generate fully commented Java code.
The article “Rexx: A Quick Overview” describes the three Rexx varieties and their uses.
How many free Rexx interpreters are there?
There are 7 free Rexx interpreters, 2 free object-oriented Rexx interpreters, and the free Java compatible NetRexx. Download any of them from our Downloads section.
Why is there more than one free Rexx distribution?
Rexx is standardized by the 1996 ANSI standard and is not controlled by any one company or individual. Since it is a widely-used, useful language, this has resulted in the availability of several free interpreters. This is a great benefit because you can select the interpreter you like -- one optimized for speed, extended for a particular operating system, or whatever. The main downside is that not every free tool works with every interpreter.
Are there 64-bit Rexx interpreters?
Yes, among them Regina and ooRexx. See the Downloads page for information and download links.
Does Rexx run on Handhelds?
Yes, Rexx runs on most handheld operating systems, see here and here.
Is Rexx standardized?
Yes. Procedural or "classic" Rexx was standardized by American National Standards Institute in 1996. The ANSI-1996 standard (PDF file) adds just a few very minor new features beyond the previous standard from 1990, called TRL-2. Every free Rexx interpreter at least conforms to TRL-2. The single exception is NetRexx, a "Rexx-like" language designed to integrate into the Java environment.
Rexx's standardization yields portable code and renders your Rexx skills transferable across systems.
Is Rexx a "scripting language" or "command language" ?
Both. When Rexx was invented twenty years ago, IBM termed it a "command language" or "command procedures language" because it is excellent for issuing and managing operating system commands. Today most people call such languages "scripting languages."
Read more about scripting languages at our new web page here.
Either terminology can be used. Rexx can be called either a scripting language or a command language.
Can I use Rexx as a macro language or an embedded language?
A macro language is a scripting language that provides programmability within some other software product. Rexx is a macro language for many products. Examples include various editors (THE, Hack, Xedit, Kedit, uni-XEDIT, ISPF Editor, and S/EDIT) and a variety of other products (such as PPWizard, PMGlobe, QMF, QMF/Calc, and SAS via SASMACRO under CMS). The list also include Microsoft Office, Microsoft’s WSH and ActiveX -enabled products, and Open Office. The applications that use Rexx as a macro language run on platforms ranging from mainframes, to Linux/Unix/BSD, to Windows.
An embedded language is used for developing applications that are embedded within hardware/software “appliances.” Rexx is useful as a small-footprint embedded language that runs under nearly all handheld operating systems. These include all forms of embedded Windows (Windows CE, Windows Mobile, etc), Palm OS, Symbian/EPOC and EPOC32, and DOS emulation.
What techniques does Rexx use to combine ease of use and power?
Rexx is easy because it is a free-form, English-like language that requires almost no syntax (this contrasts to the Unix shell languages and Perl, which use almost every symbol on the keyboard). Rexx has a very small instruction set, surrounded by a rich function set. You can start programming right away and expand your knowledge of the language's functions at your own pace.
Many free tools for Rexx come in the form of "external function libraries." External functions are very easy to use because you use the same syntax to invoke these additional functions as those built into the base language.
Rexx is powerful due to its large built-in function library, its easy extensibility by external function packages, its integration and extension through standard interfaces to other languages like C, its string manipulation capabilities, and its huge set of free add-on tools. Anything you can do in any other scripting language, you can do in Rexx.
Rexx looks easy to code in. Won't I run out of power using such an easy language?
No, Rexx is easily extensible and offers thousands of free add-on tools. It's a power language.
The article "Power through Simplicity" explains how power can be based in languages that "look" simple and the advantages to this approach to power programming over languages that "look" powerful.
How easy is it to learn object-oriented Rexx if you know “classic” REXX?
It's easy to transition into object-oriented Rexx programming because the object-oriented interpreters are true supersets of the procedural language. Since any classic Rexx program runs under object-oriented Rexx, you can program procedurally or object-oriented, or mix the two however you like. If you are new to object-oriented scripting, add these features to your procedural Rexx scripts at any pace you prefer.
Is the language called “REXX” or “Rexx”?
Either is correct. You’ll see it written both ways.
Where can I get more information? Just go back to the main menu...