Object REXX: Difference between revisions
Line 58: | Line 58: | ||
==Publications== | ==Publications== | ||
* Veneskey; Trosky; Urbaniak: ''Object REXX by Example'' – Aviar 1996, ISBN 0-9652329-0-5 | * Veneskey; Trosky; Urbaniak: ''Object REXX by Example'' – Aviar 1996, ISBN 0-9652329-0-5 | ||
* Tom Ender: ''Object-oriented Programming with REXX'' - Wiley 1997, ISBN 0-471-11844-3 | * Tom Ender: ''Object-oriented Programming with REXX'' - Wiley 1997, ISBN 0-471-11844-3 | ||
* Ueli Wahli, Trevor Turton, Eddie Griborn & Norio Furukawa: ''Object Rexx for OS/2 Warp'' - Prentice Hall 1996, ISBN 0-13-273467-2 | * Ueli Wahli, Trevor Turton, Eddie Griborn & Norio Furukawa: ''Object Rexx for OS/2 Warp'' - Prentice Hall 1996, ISBN 0-13-273467-2 | ||
* Ueli Wahli, Trevor Turton, Ingo Holder: ''Object Rexx for Win95/NT'' - Prentice Hall 1996, ISBN 0-13-858028-6 | * Ueli Wahli, Trevor Turton, Ingo Holder: ''Object Rexx for Win95/NT'' - Prentice Hall 1996, ISBN 0-13-858028-6 | ||
* [[Rony G. Flatscher]]: [http://www.facultas.at/2014/flatscher Introduction to Rexx and ooRexx: From REXX to Open Object Rexx (ooRexx)] | * [[Rony G. Flatscher]]: [http://www.facultas.at/2014/flatscher Introduction to Rexx and ooRexx: From REXX to Open Object Rexx (ooRexx)] - WUV Skripten 2013 | ||
:You can download portions of [http://www.ronyrexx.net/files/pdf/Book-ooRexx-Introduction-Teaser.pdf this book here] | :You can download portions of [http://www.ronyrexx.net/files/pdf/Book-ooRexx-Introduction-Teaser.pdf this book here] | ||
;IBM Redbooks | ;IBM Redbooks | ||
* [http://www.redbooks.ibm.com/pubs/pdfs/redbooks/sg244586.pdf Object REXX for OS/2; Rexx Bytes Objects Now or Taking the ″Oh, oh!″ out of OO] - IBM RedBook - ( | * [http://www.redbooks.ibm.com/pubs/pdfs/redbooks/sg244586.pdf Object REXX for OS/2; Rexx Bytes Objects Now or Taking the ″Oh, oh!″ out of OO] - IBM RedBook - (Sep 1996) | ||
* [http://www.redbooks.ibm.com/abstracts/sg244825.html?Open Object REXX for Windows NT and Windows 95 With OODialog: Windows Dialog Interface] - IBM RedBook - ( | * [http://www.redbooks.ibm.com/abstracts/sg244825.html?Open Object REXX for Windows NT and Windows 95 With OODialog: Windows Dialog Interface] - IBM RedBook - (Dec 1996) | ||
==Links== | ==Links== |
Revision as of 19:37, 23 December 2016
Object REXX (OREXX) is an object-oriented programming language developed by IBM that is basically an extension to SAA REXX (Classic REXX) that gains the object model from Smalltalk with a few other language extensions. It was originally released in versions for OS/2 and AIX that offered integration with SOM 2.1 and had some limited graphic functionality, but IBM later made versions available for Microsoft Windows and Sun Solaris that were fully independent of SOM, note that unlike the OS/2 version the AIX, Windows and Solaris versions were all paid seperate commercial products.
While Object REXX is mostly compatible with Classic REXX there are some minor differences that mean that most REXX programs have to have at the least some modifications to run correctly under OREXX, and this has meant that in the OS/2, AIX and IBM mainframe worlds it never gained any real traction as it was incompatible with a large existing codebase, while on MS Windows and Linux OREXX has become the standard. This eventually lead IBM to cease all Object REXX development and hand it over to a third party.
Open source release and name change to ooRexx
On October 12, 2004, IBM released the Microsoft Windows, AIX, MacOS X, Solaris and Linux versions of Object REXX as open source software, handing the copyrights and responsibility of future development to the REXX Language Association (REXX LA). To differentiate their offerings from the commercial releases from IBM, REXX LA renamed the package Open Object REXX (or ooREXX), the source code release only consisted of the Object REXX code as it stood at the time and only contained parts of the SOM integration and none of the OS/2 specific features although OS/2 specific structures and data types still existed.
REXX LA has since dropped support for Solaris, AIX and Mac OSX and only updates the Windows and Linux versions, a port back to OS/2 is very unlikely since in 2007 the maintainers started removing all remaining OS/2 specific code from the codebase.
Object REXX coexistence with Classic REXX
OS/2 Warp 4 and later releases (WorkSpace on-Demand, Warp Server for e-business) shipped with both Classic REXX and Object REXX interpreters. To switch between implementations the SWITCHRX command can be used and the system will default to the alternative version to the current one at next boot. If you want to use both at the same time you have a few options, you can specifically call the alternative version to the one you are currently using either from a command line or from a script or batch file or you can associate different extensions to different interpreters.
It is in general recommended that Classic REXX is set as the default since most OS/2 and eComStation utilities use it.
Object REXX classes and bindings
In addition to classes developed specifically for it, Object REXX can use extensions intended for Classic REXX, you can take a look at the REXX page for some of those. There are usually no real compatibility issues, but care needs to be taken with multi threading if you use it, Classic REXX always addresses extensions on a single thread so some extension packages expect the tread that initiated the extension to be the only thread that uses it.
- OREXX/SQL Object Framework - Classes that allow you to access and manage SQL databases - Open source - Discontinued.
Object REXX Utilities
- RexxLiterate - Automatic document generator - Open source - Semi current
OS/2 text editors with Object REXX support
- jEdit - Java based editor - Object REXX syntax highlighting built in - Current.
Object REXX source code snippets, archives and collections
Small programs or routines that you can integrate into your own programs or study to learn from, but are not delivered in library form.
- Update Homepage
- Walter Pachl's code on rosettacode.org - Mostly Classic REXX but also a few Object REXX snippets.
Versions
- OS/2 versions
- 6.00 (12 Jul 1996) - included in Warp 4
- 6.00 (21 Jul 1997)
- 6.00 (11 Nov 1997) - Warp Fixpak 6
- 6.00 (25 Mar 1998) -
- 6.00 (18 May 1999) - IBM FTP Update
- Known issues
Object REXX for OS/2 is known to have issues with Object Desktop, specifically some of the WPS integration features of OD clash with the Direct WPS-support of OREXX, if you do not use the direct WPS-support you can fix this by uninstalling it using "wpsinst -". There was a similar issue with DeskMan/2 but it is believed that these were fixed in the end. In either case make sure you are running the 1999 version of OREXX, it fixes a WPS integration initialisation bug that helps in both cases.
- Windows versions
- Object REXX (1996)
- Object REXX Development Edition (Summer 1997)
- Object REXX plus IBM Object REXX Workbench (GUI development & debugging) and sundry tools like tokenisers & linkers etc.
Articles
- REXX Tips & Tricks:Hints for Object REXX
- Rony G. Flatscher: Extending the Workplace Shell with Object REXX.
- Dr. Willis Boughton: SOM and Object REXX
- REXX Tips & Tricks:Sample source code for Object REXX
- Mike Baryla: On the Road with Object REXX
- Mike Baryla: Setting the Stage for Object REXX scripting
- Rony G. Flatscher: Resurrecting REXX, Introducing Object Rexx
- IBM announcement of the Open sourcing of Object REXX
- Object REXX Library - Lists the DLL files used by OREXX
Publications
- Veneskey; Trosky; Urbaniak: Object REXX by Example – Aviar 1996, ISBN 0-9652329-0-5
- Tom Ender: Object-oriented Programming with REXX - Wiley 1997, ISBN 0-471-11844-3
- Ueli Wahli, Trevor Turton, Eddie Griborn & Norio Furukawa: Object Rexx for OS/2 Warp - Prentice Hall 1996, ISBN 0-13-273467-2
- Ueli Wahli, Trevor Turton, Ingo Holder: Object Rexx for Win95/NT - Prentice Hall 1996, ISBN 0-13-858028-6
- Rony G. Flatscher: Introduction to Rexx and ooRexx: From REXX to Open Object Rexx (ooRexx) - WUV Skripten 2013
- You can download portions of this book here
- IBM Redbooks
- Object REXX for OS/2; Rexx Bytes Objects Now or Taking the ″Oh, oh!″ out of OO - IBM RedBook - (Sep 1996)
- Object REXX for Windows NT and Windows 95 With OODialog: Windows Dialog Interface - IBM RedBook - (Dec 1996)
Links
License and availability
- Originally commercial software, distributed with base operating system component of OS/2 Warp Version 4 and later releases, separate update for Warp 3. Discontinued.
- Later open sourced as "Open Object REXX" but that release was not ported to OS/2. The open source version is released under the Common Public License Version 1.0
Publisher
Background & history
When IBM decided in 1988 to standardise on Smalltalk as their language of choice for future application development it became obvious that it would be beneficial if other tools from the company could offer a degree of compatibility with the object model that Smalltalk offered. This lead to amongst other things the development of the CORBA derived System Object Model and the closely related Distributed System Object Model but it also became obvious that it would be better if REXX, which was heavily used in IBM systems as a glue language, could operate with the object-oriented paradigm as well, this alongside a general interest in O-O languages at the time lead Simon C. Nash (IBM UK) later in 1998 to start experimenting with merging the REXX language with the object model of Smalltalk under the code name Oryx.
IBM showed the first prototype of the Object REXX language at the 1992 REXX Symposium on an OS/2 2.0 machine and by the 1993 the language had gained graphical user interface class libraries for both OS/2 Presentation Manager and Motif on AIX, a development environment that includes a class browser, an interactive debugger and object inspector, and integrated support for OS/2 WPS object via SOM. In 1994 IBM announced that development the Object REXX would replace Classic REXX as the default REXX interpreter in the next release of OS/2, but that came with the promise that it would be "100% compatible with Classic REXX" and that development was now in the hands of a team run by Rick McGuire. At the same time the company announced a few extensions to the language in addition to the O-O features already included but amongst new language features were expressions in stems, parse enhancements, Countstr and Changestr functions, extended Do and date conversion.
Object REXX was finally released in beta form in 1995 as part of the IBM Developer Connection Volume 6 and in GA form as part of the release of OS/2 Version 4 and shortly thereafter as a seperate download for users of OS/2 Version 3 and OS/2 Server Version 4. However that release proved to be something of an anticlimax, the language was not 100% backwards compatible as had been promised, breaking not only a lot of third party REXX scripts but was also incompatible even with a number of scripts supplied on the OS/2 Warp 4 CD. The visual development environment and large portions of the GUI class library IBM had shown were missing from the package after the developers of similar development environments for Classic REXX complained and threatened to withdraw all support for IBM products from the market (it turned out that a couple of other visual development environments for Classic REXX from IBM were never released for the same reason).