Who Uses Rexx? And Where?


by Howard Fosdick  ©2024 RexxInfo.org


Rexx Logos

Introduction

Who uses Rexx, and where do they use it? This article attempts to answer these questions.

It's based on the feedback I receive as administrator for the RexxInfo.org website. And also on some intensive web research. Unfortunately, the lack of usage statistics means it relies on educated guesses, so I urge any reader with pertinent information to contact me, and I'll improve the article.

To be clear, this article is not about whether Rexx is a good programming language, or whether more people should be using it, or whether it's better than "Language X". It's strictly a dispassionate investigation into who uses Rexx and where.


Background

Rexx was the first general-purpose scripting language. It was invented in the early 1980s by Michael Cowlishaw at IBM.

Rexx's calling card is that it is both easy-to-use and powerful. That's a tough combination to pull off. (Rexx uses specific techniques to achieve this, which you can read about in this book if you're interested.)

Rexx offers the benefits of the best scripting languages: easy syntax, a clean design, and built-in interactive debugging. It acts as a glue language. So developers can stitch together all sorts of existing code (libraries, packages, interfaces, operating system functions, etc.) for higher productivity.

Rexx's success meant that it quickly spread to all IBM's mainframes. Then, to all IBM's other platforms, including mid-range and personal computers. Rexx was bundled with OS/2 and the Amiga computers from their inception. Microsoft included Rexx in their Windows Resource Kit in the early 2000s.


An ANSI Standard and FOSS

Rexx acquired an ANSI standard in 1996. Soon the language ran on every operating system and platform you can name, from cell phones to supercomputers. I know of at least 15 different Rexx interpreters that run on almost any platform. The strong Rexx standards give them an essential commonality.

Soon, nearly all the Rexx interpreters and tools joined the burgeoning free and open source software (FOSS) movement.

Open Object Rexx was unveiled in the 1990s. It features very complete object programming capabilities, including advanced features like multiple inheritance. It's a superset of what many now call procedural or "classic Rexx", so it runs all older procedural Rexx programs.

ooRexx, as it's now called, runs on all major operating systems (Windows, Linux, Unix, BSD, macOS, and Android). Like most Rexx interpreters, it's free and open source, and is supported by the Rexx Language Association.

Mr Cowlishaw, Rexx's creator, went on to invent another programming language, a Rexx-like language called NetRexx. NetRexx was the first language after Java to use the Java virtual machine. It fully integrates with Java and brings the coding simplicity of Rexx to the Java environment. You can use it to develop applets, applications, servlets, beans, classes, methods, and all other Java entities.

That's a bit of background. So who uses Rexx today? And where?


Mainframes

For decades, IBM has offered three primary mainframe operating systems. Most call these lines z/OS, z/VM, and VSEn, but their names have often altered slightly over the years. Rexx has been the default scripting language on these computers since the late 1980s. It still dominates today. There are tons of Rexx programs doing important tasks, and most mainframers are familiar with the language.

Beyond that, Rexx integrates to every mainframe subsystem. It's irreplaceable as an administrative or systems management tool. Its interfaces include: TSO, CMS, ISPF, Xedit, editor macros, MVS Batch, SYSREXX, RACF, CCA, SMF, SDSF, NetView, CICS, DB2, CONSOLE, GCS, LINK*, ATTACH*, SYSCALL, IPCS, CPICOMM, CPIRR, LU62, APPCMVS, OPENVM, Zowe, and all address spaces or environments.

Rexx is popular for user applications, too. IBM has even come out with a Rexx compiler. Develop your program with the interpreter, then compile it for optimal efficiency.

Given that Rexx dominates mainframe scripting, an interesting question is whether mainframe use is growing or decreasing. That would tell us if this pool of Rexx programmers is growing or shrinking.

IBM doesn't release sales numbers. The result is that you'll find no lack of passionate arguments for either side of this question on the internet. My own sense of it is that we're in a steady state.

Somewhere over 70% of Fortune 500 companies have mainframes. They process over 90% of the world's credit card transactions, for example.

Statistics show that large companies that have mainframes nearly always keep them. Mainframes continue their role as essential building blocks in large corporate data centers.

However, the once common scenario of new companies growing into mainframes is probably a story of the past. Now, new or growing companies have many alternatives to building the traditional mainframe corporate data center, including cloud services, parallel Linux servers, and other options.

Some argue that Rexx will fade as a mainframe language as the baby boomer generation that grew up with it retires. I don't believe so. I see much evidence that younger programmers in India are keeping Rexx alive and healthy. Those who think mainframe Rexx is contracting are probably mistaking a shift in staff location for a decline in usage.


All Other IBM Computers

As well as all its mainframes, Rexx runs on all other IBM computers as well. These include their popular mid-range i Series (previously known as i5/OS and OS/400). Rexx performs a unifying role across all IBM computers, providing a universal language for portability of both programmer skills and code.


ArcaOS, eComStation, and OS/2

Remember the "OS Wars" of the 1990s? Personal computers were moving beyond DOS and the big question of the day is what operating system would replace it: OS/2 or Windows? OS/2 had IBM's backing, but Microsoft convinced most developers -- and then the world -- that Windows was the better choice. Windows became the world's most popular operating system, and OS/2... well, what ever happened to OS/2?

The answer is that while OS/2 has completely left the public consciousness, it continues as a useful corporate product in specific niches. For example, it still powers the New York subway system and is used in some ATMs (automated tellers).

OS/2 support shifted from IBM to Serenity Systems in the early 2000s with their version called ComStation (eCS). Arca Noae, LLC took over about 2017 with their version, called ArcaOS. They continue sales and support today. Their most recent release came out in 2023.

The reason all this matters is that both classic Rexx and Object Rexx shipped as OS/2's default scripting languages. They're what most programmers would use by default. Had OS/2 won the "OS Wars", Rexx would likely have been one of the world's most popular languages!

Instead, OS/2-descended platforms -- with Rexx and ooRexx -- continue as a small but useful ecosystem. You can witness the platform's continuing use today at OS/2 websites, code repositories, or the annual Warpstock Convention.

But make no mistake, "OS/2 world" is a legacy universe. It continues to slowly contract since I did a deep dive into it a dozen years ago.

One last note: you might wonder why OS/2 never went open source. That would seem ideal for a useful niche product. It has to do with code ownership. IBM would gladly have consented to such a move -- as they did with ooRexx and NetRexx. But Microsoft owned pieces of the OS/2 code so open-sourcing never happened. Clearly, once they had won the OS Wars, Microsoft didn't want to let their opponent rise off the canvas!


ARexx

ARexx is a bit like Rexx on the OS/2-descended platforms in that it supports a small but active contingent of Rexx programmers. But whereas "OS/2 World" is a shrinking legacy universe, ARexx appears poised for growth. Let me explain...

The Amiga was a family of personal computers introduced by Commodore International in the mid-1980s. Like Apples, Amigas were admired for their technical superiority. And like Apple, the Amiga faced an uphill battle against the dominate Wintel monopoly of the day.

Apple survived the contest and went on to greater glory, but Commodore went bust. Yet the Amiga software that so many admired lived on. This includes the Rexx interpreter bundled with all Amigas as their scripting language, known as ARexx.

Today, ARexx is used in no less than four active platforms: AmigaOS 4, MorphOS, AROS, and aeROS (or AEROS).

AmigaOS 4 (or AOS4) runs on PowerPC processors. It's a closed source operating system that runs on PowerPC boards. You can obtain the latest release here.

MorphOS targets many Apple computers, the PowerPC, AmigaOne, and a smattering of other architectures. MorphOS mixes both open and closed source code. Its latest release came out in 2023.

AROS is an open source Amiga-like system that runs on both standard x86 PCs and PowerPCs. According to its website, builds are updated nightly and available through GitHub.

Finally, there is the European Union's aeROS project. This project brings AROS to Linux, effectively putting an AROS software layer on top of Linux. The ambitious goals include support for the Internet of Things (IoT), the Cloud, and AI integration. aeROS is an EU-funded project that is alpha testing as I write.

Altogether, these Amiga-like systems support an active pool of Rexx users. (Witness the results of their efforts at Aminet, a huge Amiga code repository.)

Based on these active projects and EU sponsorship, "Amiga World" appears poised for growth.

For more resources on ARexx and its operating environments, see this list.


Linux, Unix, and BSD

As an open source, cross-platform languages, classic Rexx, ooRexx, and NetRexx run on all forms of Linux, Unix, and BSD. Yet Rexx has never established a strong presence on these platforms. For example, for systems support and administrative tasks, most programmers would use the default shell language that ships with the operating system. In Linux, that's Bash.

The *nix platforms are overwhelmingly open source and thus offer a veritable flood of FOSS languages. Among them is Python, the world's single most popular programming language. Python shares the "Rexx ethos" -- it's easy to learn, easy to use, and easy to maintain. Yet it's very powerful and interfaces to all the tools you can imagine. Python duplicates Rexx's strengths.

Classic Rexx, ooRexx, and NetRexx all have their *nix users (I'm one of them!). But in terms of popularity, they've never broken away from the large pack of useful open source languages.

What about mainframe Linux? Linux on System Z has been available for over twenty years. It's a popular offering: at one conference, I learned that some two thousand mainframe sites run Linux, most in addition to traditional mainframe operating systems. The Linux Foundation's Open Mainframe Project continues its work with a healthy mix of mainframe vendors and Linux distributors.

I've heard differing opinions as to whether Linux mainframers have stuck with Rexx or transitioned to competitors like Python. If you have any definite information on this subject, please drop me a line.


Windows

Microsoft originally conceived of Windows as an interactive personal operating system. As such they didn't see much need for a scripting language for administrative or support tasks.

But as the company moved into the server space, Microsoft realized the need for systems automation. They offered Rexx in the Windows XP Resource Kit. They also came out with VBScript and the Windows Script Host in the 1990s. WSH interfaced to a half dozen languages including Rexx. In 2006, Microsoft obsoleted and superceded all these products with PowerShell.

Thus Microsoft grabbed ownership of scripting support for Windows. They had long ago established themselves as the primary player in the application space with Visual Basic and its several variants.

At the turn of the century, many Rexx interpreters ran under Windows. Three of them were specifically Windows-centric: R4, roo!, and Reginald. Today these three products are no longer supported, suggesting that enthusiasm for Rexx on Windows has waned.

Programmers continue to use Rexx, ooRexx, and NetRexx on Windows. Like many other FOSS languages, they are useful but relatively minor participants in the Windows universe.


Apple Computers

The story of Rexx and ooRexx on macOS is similar to the story with Windows. Apple promotes its own proprietary scripting language AppleScript in place of all competitors. Rexx and ooRexx are among the many useful FOSS alternatives that have their fans but have never gained significant market share on the platform.


Cell Phones and Handhelds

Rexx has run on handhelds since the days of the PalmPilot. Today, classic Rexx and ooRexx run on Android cell phones. They're fun, handy tools.

Couple ooRexx with an add-on called BSF4ooRexx, and the combination gives you all the capabilities of Java programming through ooRexx. You get the power of Java in an easier Rexx language on your Android.

Alternatively, you can run the BRexx interpreter with the Scripting Layer for Android, or SL4A. SL4A provides a host of functions to Android Rexx that give you full programming control of your phone.

Finally, a third Rexx interpreter called Rexxoid gives you the ability to program commands to the Android shell.

Judging by download statistics and the relatively few inquiries I receive about these products, my guess is that they prove their usefulness but don't support a large user community.


NetRexx

I couldn't leave this article without mentioning NetRexx. This product uses the Java development kit and virtual machine to integrate seemlessly with Java. It runs wherever Java runs. The goal is to bring the Rexx philosophy of a simpler, more human-oriented language to the Java universe.

NetRexx is truly an elegant language. It combines "...both Rexx strengths for scripting and for writing macros for applications and the Java strengths of robustness, good efficiency, portability, and security for application development."

NetRexx fans include a relatively small, eclectic mix of computer scientists, academics, and sophisticated programmers. Sometimes the value of a programming language bears little relationship to its popularity.


Conclusion

This article summarizes where programmers use Rexx today. It's based on a mix of the personal feedback I receive at RexxInfo.org and some intense internet research. Statistics on a topic like this are sparse, but I've used them where I could find them.

I'd like to improve this piece based on reader feedback, so please send me your comments to
gibberish@google.com webmasterA an-at-sign-goes-here RexxInfo a-period-goes-here org more-gibberish@aol.com. Thank you.

------------------------------------------
Go to RexxInfo.org