Consider Rexx for Scripting (2022)

(opensource.com)

30 points | by walterbell 4 days ago ago

24 comments

  • kstrauser 4 hours ago

    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.

  • J_McQuade 4 hours ago

    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.

    • wslh 3 hours ago

      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.

  • talideon 2 hours ago

    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?

  • chasil 3 hours ago

    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/

    • Jtsummers 2 hours ago

      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.

      • chasil 2 hours ago

        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.

        • Jtsummers 2 hours ago

          > 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/

          • chasil an hour ago

            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.

  • taveras 3 hours ago

    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. :)

  • YZF 4 hours ago

    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).

    • dhosek 3 hours ago

      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.

      • ubermonkey 3 hours ago

        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.

    • wigster 3 hours ago

      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.

  • woodruffw 4 hours ago

    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.)

  • jmclnx 4 hours ago

    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.

    • nocman 3 hours ago

      That makes perfect sense to me. I've never seen anyone use Rexx outside of an IBM-heavy environment.

      • tssva 14 minutes ago

        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.

      • rodgerd an hour ago

        Anyone wanting to do non-trivial scripting and owning an Amiga from Workbench 2 onward.

  • ericyd 4 hours ago

    > 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.

    • akira2501 44 minutes ago

      > 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?

    • kstrauser 3 hours ago

      I love duck typing. It's amazing. REXX is more weakly typed, of the "stringly typed" variety.

  • TruffleLabs 3 hours ago

    "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. :)