|
|
(31 intermediate revisions by 3 users not shown) |
Line 1: |
Line 1: |
| '''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. | | '''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. |
|
| |
|
| 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. | | 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. |
|
| |
|
| On October 12, 2004, IBM released the [[Microsoft Windows]], [[AIX]], [[Mac OSX]], [[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. REXX LA has since dropped support for Solaris, AIX and Mac OSX and only updates the Windows and Linux versions.
| | ==Implementations== |
| | *[[IBM Object REXX]] |
| | *[[Open Object REXX]] |
|
| |
|
| ====Object REXX coexistence with Classic REXX==== | | ===Classes and bindings=== |
| 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.
| | 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. |
| | |
| 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. | | * [[OREXX/SQL Object Framework]] - Classes that allow you to access and manage SQL databases |
| | |
| ====OS/2 text editors with Object REXX support====
| |
| * [[jEdit]] - Java based editor - Object REXX syntax highlighting built in - Current.
| |
| | |
| ====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 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).
| |
|
| |
|
| ==Versions== | | ==Utilities== |
| ;OS/2 versions
| | * [[RexxLiterate]] - Automatic document generator - Open source |
| * 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) - [ftp://service.boulder.ibm.com/ps/products/ad/obj-xx/objrxx30.zip IBM FTP] Update
| |
|
| |
|
| ;Windows versions | | ;Text editor support |
| * Object REXX (1996) | | * [[Enhanced Editor]] (EPM) - ''Script Editor'' shipped with OS/2 Warp 4 OpenDoc |
| * Object REXX Development Edition (Summer 1997) | | * [[jEdit]] - Java based editor - Object REXX syntax highlighting built in |
| : Object REXX plus IBM Object REXX Workbench (GUI development & debugging) and sundry tools like tokenisers & linkers etc.
| |
|
| |
|
| ==Articles== | | ==Articles== |
| * [[REXX Tips & Tricks:Hints for Object REXX]]
| | * Rony G. Flatscher: ''[http://wi.wu.ac.at/rgf/rexx/misc/ecoop06/ECOOP2006_RDL_Workshop_Flatscher_Paper.pdf Resurrecting REXX, Introducing 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: [http://wi.wu.ac.at/rgf/rexx/misc/ecoop06/ECOOP2006_RDL_Workshop_Flatscher_Paper.pdf Resurrecting REXX, Introducing Object Rexx] | |
| * [http://www-01.ibm.com/software/awdtools/rexx/opensource.html IBM announcement of the Open sourcing of Object REXX]
| |
|
| |
|
| ==Publications== | | ==Publications== |
| * Tom Ender: ''Object-oriented Programming with REXX'' - 1997, ISBN 0471118443 - Out of print | | * Veneskey; Trosky; Urbaniak: ''Object REXX by Example'' – Aviar 1996, ISBN 0-9652329-0-5 |
| * Ueli Wahli, Trevor Turton, Eddie Griborn & Norio Furukawa: ''Object Rexx for OS/2 Warp'' - Prentice Hall 1996, ISBN 0-13-273467-2
| | * Tom Ender: ''Object-oriented Programming with REXX'' - Wiley 1997, ISBN 0-471-11844-3 |
| * Ueli Wahli, Trevor Turton, Ingo Holder: ''Object Rexx for Win95/NT'' - Prentice Hall 1996, ISBN 0-13-858028-6 | |
| * [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 - (September 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 - (30 December 1996)
| |
|
| |
|
| ==Links== | | ==Links== |
| * [http://www.oorexx.org Open Object REXX website] - By the [[REXX Language Association]]. | | Small programs or routines that you can integrate into your own programs or study to learn from, but are not delivered in library form. |
| | | * [http://rosettacode.org/mw/index.php?title=Special%3ASearch&search=Walter+Pachl&go=Go Walter Pachl's code on rosettacode.org] - Mostly Classic REXX but also a few Object REXX snippets. |
| ==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==
| |
| * [[IBM]]
| |
| * [[REXXLA]]
| |
|
| |
|
| [[Category:Tools]] | | [[Category:Programming Languages]] |
| [[Category:REXX]][[Category:MS Windows Tools]][[Category:Linux Tools]][[Category:AIX Tools]][[Category:Solaris Tools]]
| |
| [[Category:Open Source Software]]
| |
| [[Category:Software written in C++]]
| |
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.
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.
Implementations
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.
Utilities
- Text editor support
- Enhanced Editor (EPM) - Script Editor shipped with OS/2 Warp 4 OpenDoc
- jEdit - Java based editor - Object REXX syntax highlighting built in
Articles
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
Links
Small programs or routines that you can integrate into your own programs or study to learn from, but are not delivered in library form.