Slashdot Mirror


Rexx Is Still Strong After 25 years

therexxman writes "March marks the 25th anniversary of the Rexx programming language, and to celebrate the Rexx Language Association is hosting the 15th Annual Rexx Symposium at the IBM Research Labs in Boeblingen, Germany, from May 2 to 6, 2004. Full details of the Symposium can be found in the 2004 Rexx Symposium Announcement. Many of the world's 'Rexxperts' will be in attendance including Rexx's founder, Decimal Arithmetic guru, and IBM Fellow, Mike Cowlishaw."

24 of 288 comments (clear)

  1. Re:Remember aRexx? by admbws · · Score: 4, Informative

    Ah, yes! If only we had something like ARexx here on UNIX. The "ARexx ports" concept really helped with things like information exchange, automation and "remote control". For those who don't know what it is, here's an explaination on ARexx, and briefly explains ports.

  2. Re:Sure is! by Anonymous Coward · · Score: 1, Informative

    Uh, try here...
    http://users.comlab.ox.ac.uk/ian.collier/ Rexx/info .html
    (Link on the rexxla page )

    "What is Rexx?
    Rexx is a procedural programming language that allows programs and algorithms to be written in a clear and structured way. It is easy to use by experts and casual users alike. Rexx has been designed to make easy the manipulation of the kinds of symbolic objects that people normally deal with such as words and numbers. Although Rexx has the capability to issue commands to its host environment and to call programs and functions written in other languages, Rexx is also designed to be independent of its supporting system software when such commands are kept to a minimum."

    Bye, /////ANDRE

  3. Re:Call me ignorant, but... by hudsucker · · Score: 5, Informative
    Close... but it is more like REXX is to IBM mainframes (z/OS, VM, etc.) as AppleScript is to Mac OS.

    For those that are wondering: REXX was created to be the universal command language for IBM mainframes. It is a replacement for the earlier command languages (EXEC? on VM and CLIST on MVS).

    Then IBM ported it to OS/2, and from there it branched off. You can now find REXX for practically any platform. I have at least 5 different versions running on my Windows machine. (See Regina REXX on sourceforge, for example.)

    REXX's main features include:

    1. Strong string processing and parsing.
    2. Automatic data typing. You never define storage. Mike Cowlishaw's theory was that data types and storage allocation was a way to make it easier for the compiler writer, not the programmer.
    3. Associative arrays.
    4. No implementation limits. For example, you can do math on enormous numbers. And the limits that are there are designed to be meaningful to people (such as "this number can be up to 100 digits") instead of machines (this number can be x bits).
    5. Very easy to understand the syntax. The philosophy is 180 degrees different from Perl.

    But the real key to REXX is it is designed so it can easily interface with multiple environments. For example, one REXX exec in z/OS can send commands and interact with MVS, TSO, ISPF, the ISPF Editor (as an Edit macro), and others.

    The use of REXX on the mainframe is expanding. No mainframe product would think of writing their own command language; they just use REXX. And the more products you can interface with, the more useful it becomes.

    Yes, I know there are Unix and other scripting languages that do the same types of things. But REXX is the standard for z/OS.

  4. Rexx was great at the time, compared to ksh etc. by SamDrake · · Score: 5, Informative

    Other mainframe scripting languages were just disasters. I vividly remember replacing more than 1000 lines of EXEC-2 scripts with about 100 lines of REXX, and thinking that Mike Cowlishaw should be knighted.

    And REXX beat ksh hands down in terms of power and readability as well.

    I gave a speech ~ 1991 at a REXX Symposium about "REXX in UNIX". I had the crowd of mainframe and OS/2 people literally rolling in the aisles with laughter as I tried to explain ksh syntax to them. I made slides of some examples from the appendix in the KSH book, and it was hilarious. Even the geekiest UNIX geek has to admit that sh / ksh are disasters as programming languages. REXX was 10000% better.

    On the other hand, as I pointed out in my speech that day, there was another new language coming up that was 20000% better. It was called Perl. Perhaps you've heard of it. :-)

    REXX was originally intended to be a scripting language simple enough to allow non-professional-programmers to use. None of the UNIX scripting languages, including Perl, hit that mark - but REXX does.

    I haven't written any REXX in 10 years, and haven't missed it. But it WAS a big step forward, and should have been a better success.

  5. Re:Rexx and Kedit by Camel+Pilot · · Score: 3, Informative

    Well I have been forcing myself to use vim but I miss things like folding the lines of a file with a simple command like

    >all "if "

    Then be able to add in lines with a

    >more "elseif "

    or take away with

    >less "# "

    Or doing a search and replace on all files within the ring (ie currently loaded files). If vim can do this I would sure like to find the cheat sheet.

    Yes $159 is steep I paid $79 and they have stopped production.

  6. Why REXX Rocked So Hard by Ray+Radlein · · Score: 5, Informative

    REXX was very much like the Python or Perl of its day, in that it is a scripting language which can be used for everything from job control to add-on macros to interprocess communication.

    It is a completely typeless language, more or less -- basically, everything is a string, so the same variable could hold "87", "eight-seven", "00110111", "0x0117", or "Four Score and Seven" -- and the interpreter kept track of what operations were meaningful (i.e., adding "4" and "5" would yield "9", but adding "4" and "Five" wouldn't). Not surprisingly, it had a wide variety of string manipulation functions built in -- ROT13 could easily be accomplished with one command ("translate()"), for instance.

    On the other hand, it also featured arbitrary precision mathematics, which is a pretty nifty and not altogether common feature for a language.

    It was fairly portable -- I wrote REXX code for OS/2 and the Amiga, and was usually able to move the code from one to the other without having to worry about anything more than CR/LF translation. I was able to make use of old mainframe REXX code too, although it was usually ALL IN CAPS and ugly, which isn't really REXX's fault.

    In OS/2, I used REXX primarily as a batch language on steroids (the OS/2 "CMD" CLI ran REXX programs directly as a batch language), but I also used it to do some pretty heavy text manipulation as well. On the Amiga, I used REXX for those purposes, but the main things I used it for were for interprocess communication, and for extending the functionality of REXX-enabled programs. When Matt Dillon added a REXX port to his hacked-up version of emacs for the Amiga, I was able to use REXX macros to turn it from a nice programmer's text editor into one which did everything I wanted, excatly the way I wanted. I wrote macros to toss and filter FIDONet messages to and from my text editor.

    The same power was available to the REXX ports on other Amiga programs, from word processors to graphics editors. As an aide to interprocess communication, it could be used to allow your graphics editor to control a raytracer, or for your text editor to use the spellchecker in your word processor.

    I made some nice money at a time when I was underemployed by writing REXX programs to control the input and outputs of a NewTek Video Toaster for a guy with a mid-sized video production business; and the code was straightforward enough, and REXX easy enough to learn, that the business owner could easily make any minor changes to it himself (at the same time, after he had used it for a while, he was able to think of more and more things for it to do, which kept me in groceries for another month or two). For that matter, I also made a bit of money writing a REXX programming column for an Amiga magazine, so I really have fond memories of REXX for being a language that allowed me to continue, well, eating food.

    For a long time, IBM tried to convince Microsoft to use REXX as the macro language for Office, instead of BASIC; needless to say, if they had succeeded, we would be living in a universal paradise of peace and understanding right now, or something like that.

    Even today, I find myself thinking of all the neat things I could easily do with OpenOffice or AbiWord or Photoshop or Semware's text editor or Audacity or Zinf if they had REXX ports enabled...

  7. Re:Call me ignorant, but... by Aussie · · Score: 4, Informative

    REXX is/was the replacment for things like EXEC & EXEC2. Really crappy langauges. If you have used these, you will understand why people use and like REXX. Though it is a pity IBM never released REXX for free, it is a fun sorta language, easy to learn and still quite powerful, though things like stemmed variables have a lot of system overhead.

  8. Re:Call me ignorant, but... by Shinobi · · Score: 4, Informative

    Don't forget that AmigaOS also got a version of Rexx, namely ARexx, back with 2.0, IIRC... Was kinda fun, the specs for system-friendly application programming recommended supporting ARexx scripting.

  9. Re:Rexx and Kedit by Stalky · · Score: 5, Informative
    I send mansfield an e-mail every so often requesting a Linux version or ask to open source the code but they just ignore me. Kedit would be a good replacement for vi on linux.

    You are looking for The Hessling Editor.

    --
    Jeff
  10. Re:My Input by Wolfrider · · Score: 2, Informative

    --I used to code REXX back in the day on a VM mainframe. Ah, good old VM/CMS, with REXX and Xedit; it was the Best environment in the whole Sysplex. Nothing I've seen even comes *close* to the Help system it had. It beat the tar out of MVS/Jes2/TSO/ISPF, hands down.

    --REXX has syntax close to (compiled) Basic but has more powerful string-handling functions built-in. And CMS Pipelines... I haven't seen ANYTHING that compares to it in PC-land; it was very easy to use and had all-in-one power. I wish to God they'd port it to Linux; just thinking about it brings back fond memories.

    --Of course, the VM sysadmin prolly had a lot to do with VM being my favorite system back then. Props to Mike W; djbechte sez hi if you're reading! :)

    --BTW, Rexx is available for Linux:
    ' apt-get install regina-rexx '

    --I've since "gone on" to Bash coding, but I should seriously take a look at getting my Rexx skillz back online... Prolly easier to pick it back up than to try learning, say, Python or Perl from scratch.

    --
    .
    == WolfriderV6 == I'm willing to admit that *I just might* be wrong... Are you??
  11. Re:I still use it even today - REXX on sourceforge by laejoh · · Score: 0, Informative

    http://regina-rexx.sourceforge.net/

    for those who want to give it a try.

    ps: don't forget rxSock for sockets in REXX

  12. Re:Rexx and Kedit by Stalky · · Score: 5, Informative

    I don't know anything about KEdit's "more" and "less" commands, but the "all" command to which he referred allows you to hide all the lines in a file that don't match a given expression. His 'all "if"' example tells the editor to show only the lines with "if" in them. The user can work with those lines, just as he always does, but without the distraction of the lines he's not currently interested in. It's one of the most popular features of the XEdit family of editors.

    --
    Jeff
  13. Re:Call me ignorant, but... by hpavc · · Score: 4, Informative

    arexx was so great, its ability to glue apps together was so awesome. wxshell was neat.

    --
    members are seeing something, your seeing an ad
  14. Re:Call me ignorant, but... by Alif · · Score: 5, Informative

    Regina, the free implementation of Rexx, works at linux well. And it has documentation superior to anything from IBM ;)

  15. and of course NetRexx by jobbegea · · Score: 3, Informative

    NetRexx is just your normal Rexx, but it compiles into Java byte code:

    --

    Net sa best, mar it koe minder
  16. Re:Rexx and Kedit by Anonymous Coward · · Score: 1, Informative

    You might want to look into plugins and scripts for Vim. Specifically allfold, and vimoutliner:

    http://www.vim.org/scripts/script.php?script_id= 57 8
    http://www.vimoutliner.org

  17. Re:Fortran Called... by ErroneousBee · · Score: 3, Informative

    I dont get what is so yuck about simple readable code. Perhaps you need to ask why Unix has sh bash tch perl python ruby, wheras z/OS has clist rexx rexx rexx rexx and rexx.

    I do alot of Rexx stuff on Mainframes, and I far prefer Rexx to the C based stuff like Perl. Ive pottered with Rexx on Linux, and its far easier to use than bash, you can always use 'address SH' if you want to use the power of a shell command. I also had a play with NetRexx, but gave up when it became obvious that Java itself had serious problems on the client side.

    Rexx does have some weaknesses:
    - Maths performance can be a bit slow.
    - Lack of extensive libraries (this isnt a problem on z/OS where ISPF and TSO supply most of the functionality you need)
    - 'return' only returns a single string, it should be more like the multiple parms passed on 'call'.
    - 'call' and function calls dont pass stem variables (a stemmed variable is like a sparse array). Its possible to write Rexx functions in ASM that take stems, but thats not quite the same thing.
    - procedures and thier exposing (globalising) of variables need fixing. Ive seen too many programmers fail to use procedures and go on to create unmaintainable messes.
    - It still doesnt have a regexp function.

    --
    **TODO** Steal someone elses sig.
  18. Re:My Input by Garg · · Score: 4, Informative

    Okay, this is probably a troll... but since it got modded up, I'll bite.

    How can anything be less expensive than free? I haven't seen a charged-for REXX since VX-REXX for OS/2... and that was for its GUI extensions to REXX, not the language itself. Was this for some obscure platform where someone was charging for a REXX port? Or was using it going to cause you to have to upgrade hardware or something?

    As far as powerful... what couldn't it do? Using the ADDRESS command, it can talk to the OS, communication libraries, datbases, etc. Admittedly it can get ugly doing a lot of that stuff. Did you perhaps mean other solutions were more elegant?

    Garg

    --
    Garg
    Alumnus, Xavier's School for Gifted Youngsters
  19. Re:Correct me if I'm wrong, but... by chthon · · Score: 2, Informative
  20. Re:Rexx was great at the time, compared to ksh etc by bucknuggets · · Score: 2, Informative

    Rexx was incredibly cool at the time: - implemented on a dozen platforms - code was multi-platform - extremely easy to use / easy to extend / easy to maintain - could run it from MVS JCL - was the macro language for ISPF I used rexx for the following: - converted hundreds of cobol programs from cobol 68 to COBOL II (required parsing code, replacing periods with end-ifs, end-searchs, etc) - created 'asserts' for several programming languages - in which a simple function key would confirm the syntax. - created 'point & click' character interfaces - in which a function key would look up whatever was at the current cursor location and open an ISPF browser window on that file. And the above code was *easy*. Today I'm writing a lot of code in ksh & python. If python wasn't around I'd probably create this code in rexx. Although it's harder to find support for than bash - it a far better language. And although perl is more powerful in some ways - it isn't the maintenance-disaster that perl is. But python is just simply too good a language. Too bad for Rexx.

  21. Re:My Input by wwwillem · · Score: 3, Informative

    Wrong link, by you are right: here and here.

    --
    Browsers shouldn't have a back button!! It's all about going forward...
  22. Re:Rexx and Kedit by Anonymous Coward · · Score: 1, Informative
    Put this script in some file (I have it in "~/scripts/allbuffers.vim"; I didn't write it myself, I found it online somewhere since I'm lazy):
    function AllBuffers(cmnd)
    let cmnd = a:cmnd
    let i = 1
    while (i <= bufnr("$"))
    if bufexists(i)
    execute "buffer" i
    execute cmnd
    endif
    let i = i+1
    endwhile
    endfun
    From VIM, with many files open in buffers, do this (replace the filename with your own):
    :so ~/scripts/allbuffers.vim
    :call AllBuffers("%s/before/after/g|update")
    Hope that helps.
  23. Re:Remember aRexx? by DR+SoB · · Score: 2, Informative

    3MB OF RAM??? NO WAY DUDE!!!

    aRexx was great, but todays mainframe Rexx is even better. Socket support, great parsing/string manip. abilities, great conversion utilites (ASCII TO EBICDIC AND BACK!)

    --
    Mod +5 Drunk
  24. Arexx & Bll Hawes by jesup · · Score: 2, Informative

    I'm fairly certain (having been on the Amiga OS team at the time, and having worked with Bill a fair bit) that he was not stiffed by Commodore on anything. I don't know what sort of deal there was for including ARexx in the OS - it might not have included money.

    Bill did a fair bit of work for Commodore on contract, and also did a lot of testing and tool development for us (evil memory-allocation failure tools, for example). We tried to hire him on multiple occasions, but he preferred to stay in Boston.

    Bill seems to be involved in Linux kernel/etc stuff nowadays from a quick google search.