Rexx – King of Languages

Howard Fosdick wrote about one of my favorite languages, Rexx, on OnLAMP earlier this week.

For many years, I did almost all my programming in Rexx, mostly on VM/CMS but occasionally on TSO or OS/2; it was a language well-suited to the environment and to the kinds of problems I had to deal with, especially when augmented with tools like WAKEUP (providing event handling) and RXSOCKET (TCP/IP socket access), as well as the invaluable CMS Pipelines. One of the best features of Rexx was its ubiquity on VM/CMS; because it used system hooks, it was available as a macro language for any program which needed one — and so it was far easier for a developer to use Rexx than to make up a unique language.

Back in 1989, Almaden’s only connection to Usenet was an AIX box, which dialed out once a day and fetched the day’s postings. I wanted real-time access to Usenet, especially (this was long ago, before spam was invented, and so there was some actual content on Usenet), but our only connection to the ARPANet was on VM. So I wrote some Rexx code to gateway postings through VM to the AIX box (and back); it was probably about 2000 lines of Rexx and needed four virtual machines to run (CMS was single-threaded). Since the postings were traversing VM, it also seemed like a good idea to gateway them into our VM-based conferencing system — and at one time, that traffic accounted for 25% of the network traffic in IBM.

Rexx was the native macro language on OS/2, as well, and at one time, my OS/2 Gopher client had a hook to allow writing Rexx macros. Unfortunately, I never figured out any use for macros in a Gopher client, and so I never documented the hook (I think I removed it before the official release of the Gopher client). But Mike Cowlishaw took great advantage of the OS/2 support of Rexx when he wrote the OS/2 Gopher (and later Web) server, GOSERVE — of course, he was also the author of Rexx, so it was a natural decision for him!

I don’t use VM/CMS much any more (I still have an account, which I use once every 90 days to change its password); I still do have a mission-critical Rexx program which converts my paystub into QIF form so I can import it into Quicken. And my preferred text editor, Kedit, uses a 90%-subset of Rexx as its macro processor.

These days, I tend to write in Python — it has much the same “feel” as Rexx, and it makes it easy to get to SOAP, XML parsers, and the like. I tried Perl for a while, but didn’t like the style of the language. I’m playing with Ruby a bit, but haven’t really gotten down to writing anything real, and I can get by in PHP when I need to (for example, in customizing WordPress). But I still miss Rexx.

One last ending

It’s been fun here on, but it’s time for me to move to my own domain.

Please come and visit me at my new home, Read This Blog!, because everyone is entitled to my opinion.

Where’d the week go?

I’ve been running heads-down all week, making some progress on several fronts, but not enough on any of them.

At work, I’ve had three major projects going this week:

  • writing what I hope will be a significant report to the CIO’s office
  • building a combination blog and status report aggregator for my team (in other words, working with a colleague to put WordPress on a machine that he controls, playing with the theme, and pointing people at it)
  • trying to migrate a wiki from MoinMoin to MediaWiki in hopes of getting it off the machine in my office before what I thought was going to be a lab-wide powerdown for the long weekend. There is no clear path between the two wiki syntaxes; I got partway there by writing a new formatter for MoinMoin, one which produces something close to MediaWiki markup, but the results still need manual fixup. But the good news is that they don’t plan to turn off power in my wing after all, so there’s no urgency.

At home, I’ve been spending too much time doing work — e-mail is never-ending, it seems. But in my spare moments, I’ve also been working on building a migration path from Manila to WordPress (well, most likely to RSS2.0 so that I can use the existing migration tool in WordPress from there); I’ve learned a lot about Python’s SOAP support in the process, since I’ve had to get around some non-well-formed XML produced by Manila (pages with subscribers or trackbacks are the ones affected). I’m not quite there yet, but I have hopes of moving content this weekend.

That, of course, assumes I do anything with the laptop at all this weekend; last night, I was sufficiently beat by the time I got home that I left it in the briefcase instead of working. And I enjoyed not working so much that I didn’t even check my mail this morning until I arrived in the office — and, sure enough, the world did not stop spinning because I waited. I’ll have to keep that in mind next week.

It looks like a great weekend for geocaching, too — temperatures are going to be very pleasant, and we don’t have anything on the calendar after services tomorrow (Diane’s reading Torah, so we have to be there). I picked up a Zire 31 at the Shir Hadash gala earlier this month with the specific idea of using it for paperless caching — it’s time to act on the idea.

Hmmm…3:37 on a Friday before a three-day weekend…I think that’s close enough to a full day for me!

Car update

State Farm called yesterday to tell us how much they’d give us for the totalled Prius; the number was quite reasonable, but we’ll still be well short of the price of a new Prius. I was pleasantly surprised that they also will repay us for the unused registration and for the sales tax on the car (well, for the amount they cover) — I hadn’t thought of that at all.

So now we’re on the waitlist at three dealerships so far, and I should call some others over the weekend, on the extremely limited chance that there’ll be a blue BC available locally.

Still getting set up

Thanks to Ed Costello, I discovered that I had a backlevel of WordPress, one which didn’t properly create the RSS and Atom feeds. So I updated the site yesterday, and that should be fixed.

I’m amazed that people have actually found this blog already; I wasn’t planning to advertise it until I’d figured out how to migrate the content from Defenestration Corner. I guess I’d better get busy on that!