I don't hate REXX. In fact, I had an absolutely grand time using AREXX to script up all kinds of bizarre things on my Amiga, like using the progress percent of an FTP client as the parameter to some image program or another (ImageFX maybe?) to generate a bolt of lightning that grew from one corner of the screen to the opposite as my modem chugged away. It was neat and I love playing with it.
But, outside an environment like that where it was integrated into practically every major program running on the system, I wouldn't want to have to rely on it again. Programming languages that get rid of all the rules impose their own kind of mental overhead, and I'm not smart enough to be 100% detail-oriented 100% of the time.
It was still awfully cool. AppleScript is probably the closest modern, widely available similar language I can think of.
I only ever used ARexx on the Amiga back when I was a kid and it was amazingly powerful, though I'm not sure how much I'd consider this a function of the language itself rather than the ecosystem you got when all of your favourite software was built with it in mind.
Unfortunately, an ecosystem like that doesn't really exist on the desktop any more, so a lot of the utility is missing. Every now and then I feel an urge to try to mimic the sort of thing that you could do in ARexx easily, only on a modern desktop, and end up having to cobble together some D-Bus monstrosity that is not nearly as fun.
Yes, ARexx was also something different that is more akin to scripting AND having Microsoft COMs for interoperability. Really revolutionary at that time for automation and process interactions.
These days, Lua is a better alternative. Rexx isn't a bad language, but it's very dated. It's better than recommending BASIC, but only marginally. We have better alternatives these days.
Also, are there any decent embeddable Rexx interpreters around?
> I don't know why, but a search on either Bing or Google for "posix shell" points to the older version.
Probably because it's only been out for a few months. I've found Google is fantastic at returning Python 2.6 and Python 3.7 or 3.8 documentation without jumping through hoops in my search terms (if it lists the official documentation at all rather than blogs and random tutorials), but lousy at getting anything current. I imagine they have the same problem with other new material.
I love Rexx and have used it extensively on IBM mainframes and PC's way back. That said it seems like the ecosystem has moved away from the the types of integrations where Rexx was strong. On IBM mainframes it was always the tight integration with things like CMS and XEDIT that made it great.
If you're using Rexx today on e.g. MacOS or Linux I'd be interested in hearing how that's working for you... My goto for scripting these days would be Python in those environments (or bash).
Oh man, I remember using an XEDIT+Rexx email client back in the day on VM/CMS that was mind blowing for its time. The stuff available for Unix and VMS paled in comparison.
But it definitely was the tight integration with XEDIT and the OS that made Rexx so perfect. I don’t think it would work so well for my modern use cases.
Are the open source implementations of Rexx widely adopted? This article highlights them, but I don't think I've ever run across them. It would be interesting to hear about where these have been adopted, relative to other scripting languages that fill a similar niche (presumably mostly Python, Perl, and sh)?
(Apropos of nothing else, it seems worth noting that Rexx is a product within IBM's suite and that this website appears to be owned by Red Hat, now an IBM subsidiary.)
> All variables contain strings. If the strings represent valid numbers, one can perform arithmetic operations with them. This simple concept of dynamic typing makes all data visible and simplifies tracing and debugging.
Interesting to see duck typing advertised as a feature. I feel like the programming world is going strongly in the opposite direction.
> Interesting to see duck typing advertised as a feature.
Speed of development is a legitimate factor to consider when making a choice of language for a project.
> I feel like the programming world is going strongly in the opposite direction.
There's a concerted corporate effort to push the programming world in that direction. It's not born out of a particularly strong rationale and not backed by the kind of organic efforts that would actually ensure it's long term success.
Meanwhile we have the technology to fully isolate every process on a machine from everything else on the machine. Do we use this? No. Instead we harass programmers to use languages based upon corporate tastes instead of actual engineering acumen. The desktop doesn't get any more secure and opening a random text message can destroy your life regardless of what language the messaging application was coded in.
No.
I don't hate REXX. In fact, I had an absolutely grand time using AREXX to script up all kinds of bizarre things on my Amiga, like using the progress percent of an FTP client as the parameter to some image program or another (ImageFX maybe?) to generate a bolt of lightning that grew from one corner of the screen to the opposite as my modem chugged away. It was neat and I love playing with it.
But, outside an environment like that where it was integrated into practically every major program running on the system, I wouldn't want to have to rely on it again. Programming languages that get rid of all the rules impose their own kind of mental overhead, and I'm not smart enough to be 100% detail-oriented 100% of the time.
It was still awfully cool. AppleScript is probably the closest modern, widely available similar language I can think of.
I only ever used ARexx on the Amiga back when I was a kid and it was amazingly powerful, though I'm not sure how much I'd consider this a function of the language itself rather than the ecosystem you got when all of your favourite software was built with it in mind.
Unfortunately, an ecosystem like that doesn't really exist on the desktop any more, so a lot of the utility is missing. Every now and then I feel an urge to try to mimic the sort of thing that you could do in ARexx easily, only on a modern desktop, and end up having to cobble together some D-Bus monstrosity that is not nearly as fun.
Yes, ARexx was also something different that is more akin to scripting AND having Microsoft COMs for interoperability. Really revolutionary at that time for automation and process interactions.
These days, Lua is a better alternative. Rexx isn't a bad language, but it's very dated. It's better than recommending BASIC, but only marginally. We have better alternatives these days.
Also, are there any decent embeddable Rexx interpreters around?
Get it into POSIX.2 (or whatever it's called these days) and I will take a look at it.
Hopefully the language grammar can be expressed with lex and yacc. Not being so is a problem.
Here is a way to see what is in POSIX.2:
https://pubs.opengroup.org/onlinepubs/9699919799/utilities/
https://pubs.opengroup.org/onlinepubs/9799919799/ - newer version
To navigate to that same section: Click on "Shell & Utilities" in the top left, then "3. Utilities" in the bottom left.
I don't know why, but a search on either Bing or Google for "posix shell" points to the older version.
That's the one that I use.
I also prefer the plain Apache directory list for all the POSIX.2 utilities, so I am definitely sticking with Bing & Google's recommendations.
> I don't know why, but a search on either Bing or Google for "posix shell" points to the older version.
Probably because it's only been out for a few months. I've found Google is fantastic at returning Python 2.6 and Python 3.7 or 3.8 documentation without jumping through hoops in my search terms (if it lists the official documentation at all rather than blogs and random tutorials), but lousy at getting anything current. I imagine they have the same problem with other new material.
But if you want the current documentation and the Apache listing format: https://pubs.opengroup.org/onlinepubs/9799919799/utilities/
Thanks, I have added that to my stash.
Interesting that the old URL only differs by one character; changing the first 6 to a 7 gets the later list.
Rexx was the favorite language of my high school programming teacher. I recall being surprised by the syntax being so similar to English text.
I'd credit the language for sending me down the rabbit holes of programming language design, self-documenting code, and literate programming. :)
I love Rexx and have used it extensively on IBM mainframes and PC's way back. That said it seems like the ecosystem has moved away from the the types of integrations where Rexx was strong. On IBM mainframes it was always the tight integration with things like CMS and XEDIT that made it great.
If you're using Rexx today on e.g. MacOS or Linux I'd be interested in hearing how that's working for you... My goto for scripting these days would be Python in those environments (or bash).
Oh man, I remember using an XEDIT+Rexx email client back in the day on VM/CMS that was mind blowing for its time. The stuff available for Unix and VMS paled in comparison.
But it definitely was the tight integration with XEDIT and the OS that made Rexx so perfect. I don’t think it would work so well for my modern use cases.
I had the same thought. Loved REXX for work on the 3090 I had an account on in college, but haven't really considered it much since.
my first program was a mastermind clone written in rexx when i was working the night shift on an ibm mainframe as a tape monkey. happy days.
Are the open source implementations of Rexx widely adopted? This article highlights them, but I don't think I've ever run across them. It would be interesting to hear about where these have been adopted, relative to other scripting languages that fill a similar niche (presumably mostly Python, Perl, and sh)?
(Apropos of nothing else, it seems worth noting that Rexx is a product within IBM's suite and that this website appears to be owned by Red Hat, now an IBM subsidiary.)
I've found the GitHub topics to be helpful for "taking the pulse" type stuff https://github.com/topics/rexx or, in a more "shotgun" approach, finding repos that contain linguist-detected code https://github.com/search?q=language%3Arexx&type=repositorie...
Interesting the article is from Red Hat, which IBM owns :)
But I should check it out, I had Rexx with DOS a long time ago but never looked at it.
That makes perfect sense to me. I've never seen anyone use Rexx outside of an IBM-heavy environment.
REXX was often used as the scripting language for IVR systems. I haven’t touched an IVR system in 18 years so no idea if it still is.
Anyone wanting to do non-trivial scripting and owning an Amiga from Workbench 2 onward.
> All variables contain strings. If the strings represent valid numbers, one can perform arithmetic operations with them. This simple concept of dynamic typing makes all data visible and simplifies tracing and debugging.
Interesting to see duck typing advertised as a feature. I feel like the programming world is going strongly in the opposite direction.
> Interesting to see duck typing advertised as a feature.
Speed of development is a legitimate factor to consider when making a choice of language for a project.
> I feel like the programming world is going strongly in the opposite direction.
There's a concerted corporate effort to push the programming world in that direction. It's not born out of a particularly strong rationale and not backed by the kind of organic efforts that would actually ensure it's long term success.
Meanwhile we have the technology to fully isolate every process on a machine from everything else on the machine. Do we use this? No. Instead we harass programmers to use languages based upon corporate tastes instead of actual engineering acumen. The desktop doesn't get any more secure and opening a random text message can destroy your life regardless of what language the messaging application was coded in.
What are we doing?
I love duck typing. It's amazing. REXX is more weakly typed, of the "stringly typed" variety.
"Rexx is arguably the first general-purpose scripting language."
"Arguably" sounds mean; who wants to argue?!?!
I would say there are compelling uses. Being a "first general purpose" one? Large claim that is up for a conversation. :)