Slashdot Mirror


IBM Open Sources Object Rexx

dryeo writes "IBM has Open Sourced Object Rexx. IBM Announcement. Source code has been turned over to The Rexx Language Association under the Common Public Licence. Rexx is an interpreted language which has been included in platforms such as the Amiga, OS/2 and AIX, and most IBM mainframes. For a quick overview check out Rexx for everyone."

16 of 216 comments (clear)

  1. More info... by jehnx · · Score: 5, Informative

    A lot more information on Rexx can be found here on IBM's website. This is the main page and has links to courses, function libraries, etc.

  2. What is Rexx? by reporter · · Score: 5, Informative
    Rexx combines the ease (in learning) of BASIC and the power of Perl.

    IBM is a traditional American company, and back in the old days, IBM managers hired people who were smart and were willing to work[1]. There are many instances of data entry clerks becoming full fledged programmers and even project managers. Rexx, which was invented by an IBMer in the 1960s (?), is a perfect match for this kind of employee. Rexx is very easy to learn. It has no pointers or references (ala Perl). At the same time, Rexx has powerful facilities for string manipulation since most Rexx programs are string-oriented applications like processing queries for a database. Every installation of OS/2 comes with Rexx.

    Rexx could actually have precluded the need for Perl if IBM had open sourced it 20 years ago.

    By the way, the inventor of Rexx became an IBM fellow.

    note
    ----
    [1] IBM traditionally refuses to hire anyone without American citizenship. This rule was relaxed to allow the hiring of permanent residents. Nonetheless, as a matter of corporate policy, IBM managers generally do not hire people with an H-1B visa.

    1. Re:What is Rexx? by pizza_milkshake · · Score: 4, Informative
      It has no pointers or references (ala Perl).

      perl has references

  3. Re:IBM's analysis to open software by Firlefanz · · Score: 5, Informative

    *cough* eclipse *cough*

  4. Re:Does anyone use it? by mirko · · Score: 3, Informative

    OS/2 Warp came with an extra CD containing an integrated suite, IBM Works, written in Rexx, it was quick and functional so I guess it's a decent language given what they did with.

    --
    Trolling using another account since 2005.
  5. What (a)rexx did that was so useful by jolyonr · · Score: 4, Informative

    The power of rexx (or the arexx implementation on the Amiga) was that there was a unified scripting language available across applications from different vendors, I added arexx support into the version 2.0 of the image processing/paint software 'Photogenics' for the Amiga, and the beauty of this was you could script applications from different vendors with ease, so if you wanted to batch process a directory full of images and you needed to run the image first through Photogenics and then through (rival) Art Department Professional or ImageFX, you could do that easily.

    --


    Please read my Canon EOS tech blog at http://www.everyothershot.com
  6. Rexx vs Object Rexx by samberdoo · · Score: 2, Informative

    Object Rexx is kind of new and allows integration of object oriented programs on different platforms. It works on many platforms AIX, OS/2 (had to put it in), the other windows, linux and solaris. It is a very useful tool and is backwards compatible with REXX. People with a more mainframe background will choose it over perl (which is unix based in its syntax). It's also useful for talking to AS/400s. There are a few of those out there.

  7. Ah, the good old days... by Eric+Giguere · · Score: 2, Informative

    For a real blast from the past, check out the REXX FAQ that I maintained for a couple of years. Copies are still floating around the net, including here:

    http://www.funet.fi/pub/languages/rexx/rexxfaq.txt

    It seems so... old, I guess. But REXX itself was fun to use, and I spent a lot of time using it and writing applications with (and for) it. It was very approachable, a good way to learn basic programming concepts. It definitely rocked on the Amiga because it was so well-integrated with the system. If OS/2 had not failed, it might still be here, because it was also decently integrated there.

    Eric

  8. Re:IBM's analysis to open software by wagemonkey · · Score: 2, Informative
    OR those of us in PC land who use Regina Rexx, especially as the macro language for The Hessling Editor - an XEDIT clone for us old dinosaur refugees.

    Rexx is good.

  9. Re:Does anyone use it? by ktistec · · Score: 2, Informative

    > Using Rexx in conjunction with Bash scripting I can accomplish most of the everyday tasks I face as a sysadmin.

    Hey, I thought I was the only one who used primarily Rexx and bash! ;-)

    I'd actually _like_ to learn Perl, but I've yet to run across a text-processing task I couldn't get done in Rexx.

    I'll often load a file into the (GPL'd) Hessling Editor ("THE"), which uses Rexx an an extension language. What the editor's native commands (quite powerful in their own right) won't do on their own, a Rexx macro will.

    Common scenario: I'll have a group of text files all of the same sort that need some complex editing. I'll load _one_ of the files into THE, and begin using native commands and Rexx to do what needs to be done. Meanwhile, I'm keeping track of what I'm doing in another buffer: i.e. I'm assembling a macro that will do just what needs to be done to all the other files in the group, and will do it in a flash...

    Rexx _does_ have a niche, and (so I've thought for a long time) _could_ find a place in the hearts of many *nix users.

    More precisely, what I've thought is that if there were an open-source *OO* Rexx (Regina, nice as it is, is not ObjectRexx) Rexx might have a chance.

    I wonder if it isn't too late though... Perl/Python/Ruby etc. are pretty entrenched (and well they should be -- I _still_ maintain Rexx could have a place in the ecology, however).

    This is an interesting development, to be sure. Maybe it's _not_ too late! At any rate, if you won't give Rexx a try, do me a favor and disbelieve the poster who says QBasic is better. ;-)

  10. Rexx is bloody useful by johannesg · · Score: 4, Informative
    The strength of ARexx (the Amiga version of Rexx) was NOT that it was a good language; it was that it allowed you to script any set of applications together into one seamless mega-application. That's like the UNIX-philosophy of having one tool do one thing, and string them together to do real work, expanded into the GUI arena.

    On the Amiga, applications support Rexx in two ways: they can be commanded using Rexx, and upon certain events they can be made to launch specific Rexx scripts. Rexx commands applications in a markedly different way from the normal UNIX way of working: it assumes the application is already running, and sends commands to make it do different things. If I had a mailer, a Rexx-script for it could look somewhat like this (I forgot the syntax, bear with me...)

    ADDRESS KMAIL.0

    # now commands are going to the first instance of kmail that is running. Now we'll create a mail. Rexx has highly convenient associative variables for this.

    mail.address = "johannesg@slashdot.org"

    mail.subject = "Rexx is bloody useful"

    mail.body = "at least, if all applications support it"

    SEND mail

    # Now we will store that mail in our mysql database:

    ADDRESS MYSQL.0

    SQL INSERT INTO sentmail VALUES mail

    COMMIT

    And done! We have linked together two already-running applications, to make a new, unique solution.

    Similarly, my mailer _should_ just run a Rexx script when mail is received. The script should decide what to do with the mail, which could be classifying it, testing it for spam, forwarding it to another account, or for all I care making an immediate hardcopy and faxing it to my holiday address. None of those functions should be built into the mailer; instead, the user can configure the scripts precisely for his own needs.

    This has some major benefits:

    - Tools can remain lean, concentrating on core functionality. As long as the Rexx-interface is powerful enough, and the right triggers are provided, any user functionality you can imagine can be added by interfacing other applications to it.

    - Complex tools for a specific purpose can be cobbled together by throwing a few existing applications together with some scripting glue.

    - The GUI becomes as easy to script as the shell is today.

    Of course I am not saying Rexx is the only way to do this, and indeed the KDE people are already moving in this direction with DCOP (I think). However, I believe noone in the Linux world has yet realized how amazingly powerful and useful this concept is.

    So in the end, this isn't about Rexx at all - it is about how incredibly useful the concept of scripting together sets of applications is. The language really doesn't matter, since the Rexx interface works on the level of exchanging strings between the script and the addressed application (i.e. it might as well be Perl, or Python, or Ruby, or ...). Rexx is only special because it did this so incredibly well on the Amiga that I still miss it on a weekly basis.

    1. Re:Rexx is bloody useful by catenos · · Score: 3, Informative

      To emphasize this: The beauty of Arexx on the Amiga was not in the scripting language, but in the fact, that it was a standard on the Amiga. Any non-trivial program had an AREXX interface.

      Usually they supported running all internal commands, but at least you could trigger all menu items and hotkeys.

      A real life example: When "the web" (as in HTTP) first emerged, of course, no program had support for "clicking" URLs to start a web browser, because, well, web browser were unknown when those other programs were written.

      To teach my mailer to start up a browser, I assigned an Arexx script to an hotkey, which would query the current mouse location in the mail text. And then try to match an URL scanning back/forward from that pos (you could ask the mail program for the text lines). If it found one, it would open a web browser window and tell it to open that URL.

      This way I hadn't a clickable URL, but all I needed to do was point my mouse at the URL and press F8 and voila. I know clickable URLs are nothing special today anymore. But note, the interesting part is not that I got an URL "clickable", but that I could do that with a program that wasn't made for this.

      While today's mailers have plug-in support, you'll have a hard time to query the text and do something new, unanticipated with it. And before I get replies of the kind "but with (gnus, or insert favorite mailer here), you could do this and that to archieve the same": You are missing the point. The point being that there was a standard way which was supported by the majority of programs.

      --
      Keep an eye on which arguments are silently dropped in replies. Not always, but often times it's very telling.
  11. About "Solutions" by Reteo+Varala · · Score: 2, Informative

    Actually, solutions are to services as custom-made products are to assembly-line products.

    Instead of offering a service that a customer will decide whether or not they need it, a solution offers everything to achieve the list of goals a client requires.

  12. A short list of IBM's contributions to Open Source by leoc · · Score: 5, Informative
    This list is not complete (missing are larger things like Eclipse and Apache Derby) but it clearly includes many projects that helps competitors and that IBM formerly sold. This was obtained directly from IBM's web site:

    4758 Secure Coprocessor Driver for Linux
    This project is a Linux device driver for the IBM 4758 PCI Cryptographic Coprocessor, which is a tamper-sensing and responding, programmable PCI card. It provides a highly secure subsystem in which data processing and cryptography can be performed.

    ATM on Linux
    ATM support for Linux is currently in pre-alpha stage. There is an experimental release, which supports raw ATM connections (PVCs and SVCs), IP over ATM, LAN emulation, MPOA, Arequipa, and some other goodies.

    Abstract Machine Test Utility (AMTU) for Linux
    Abstract Machine Test Utility (AMTU) is an administrative utility that checks whether the underlying protection mechanism of the hardware is being enforced. This is a requirement of the Controlled Access Protection Profile (CAPP) FTP_AMT.1.

    Ananas Project: Summary
    This is the source for Working XML, a column on developerWorks with companion project code that demonstrates the evolution of full-fledged XML applications. This is distributed under the artistic license.

    Apache HTTP Server
    The Apache project develops and maintains an open-source HTTP server for various modern desktop and server operating systems.

    BlueHoc simulator
    BlueHoc is a tool that predicts the performance of Bluetooth wireless hardware technologies. BlueHoc simulates the baseband and link layers of the Bluetooth specification.

    COIN (Common Optimization INterface)
    Developers can use Common Optimization INterface (COIN) to build optimization solutions. IBM mathematical optimization researchers opened the code they use in finding the optimal allocation of limited resources. The code has many applications in a variety of industries.

    Channel Bonding
    The Channel Bonding project works on methods to join multiple networks on Linux into a single logical network with higher bandwidth. The project team works with the Beowulf Ethernet Channel Bonding project, where bonding work began.

    Consensus prototype
    Consensus is a joint European project carried out by six companies. The project is partially funded by the European Commission. The project goal is to provide technology to support single-authoring for mobile devices. developerWorks hosts the open source implementation developed by the Consortium. Detailed information about the project is at the Consensus Project home page (http://www.consensus-online.org).

    Content Query System (CQS) Project: Summary
    Content Query System (CQS). CQS is a distributed peer-to-peer query system for the purpose of discovering content or data. XML messages are passed between systems and query "engines" are used to access the data that is being made available on the system.

    Crypto Accelerator Driver
    Device Driver Support for the IBM eServer Cryptographic Accelerator.

    Crypto Interface Library
    Generalized Interface library for the IBM eServer Cryptographic Accelerator Device Driver. Note, this is a low level api for the Specified adapter, it is not intended to be an interface which is written to by applications. Applications should use the openCryptoki PKCS#11 api for interfacing to the token.

    Dynamic Probe Class Library (DPCL)
    DPCL is an object-based C++ class library that allows tool developers and sophisticated tool users to build parallel and serial tools using a technology called dynamic instrumentation.

    Embedded IBM PowerPC 4xx Linux Support
    This project contains packages which enable adding support for IBM PowerPC 4xx Embedded Processors to

    --
    STFU about slashdot bias.
  13. Re:Does anyone use it? by Yaztromo · · Score: 3, Informative
    OS/2 Warp came with an extra CD containing an integrated suite, IBM Works, written in Rexx

    IBM Works wasn't written in REXX. It was written in C (and/or C++), and was originally Footprint Works (before IBM bought out Footprint for their banking software).

    Yaz.

  14. Er... IBM *did* hire a designer (Susan Kare)! by Richard+Steiner · · Score: 3, Informative

    Many of the icons for OS/2 Warp were designed by Susan Kare, who also designed many of the icons for the original MacOS and for Windows 3.x...

    Here are some of the Warp icons she created for IBM.

    --
    Mainframe/UNIX Bit Twiddler and long time Windows/Linux Hobbyist.
    The Theorem Theorem: If If, Then Then.