Slashdot Mirror


Rexx for Everyone

An anonymous reader writes "It's easy to get lost in the world of 'little languages' -- quite a few have been written to scratch some itch of a company, individual, or project. Rexx is one of these languages, with a long history of use on IBM operating systems, and good current implementations for Linux and other Free Software operating systems. Rexx occupies a useful ecological niche between the relative crudeness of shell scripting and the cumbersome formality of full systems languages. Many Linux programmers and systems administrators would benefit from adding a Rexx implementation to their collection of go-to tools."

61 comments

  1. Rexx sucks. by rpresser · · Score: 0, Flamebait

    I have spent more hours fiddling with Rexx syntax, trying to get it right, than any other scripting language including awk. It seems underpowered and unintuitive to me. Perhaps if it was my first scripting language I'd appreciate it, but having several already jostling around in my head ... ugh. Who needs more than three scripting languages, anyway?

  2. Not to mention... by squiggleslash · · Score: 5, Informative
    ...probably the most popular version of REXX was AREXX, which was bundled with the Amiga from AmigaOS 2.04 on.

    And very nice it was too. The key reason it took off were that application developers decided to support it even before AmigaOS 2.04 as a defacto standard for scripting and remote control. Most substantial applications - and quite a few minor ones - came with an "AREXX port" which you could use to send commands to the app to get it to do things.

    This functionality seems to be sadly lacking these days in OSS or in a cross-vendor environment. You get the occasional application with a self-contained Python subsystem or something, and Microsoft supports VBA across their own applications, but it's not as fluid.

    --
    You are not alone. This is not normal. None of this is normal.
    1. Re:Not to mention... by noselasd · · Score: 2, Insightful

      Perhaps someone should learn from COM ?(The implementation is a mess, way to hard to make controls), but the idea and the flexibility it makes are pretty cool. If OSS software did some more of e.g. Bonobo or similar, one might not need all these specialized python/perl/whatever for . Make the app export its interface to Bonobo(or something..) , make bindings for script languages to Bonobo. Instant fun.

    2. Re:Not to mention... by Just+Some+Guy · · Score: 4, Interesting
      AREXX absolutely ruled. I once wrote a script to pull transfer completion status from a graphical FTP program, convert it to a pair of (x,y) coordinates a proportional distance along a line from (0,0) to (maxX,maxY), and pass that to a graphics program as the endpoint of a photo-realistic lightning bolt. As my transfer moved along, the lightning grew closer to the ground.

      Useless? Sure, but it looked a lot cooler than your average progress bar, and I could poke my head into the room to see at a glance how far along I was on my hour-long 2MB download from Aminet (via a 28.8 modem).

      --
      Dewey, what part of this looks like authorities should be involved?
    3. Re:Not to mention... by scumbucket · · Score: 4, Informative
      I remember messing around with Arexx. Here's a link to some Arexx info:

      Amiga University - Arexx

      --
      CMDRTACO CHECK YOUR EMAIL!
    4. Re:Not to mention... by IIEFreeMan · · Score: 2, Interesting

      In the kde world DCOP goes a long way toward providing this very powerful although easy to use app-scripting environnement. Almost all KDE Apps have a useful DCOP interface.

      If think AppleScript is good too in the Mac-world (never tried this one)

    5. Re:Not to mention... by AKAImBatman · · Score: 2, Insightful

      Most substantial applications - and quite a few minor ones - came with an "AREXX port" which you could use to send commands to the app to get it to do things.

      Sounds very similar to AppleScript. I'm constantly amazed at the amount of control those little scripts can manage on OS X. Some even go as far as to become completely new programs, just by wrapping the original! Unfortunately, the syntax absolutely blows. Maybe non-programmers find it intuitive, but I always think of it as another "Do what I mean, not what I say" language. And those *always* get you into trouble.

    6. Re:Not to mention... by Spy+Hunter · · Score: 0

      The little-known DCOP can do the same for KDE. All KDE apps have a DCOP function interface which can be used for remote control from another C++ app, a shell script, a python/perl script, or any other kind of script. For example, I recently saw this perl hack that attatches a Konsole terminal emulator to the top of your screen. It does it all using DCOP.

      --
      main(c,r){for(r=32;r;) printf(++c>31?c=!r--,"\n":c<r?" ":~c&r?" `":" #");}
    7. Re:Not to mention... by pacc · · Score: 1

      "Almost all KDE Apps" seems pretty lame in the same way as "almost all Microsoft apps" would make a mainstream computer lacking a lot of these apps that are actually useful.

      The least you can accept from something that people are using would be a working xmms interface...

      Of course most people with some programming skills could control xmms easily, which means that we won't see a simple standardized system on linux anytime soon.

      DCOP tutorial

    8. Re:Not to mention... by Anonymous Coward · · Score: 0

      Ahh, yes... I wrote all kinds of scripts in Arexx.

      I spent 3 hours soldering and checking my LCD, connected it to my Amiga, and wrote the glue-script to interface with the MP3-player in Arexx in about 5 minutes (and then ofcourse spent an hour with the design of the output to make it really beautiful :-).

      Now, I'm painfully aware of that the Amiga is dead (RIP). But somethings are too good to just forget.

      As said somewhere else in this discussion: as a language Arexx isn't/wasn't that great (you could go absolutley crazy over some 'features')...

      The greatness came as more or less ALL programs on the Amiga had SOME support for Arexx. This ranged all the way from simple things like "open file", "play file", "quit" (stuff you usually see in the menus); to more advances things like "how many lines are there in the current document?", "What is the name of the current song?", and so on. That way you could have the script react to data from the application and add new features to the programs.

      So, whats is the difference to any more advanced program on, say, the Unix platform? EmacsOS is more or less a scriptimplementation, TheGimp has scriptsupport, and so on... Well, I guess the thing that made it so easy to use was that it was uniformly implemented in all host programs; you didn't had to learn a new language for each application, and whats more, several applications could be joined by some clever programming.

      Sadly, "remote control" of a running application is a seldom seen feature of Unix/Windows programs. I guess the difficulties of setting up and doing IPC put most programmers off.

      In an ideal world freedesktop.org or someone like that would organize a "standard" for scripting IPC. Really, it isn't that difficult:
      * Define a way for setting up and naming messageports (support in KDE and Gnome would ofcourse be welcome). A standard unix-sockets comes to mind, though it would be nice if you could find a messageport based on a PID.
      * Define some datatypes for returning data (or just assume that everything is ASCII).
      * Define a securitymodel (make the user that started the program own the messageport + methods for setting per messagecommand calling permissions).
      * Write a small shelltool that send messages to a named messageport (that way all languages that have support for executing commands can be used).
      * Make absolutley sure that the specification is NOT bound to a specific language!

      Keep it simple. If you make it advanced you could just as well link to C...

      Unfortunately, I think the Linux/Unix world is to "ad hoc" oriented to support something like this. The different camps would debate endlessly over design details. The GPL camp would scream at the top of their lungs at the proposal to BSD-license it (and respectively). A bunch of minimalistic window managers would define it as "bloat" and ignore it. The Gnome people would instantly add OO support. KDE would translate the specification into farsi, and then complain of the lack of right-to-left text support. And so on...

      Well, one can dream...

    9. Re:Not to mention... by Gumshoe · · Score: 1
      Most substantial applications - and quite a few minor ones - came with an "AREXX port" which you could use to send commands to the app to get it to do things.


      Interestingly, although it is called an ARexx port, you don't have to write programs in ARexx to make use of this Amiga feature. There's no reason at all why you can't code your "script" in C. What makes this rather exciting is the possibility of small extensions to Amiga versions of Python or Perl or whatever, to allow interfacing with ARexx ports -- they're just regular ports that listens for certain commands. To my knowledge no one has done this but it's possible. After all that's what ARexx is; Rexx with this feature added.

      My point? ARexx (indeed, Rexx in general) sucks (IMO), but the idea of tying applications together and extending them with "ARexx" scripts is a good one and could be much more powerful if better scripting languages were exteneded in a similar way.
    10. Re:Not to mention... by Anonymous Coward · · Score: 0

      GNU CLISP (a common lisp implementation) on the Amiga could access Arexx ports. And very nice it was too.

    11. Re:Not to mention... by Gumshoe · · Score: 1
      GNU CLISP (a common lisp implementation) on the Amiga could access Arexx ports. And very nice it was too.


      Really?! I'm a big fan of Lisp and have used clisp extensively but never on the Amiga for some reason. I shall have to investigate this...
  3. Yay for REXX! by rqqrtnb · · Score: 5, Funny

    d00d!@ Rexx is the coolest thing ever! Write all your code in big REXX like you were a CONSULTANT at a BANK in 1988!!!

    Man, I can't believe someone's still kicking poor old REXX around. REXX, the crazy computer lingo that won't die -- a deadly scripting language in the horrible tradition of DOS batch programs and JCL. Gar! It's REXX!

    Back in the day, when OS/2 fanatics would get all uppity-puppity about how great OS/2 was, their SECOND most deadly comeback (after "You can format two diskettes at once! One in drive a:, and one in drive b:! Try THAT on a Mac/DOS/Windows/Whatever!!!") was that OS/2 had REXX. It was the ne plus ultra of PC-level scripting languages. It would stop a conversation cold.

    I think the Amiga also had REXX, which, like, that's the kinda thing that Amiga folks still get all teary-eyed over. "I miss the Amiga! It had great VIDEO! and it had REXX!! Waaaaaah!"

    Hey, so, can you still buy a computer with TWO floppy drives? I wonder. That'd be kind of cool to find one. It's kinda sad to think of all the computing manpower in the late 80s that went into making it possible to format two diskettes at once, and now nobody even HAS two floppies. Like, as if Project Apollo had been achieved, and then the moon fell out of the sky or something. Who cares! Why bother?

    Oh, yeah, but anyhow: back to REXX. IBM has this great REXX site, chock full of links to other REXX sites and REXX programs. There were wack developer tools in the early 90s, like Watcom's VX-REXX, a VISUAL REXX. Of course, there's a link from this site. And IBM has, of course, a couple of crazy-ass updated versions of REXX, like for example Object-REXX (no shit!). The coolest one I can see is the new NetREXX, which compiles REXX to Java, which can be, in turn, compiled into Java bytecode for running in a browser.

    Yay for REXX! REXX everywhere! REXX REXX REXX!

    1. Re:Yay for REXX! by Just+Some+Guy · · Score: 4, Informative
      You're right about REXX as a stand-alone language. About the only thing it had going for it was that, if you had an Amiga, then you didn't have to buy a C compiler to write a little program.

      Where it really shined, though, was in its ability to control other running applications. Most decent Amiga programs had an "AREXX port", which was basically an API that you could connect to while the program was running. You could write a script so that whenever your newsreader encountered a URL on a trusted website, then it would execute an AREXX script that would queue a request on your web browser to visit that page. Or, maybe you wanted your MP3 player to tell your IRC client to tell the whole channel that you were playing a new CD.

      By itself, AREXX was pretty lame. As a global scripting language that could tie abitrary applications together, it was wonderful.

      --
      Dewey, what part of this looks like authorities should be involved?
    2. Re:Yay for REXX! by BrynM · · Score: 3, Insightful
      Write all your code in big REXX like you were a CONSULTANT at a BANK in 1988!!!... a deadly scripting language in the horrible tradition of DOS batch programs and JCL.
      If you're still doing work on an S390 or other IBM mainframe, REXX is so much better to cope with than JCL. Yeah, you still have to write a small JCL wrapper for your REXX app, but that's it. None of that hard to read JCL crap that goes on forever. Unfortunately, nobody seems to remember that PERL and other C based languages have been ported over to these MVS systems... REXX to me is another example of people clinging to what they know - wich is rampant in the mainframe world (COBOL, JCL, JES2, JES3, TSO... yadda yadda).

      IBM has done a great job of evolving these systems with the times, but very few shops implememnet ports of common languages such as PERL. Just try telling your Senior Systems Programmer that you'd rather use C++ or PERL or write code for your CICS regions and they would think that you were crazy because they don't want to support that code. Ironically, when the shop I worked at starting interfacing MVS and NT systems for data warehousing, my knowledge of Regina REXX on the NT boxen made the production programmers on the mainframe side more comfortable. Regina REXX even had some built in functions for the Windows Registry! REXX can be a good intermediate language for mainframe programmers to be more at home on the target platform you are moving them to. Ah, memories... Long live IEFBR14!

      --
      US Democracy:The best person for the job (among These pre-selected choices...)
    3. Re:Yay for REXX! by M1FCJ · · Score: 3, Funny
      When I was in the university we had this IBM3090 mainframe beast... And at home I had this 386 running OS/2... And on both I could run and develop the REXX Mud we were writing. That's cool stuff man. These days it's much easier with lots of scripting languages available but REXX really ruled in 90s. Now I use Java, which is much better but I still remember those days fondly.

      The best justification for OS/2 was it was a brilliant multitasking operating system and poor BBS sysops like I were happy with it because it really worked. Not like that Win3.1 crap or that stupid NT thing which you needed LOTS RAM. I ran OS/2 with 8MB and it was a dream. If only my win2K workstation would run as fast as that old 386 (later 486) with OS/2.

      I ran Maximus BBS for years and it was fun fun fun! Sysops are sad losers which can distinguish all sorts of V protocols by the sound of the modems. The real sad ones can whistle a 1200 baud link (I managed an 300 baud one consistantly but never managed to do 1200 baud).

    4. Re:Yay for REXX! by Anonymous Coward · · Score: 0

      I don't know about floppy drives, but I have two CD burners. It's nice to be able to burn two discs at once.

  4. Yet Another... by dacarr · · Score: 3, Insightful

    REXX was great for OS/2, but in Linux, between bash, perl, and tcl/tk, why would you need anything else?

    --
    This sig no verb.
    1. Re:Yet Another... by ErisCalmsme · · Score: 1, Informative

      "...bash, perl, and tcl/tk..." Hey don't forget ruby! =)

      --
      Chaos is Divine *
    2. Re:Yet Another... by tcopeland · · Score: 2, Informative

      > don't forget ruby! =)

      Right on! Read more about Ruby here, and check out lots of projects using Ruby here - games, sysadmin utilities, wrappers for WxWindows and ImageMagick, and so forth. Good stuff!

  5. The only answer: by torpor · · Score: 4, Insightful

    Language Diversity.

    There's no other reason. Your list could've stopped at perl, and it would still be a reason.

    Its good to have diversity in your language choices, because different languages have different strengths and weaknesses, and having a good command of more than one can often make you much better, individually.

    There's no reason not to continue adding scripting languages to operating systems ... strong language evolution is best served by having a massive genepool.

    Or at least, so the theory goes. Of course there's the "pro at all, master of none" aspect to consider as well, but you never know ... REXX may one day compete with CPAN, you never know ... ;)

    --
    ; -- the corruption of government starts with its secrets. a truly free people keep no secrets. --
    1. Re:The only answer: by dhall · · Score: 3, Interesting

      >> Its good to have diversity in your language choices, because different languages have different strengths and weaknesses, and having a good command of more than one can often make you much better, individually.

      One issue is that rexx when compared to perl, pales in comparison. There are reasons for diversity with regard to differnt language styles, as each serves a niche, but you're kidding yourself if you think rexx serves any purpose for future scripting development.

      There are reasons for python, perl, tk/tcl, C, C++, C#, java, lisp, and even smalltalk... but rexx? Lacking in the strengths of perl, and yet having more glaring weaknesses, with little in the way of development and integration that perl already has in a stronger and more up to date fashion.

      Only reason to learn rexx is to help support previously written applications that would require too much time and effort to rewrite in a better support scripting language.

    2. Re:The only answer: by msuzio · · Score: 3, Insightful

      No, there's other answers. Sometimes you are trading power for bulk. Perl is very powerful, but also very "bulky". Large footprint, for one thing. libperl is about 800K on my nearest Linux box. If I can bring another language in that is more compact, that might be a good thing.

      The other issue is "bulk" in terms of the scope of the language. Sometimes limits are *OK*. If I just want to script out some very simple operations, do I need Perl? Do I need my users to learn Perl?

      You need to consider the topic as a whole. This isn't a defense of REXX's suitability in these roles, but a counter to the assumption that there is an "only answer".

    3. Re:The only answer: by jonadab · · Score: 2, Interesting

      > Language Diversity.

      Language Diversity rules. However, a really good language ought to be designed
      so that you can use diverse programming paradigms within the limits of that
      language. Perl is taking some steps along these lines. Perl5 already has very
      good support for procedural programming, basic functional programming, basic
      contextual programming, and with a little work you can get it to do basic OO
      programming also. Perl6 is revamping the OO stuff to be a first-class citizen,
      as well as bolstering the contextual and functional stuff too. (There's even
      talk of continuations and lazy evaluation.) There is also talk of adding
      support for logical programming (a la prolog), but I don't know whether that's
      really going to happen.

      There's still work to do, of course. Perl6 is a long way from being ready.
      But the list of languages that have influenced its design is *lengthy*.
      Right now, there are things I can do in elisp or Inform easier than in Perl5.
      The object model coming in Perl6 will shorten that list to just elisp, and
      it will be possible to implement textbuffers using the Perl6 object model;
      if someone (such as myself -- I'm seriously thinking about it) does so and
      puts it on CPAN, then I won't need elisp either, except for customizing Emacs.

      So now I'm learning Scheme, which has some *more* things Perl5 doesn't have,
      such as continuations -- but word has it these things are going to be in
      Perl6, so I figure I'll get a leg up on the concepts by understanding them
      in Scheme now.

      Hopefully, multiparadigmatic VHLLs such as Perl, Python, and so forth will
      utterly take over, eventually, except for extreme low-level stuff like
      bootloaders and device drivers. For that to happen, we'll probably need
      optimizing compilers for these languages, or a really good, ubiquitous VM.
      (Parrot hopes to be the latter. We'll see how that goes. The Java VM is
      almost ubiquitous enough, but it's not good enough, and none of the VHLLs
      target it AFAIK (presumably because it's designed especially for Java).)

      --
      Cut that out, or I will ship you to Norilsk in a box.
    4. Re:The only answer: by cperciva · · Score: 2, Interesting

      Language diversity isn't necessarily a good thing. Some really cool code (cvsup and portupgrade) has been kept out of the FreeBSD base system because it would require importing yet another language (modula 3 and ruby, respectively).

      Of course, if you're a closed-source programmer, you can use whatever compiled language you like; but with open-source code, using obscure languages imposes a cost upon your users and limits your code's usage.

    5. Re:The only answer: by __past__ · · Score: 1
      As you probably know (given your learning of Scheme), it gets really cool if you are not bound by the decisions of the language designer in what paradigms you can use.

      I am a happy user of Common Lisp, which supports imperative, functional, OO etc. out of the box. But what is more important is that the language itself is extensible. It is a rather common approach to write applications by first extending the language, and such extensions can go quite far. For example, people have integrated prolog style logic programming into Lisp, there are libraries that support nondeterministic evaluation and backtracking, prototype-based alternatives to the native OO system, dataflow, you can use it as a dynamic markup language etc. The nice thing is that all this gets part of the Lisp system just like the builtins, so that a programmer can mix and match all of these, and the features of CL itself.

      Paul Graham has written a really cool book on that topic, which is freely available.

    6. Re:The only answer: by Anonymous Coward · · Score: 0

      In defense of Rexx, the PARSE statement is far far more user friendly than any thing perl has. I miss parse. Poor perl users have to learn !@#$!@#$!() () to try and do the same thing...

    7. Re:The only answer: by matchlight · · Score: 1

      Another answer is simply user choice. I know of a product that has two scripting languages in it. REXX and VBScript (seriously, I'm not kidding). Both languages were used to create a high level access to low level features in an application server. REXX was chosen since this app interfaced with mainframes and the idea was to make mainframe people more friendly to it.

      I've seen people do just about anything to avoid having to write REXX code. For those who had to learn it, they all agreed it was a good language (read: it did it's job) but I've never seen someone write REXX for any other reason that necessity with this product.

      I'm not sure why they didn't use it as much. It might be that it's not a very marketable language. I personally didn't like the look of the syntax.

  6. Zoc by valkenar · · Score: 2, Interesting

    Rexx is the embedded scripting language in the terminal program Zoc. This is the only windows client I've found that I particularly like and one of the main reasons I chose it way back in the day was because of it's powerful scripting language. I don't script muds anymore, but if I did I'd be glad for its continued existance. As far as using rexx for assorted small programming tasks I can't vouch for it, it's compromise between absolute simplicity and power/flexibility makes it fill the terminal scripting niche pretty well, imho.

  7. REXX isn't as much fun as Perl by doug · · Score: 4, Interesting

    I owe a lot to REXX. I used to love REXX. Back when I was a co-op at IBM I spent two years doing nothing but REXX on VM/CMS (note to youngsters: it was an OS for the 370 family). It paid for my car and a trip to Europe. But more importantly it got me used to scripting languages. After learning REXX, it was a small step to Perl (version 4.036). Since I learned Perl, I've never looked back at REXX. I'd be amazed if REXX hadn't evolved once it got off of mainframes, but I really doubt if it can do anything that Perl can't. They are both in the same nitch, but Perl has one thing that REXX doesn't: Perl is more fun. When everything else is said and done, enjoying your time at work is a huge advantage.

    Life is too short to waste on REXX. Stick to Perl have fun.

    - doug

  8. Sorry, but.. by Anonymous Coward · · Score: 0, Troll

    REXX bites.

  9. It's CobolScript for Unix!!! by Rob+Riggs · · Score: 4, Interesting
    From the article:
    #!/usr/bin/rexx
    ADDRESS SYSTEM ls WITH OUTPUT FIFO '' ERROR NORMAL
    DO i=1 WHILE queued() \= 0
    PARSE PULL line; SAY i || ") " || line; END

    Yeah, I can see right away why I would want to write programs in this language. No object model. No regular expressions. Cobol-like syntax. This is more like BASIC (and not even the Visual variety) than Perl or Awk.

    I know it may come off as such, but this really isn't meant as flamebait. I just really don't get why people would want to write new code in such a dreadful language.

    (To be fair, I think the same of PL/SQL coders; but at least they have a good reason -- "Larry made me do it.")

    --
    the growth in cynicism and rebellion has not been without cause
    1. Re:It's CobolScript for Unix!!! by Just+Some+Guy · · Score: 4, Insightful
      ADDRESS SYSTEM ls WITH OUTPUT FIFO '' ERROR NORMAL

      That's definitely verbose and ugly, but behind the scenes, that code just "connected" to the "SYSTEM" port, issued the "ls" command, and sent some configuration information.

      PARSE PULL line

      When you "ADDRESS"ed the SYSTEM object, you basically imported it's API into the REXX namespace. See that "PARSE PULL" bit? That command comes from the SYSTEM object, and isn't part of the REXX language proper. Imagine this code sample (completely invented and unlikely to work without modification, but still illustrative) instead:

      #!/usr/bin/rexx
      ADDRESS POSTGRESQL
      SELECT * from tablename
      DO WHILE rowsleft() \= 0
      RETRIEVE row
      ADDRESS EMAILER
      SEND row TO emailuser@company.com SUBJECT "SQL Query Row"
      END

      Suddenly it doesn't seem quite so horrible, does it, when you realize that you can connect directly to any REXX-enabled application and control it as though you were written a script directly within that application?

      I'm not saying that I'd ever for a moment consider touching REXX code again without a large monetary incentive, but you should understand that noone said "hey, this language has no redeeming values, let's use it!". It has its own unique properties, and while the ugliness outweighs the good stuff, it certainly had its niche back in the day.

      --
      Dewey, what part of this looks like authorities should be involved?
    2. Re:It's CobolScript for Unix!!! by Anonymous Coward · · Score: 0

      "ADD 1 TO COBOL GIVING COBOL"

      So it's object-oriented. Doesn't make the syntax any less clunky, especially when the user forgets to indent.

    3. Re:It's CobolScript for Unix!!! by Anonymous Coward · · Score: 1, Informative

      OREXX - Object rexx - is the answer to your complaint. Perl is nice, but rexx is in lots of places... The kids who laugh at rexx wouldn't know which end of a 370/168 to plug in... but it uses the same script language as the AS400. Rexx.

    4. Re:It's CobolScript for Unix!!! by Chacham · · Score: 1

      REXX is actually a nice language, nothing like COBOL, and very much like BASIC, except it has great array handling. Saying REXX is not needed, would be like saying Apple didn't need BASIC, or that Bash doesn't need a scripter. Considering it was supported mostly everywhere it was (and is) a fantastic idea.

      As for PL/SQL, it is a great language. If someone say "Larry made me do it", they shouldn't be using it, as they obviously know nothing about the database and how to code for better results with less stress on the system.

      PL/SQL is also supported in PostgreSQL. They should probably get together with Microsft and standardize it with tSQL. They both have neat ideas, but a standard (just as SQL is a standard) would be nice to work with.

    5. Re:It's CobolScript for Unix!!! by Anonymous Coward · · Score: 0

      SQL/PSM is already standardized. Oracle and Microsoft aren't migrating to it because both use strategic incompatibility to trap their customers.

  10. Saints Preserve Us! by turgid · · Score: 2, Insightful

    Rexx is IBM's scripting language. Unfortunately I had to contend with it in a previous job. I advise people to avoid writing new code in this "language" wherever possible and relegate its use to supporting old code, perhaps that you have inherited from some defunct IBM dinosoaur.

  11. Re:Perlisn't as much fun as Python by Tumbleweed · · Score: 3, Funny

    I owe a lot to Perl. I used to love Perl. Back when I was working at a dot-com during the Bubble, I spent two years doing nothing but Perl on FreeBSD. It paid for my car and a trip to Europe. But more importantly it got me used to scripting languages. After learning Perl, it was a small step to Python. Since I learned Python, I've never looked back at Perl. I'd be amazed if Perl hadn't evolved once it got off past version 4, but I really doubt if it can do anything that Python can't. They are both in the same _niche_, but Python has one thing that Perl doesn't: Python is more fun. When everything else is said and done, enjoying your time at work is a huge advantage.

    Life is too short to waste on Perl. Stick to Python have fun. :)

    Obligatory disclaimer to the _morons_ who are about to bitch at me, this is a _joke_. See the smiley face above? Laugh or move on.

  12. Why not libtcl? by notsoclever · · Score: 1

    Tcl was specifically designed for the sorts of uses which AREXX was used for. It's also much more lightweight than Bonobo could ever dream of being.

    --
    There are 10 kinds of people: ones who understand ternary, ones who don't, and ones who think this joke is about binary
    1. Re:Why not libtcl? by noselasd · · Score: 1

      Uhm, because that limits you to TCL?

    2. Re:Why not libtcl? by notsoclever · · Score: 1

      Not really. Other languages can call Tcl just fine by just passing it a string (similar to AppleScript on MacOS). And Tcl has a lot less overhead than Bonobo.

      --
      There are 10 kinds of people: ones who understand ternary, ones who don't, and ones who think this joke is about binary
    3. Re:Why not libtcl? by noselasd · · Score: 1

      Oh, so you mean I can program in e.g. Python in an application having TCL bindings ?

    4. Re:Why not libtcl? by notsoclever · · Score: 1

      There might be some middleware to allow that, yes. Coding it up wouldn't be too terribly difficult anyway, since you could always just write a glue layer in C which links both libtcl and libpython or whatever.

      --
      There are 10 kinds of people: ones who understand ternary, ones who don't, and ones who think this joke is about binary
  13. Re:Perlisn't as much fun as Python by Anonymous Coward · · Score: 0

    Life is too short to waste on Python. Stick to Ruby have fun. :)

    I mean, why type "def __add__(self, o):"

    When "def +(o)" will do!

    Imagine, if you add up all that time spent typing those extra letters, you'd have a few more years to enjoy!

    It makes you wonder.. how many needless lives have been lost because of Python!

    It's a shame! A DAMN SHAME I TELL YOU!

  14. DCOP by Anonymous Coward · · Score: 0

    Not to spoil anything for you, but Python and Perl have this functionality with dcop modules. Plus, I can read Python and Perl code w/o much help. Besides, I can happily take a KDE app, script it in Python. Rexx-enabled stuff isn't found on my desktop. Dcop-enabled stuff is. Does Rexx speak dcop w/o using dcop(1), at which point you should be using the shell anyway?

    1. Re:DCOP by Just+Some+Guy · · Score: 3, Interesting
      Not to spoil anything for you, but Python and Perl have this functionality with dcop modules.

      Sure, but I was doing this on production systems in 1990. As I said, I'm not advocating REXX. However, it had a lot of really cool features that didn't seem to be in wide existence anywhere else at the time it came around. Python is much nicer than REXX, and I love it to the point that it's my primary development language, but REXX was alive and doing the same stuff (on a more primative level) nearly 15 years go. You have to give it some credit for that.

      --
      Dewey, what part of this looks like authorities should be involved?
  15. Seems like Rexx is dying out by darnok · · Score: 3, Interesting

    My perception is that, these days, many people who use scripting languages tend to know two or three. One is generally bash/Perl/VBScript, and the other is a (for want of another term) "more modern" scripting language such as Python or Ruby.

    bash and Perl are ideal for ripping together short scripts that do relatively simple things. The problem you often encounter with these languages is that it's hard to maintain scripts of more than a few hundred lines unless you're very disciplined in how you structure your code. VBScript on Windows sits in this area as well.

    Python and Ruby fill the >100 line script niche by adding nice OO features. Python and Ruby scripts are generally easier to support than bash/Perl scripts once you get beyond a few hundred lines of code.

    TCL seems to sit somewhere in the middle. I've never met anyone who actually uses it regularly, so I'm not really competent to slot it in anywhere...

    Where does Rexx fit? Frankly, these days, it doesn't - these tools pretty much have the market cornered on both Windows and Unix platforms. New tools will emerge to split the "market" further, but to do that they'll offer some compelling extra feature to get people to switch. Rexx, being an existing solution, isn't likely to offer that compelling new feature.

    The question Rexx advocates need to address is "Why would someone *switch* to my language?". In order to answer that, they need to be able to reasonably objectively discuss the pros and cons of Rexx vs. Perl/Python/bash/..., and I don't know of many Rexx people who can do that; they tend to know Rexx and nothing else in the scripting space.

    1. Re:Seems like Rexx is dying out by trouser · · Score: 3, Insightful

      Python and Ruby are not scripting languages. They are portable byte compiled object-oriented programming languages. Hell, even Perl is a programming language.

      Scripting languages offer a programming interface to automate the use of a specific tool. eg. Javascript in a browser, Bash in a terminal.

      Python, Ruby, Perl and perhaps Rexx (can't be sure, haven't used it) can be used for general programming which might otherwise be tackled in C, C++, Java, etc.

      --
      Now wash your hands.
    2. Re:Seems like Rexx is dying out by oinkoink · · Score: 1

      Currently, Ruby is interpreted, not byte-compiled.
      It is, however, the most enjoyable scripting* language to program in.

      * Or post-scripting, or VHLL or whatever the heck you want to call languages like Ruby, Python and Perl.

    3. Re:Seems like Rexx is dying out by APL+bigot · · Score: 1

      Hmm. OK, I see I'm in the minority here. I come from the IBM mainframe world, and Amiga OS.

      "Why would someone *switch* to my language?" (Rexx)

      Because it's better than EXEC and EXEC2!
      Actually, I've seen Perl and it isn't anything I want to learn. I've read good comments about Python, but it looks like C to me. Again, not something I like. So, maybe the question should be "Why should I switch *from* Rexx?" And, yes, Rexx is the only scripting language I know. Fortunately, Rexx is available for Linux, and I installed Regina. (I'm a Linux newbie, and trying to make sense out of the mess of programming the keyboard PF keys. The HOWTO hasn't been very helpful. Any pointers to code for bash?)

      The history of the development of Rexx is interesting. The end users had access via VNET (IBM's internal network predating Internet by years) to Mike Cowlishaw, the author, for instant feedback while the language was being developed. The result is a consistant language that the users like and that has a "low astonishment factor". (It's intuitive.)

      --
      Heisenberg may have been here.
    4. Re:Seems like Rexx is dying out by Anonymous Coward · · Score: 0

      No, ruby is neither interpreted nor byte-compiled.

      Interpreted languages are things like Lisp. Perl and ruby, for example, are not interpreted -- they each compile a program and then run it; they just happen to do those two steps automatically.

      What does each compile *into*? Perl compiles into bytecodes; ruby compiles into a syntax tree.

      You can say that perl interprets perl bytecodes, or that ruby interprets ruby syntax trees, but neither is interpreting your code directly. Lisp does that, which makes Lisp an interpreted language.

  16. New language .... Diamond by sashang · · Score: 0, Troll

    I'm gonna make a new language. I'm gonna call it Diamond (cos a Diamond is better than a Ruby). It will be more elegant than Python, have more features than tcl and be easier to maintain than Perl. Then I'll be famous and the fame will masturbate my ego and make me hard. People will love me like Michael Jackson.

    1. Re:New language .... Diamond by Anonymous Coward · · Score: 0

      ...and when the big hand touches the little hand u will go to jail... hur hur hur...

  17. That's more a result of the apps than the language by Craig+Ringer · · Score: 1

    AppleScript on MacOS has a similar advantage. Alas, for some reason application-scripting languages (PL/SQL, REXX, AppleScript...) always seem to be the somewhat (or, in AppleTalk's case, /really/) icky ones.

    I'd dearly love to see a common application scripting interface that was language independent. DCOP under KDE is nice, but we really need something universal. Ideally cross-platform, but with the entranched VB+COM/DCOM under Win32 and AppleScript under OSX, this seems unlikely.

    It's the one thing I miss about MacOS.

  18. A nice website for REXX info by Anonymous Coward · · Score: 0

    Check out the website, www.rexswain.com. I've used it for its nice HTTP viewer and other web development stuff, but it has some useful-looking (I wouldn't know honestly) REXX info, pointers, and custom REXX tools.

    I still dunno why I'd learn REXX, but if my name was Rex, I'd definitely learn it just for kicks.

  19. Good Ole REXX by swamp+boy · · Score: 1

    At one time, REXX was one of my favorite programming languages. I could crank out lots of code in very little time with very little effort. I even wrote an entire GUI client application (OS/2 based) using Watcom's VX-REXX. After leaving OS/2, I longed for a suitable replacement for REXX. After trying several languages, I discovered Python which took over as my favorite. Although if I had to do it again, Ruby could well come out on top.

    I have yet to find a suitable replacement for VX-REXX though.

    For you former REXX fans, what language (if any) has taken the place of REXX for you?

    1. Re:Good Ole REXX by doogmeister · · Score: 1

      Ahhh the memories!

      Back from 1990 to 1998 I worked a systems programmer for an IBM contractor, supporting one of their software dev shops. I got quite good with REXX on VM and OS/390 and was fortunate enough to have access to IBM's internal mainframe network VNET and their VMTOOLS and MVSTOOLS repositories. They had tons of add-ons which were free of use inside the company.

      One of my projects was updating my shop's APAR/PTF creation tools from poorly written REXX scripts to fast/furious compiled REXX with a 3270 GUI interface using an internal tool called NEATWIND. The developers (all ASM/370 geeks) loved it and I had a blast doing it.

  20. I can't program in REXX anymore by Anonymous Coward · · Score: 0

    I CAN'T PROGRAM IN REXX ANYMORE -- I LOST MY...
    OH WAIT A MINUTE. THAT'S TERRIBLE.
    SET CASE MIXED RESPECT
    Ah, much better, let me try again.

    I can't program in REXX anymore -- I lost my copy of XEDIT!

    [ This text is here solely to satisfy the lameness filter's thing about uppercase text. ]