My Personal Rexx Journey

My Rexx Journey

This website is a Rexx "tribute site" -- an ad-free site I maintain at personal expense to honor the most impressive programming language I've ever worked with.

My hope is that the site proves useful to Rexx programmers, and also to all those who want to learn about Rexx.

*   *   *

In the course of my long career, I've worked with quite a few programming languages. There were the Unix & Linux shell languages for example: KornShell and Bash. Powerful, and a lot of fun for me to work with as an individual, but not easily maintained by companies who write much code with them.

Many domain-specific languages also suffer this defect of complexity. Think of AWK, for example. A syntax nightmare, really.

And of course, HTML/CSS/JavaScript: three entirely different languages for one task. Of which one -- HTML -- features syntax unfriendly to the humans who have to work with it.

Which brings me to Perl. Powerful and versatile... the world's at your command, and you can do anything with it! But like the *nix shell languages, I surely wouldn't want to be the IT manager responsible for keeping a big code base of this working. Who would you hire to maintain it? And how productive could they be in the task?

In the world of software vendors and software engineers, it makes sense to create products in such powerful-but-difficult languages as Perl and the shell languages. You need the best and most appropriate tools for the job, and you have the skills and the team to handle them.

But at the everyday IT shop, no. Just no. Beyond some essential infrastructure where it's necessary, betting your company on such hard-to-maintain systems is not wise. You want the machines to do the work (that's why you bought them). Not your programming staff.

I'd group languages like assembler and C into this category as well. Their power comes at the cost of your time. Their allure is their closeness to the machine, and the control this gives you. If you face a problem that requires that, then these are the ideal tools to solve your problem. But of course these languages are not very productive for high-level solutions.

If the goal of a programming language is to shift the burden of creating apps from the human to the machine, all the languages I've mentioned thus far don't score very highly.

Then there are the programming languages at the opposite end of the spectrum. These are easy to code and maintain, but sometimes lack the programming power you need. Some forms of BASIC fall into this category, as well as some domain-specific languages. I remember many nights of trying to work out problems in SQL, for example. (Will joining that table to itself allow me to calculate the rolling averages? But what if I want to attach a historical value to each?) Ugh... SQL koans. Thank goodness Oracle bucked the SQL mania of the 1980's and came up with PL/SQL.

Let's recap, just so there's no misunderstanding. I'm not bashing any of the programming languages I've mentioned here. Each has its use and its benefits. That's why there are so many different programming languages. It's different tools for different tasks. The world needs this variety -- and computing history proves it. And from the personal standpoint, I've enjoyed working with every one of these languages.

Then There's Rexx

Rexx somehow manages a miracle. It's easy to write and easy to maintain. Yet it's still as versatile and powerful as you need for nearly any application. Its extensible design is one reason. Just add a function library, code a line in your script to access it, and voilĂ ! The power is yours, yet the syntax remains simple, and the code remains easy to read and maintain.

Rexx came along at a time in history when processing was migrating from batch to interactive. With the rise of teleprocessing systems like TSO and CMS, the mainframe world -- predominate at the time -- badly needly a "scripting" or glue language to tie it all together. Plus, the tool had to easily issue system commands and even function as a macro language.

Mike Cowlishaw, at IBM in the UK, came up with the solution: Rexx. Easy as BASIC, but standardized everywhere -- and with unlimited power. No surprise that Mr. Cowlishaw is an IBM Fellow, a Fellow of the Royal Academy of Engineering, and the recipient of so many other honors. (And Rexx is just one of his many career accomplishments!) Mr. Cowlishaw invented what is widely considered the world's first general-purpose scripting language in Rexx.

Rexx combines power with ease of use so effectively that it quickly spread to every platform you can imagine. Today it runs everywhere. And as this website shows, you can download open source Rexx, its tools, tutorials, documentation, and everything else you'll ever need -- for free.

To me, Rexx has a certain sort of beauty. Yes, you can write crappy, obscure Rexx code, just as you can with any programming language. But you almost have to try to do it. For the great majority, Rexx is easy to work with, powerful, and easy to maintain... and most important of all, it's fun!

Enjoy Rexxing!

    your webadm