Jump to content

Category talk:OoRexx: Difference between revisions

m
→‎ooRexx fully compatible with classic REXX: egocentric signing of entered code. -- ~~~~
m (→‎ooRexx fully compatible with classic REXX: egocentric signing of entered code. -- ~~~~)
Line 40:
As I see it, ooRexx is a classic rexx interpreter, that also has object oriented abilities. I would be surprised if there are any tasks that would run on the other classic rexx interpreters that could not be made to run on the ooRexx interpreter using only the classic features with few changes.
 
It seems true - though it comes as a genuine surprise to me that many of the rexx examples here are written in such a way that they will not run on ooRexx.
 
: I can only speak for the REXX code that was entered by me, the programs were written and tested in three classic REXX interpreters and I don't assume they'll run anywhere else, I would test CMS and TSO versions if I could. I may be reading into your statement more than was intended, but it was not written in such a way that they won't run, that is, no other intention was intended to have them also runnable in other (object-oriented) REXX interpreters (as far as ooRexx). I have no interest in writing code that may or may not work for ooRexx, only classic REXX. Some run correctly under ROO (at least, it produces the same results which could be happenstance), but I don't pretend to know all the nuances and/or subtleties of object oriented REXX, and saying that would (or does) run would be a tacit way to say that it works correctly as intended under ooRexx.
I don't have the numbers, but I believe there are many people who run ooRexx, without taking advantage of the oo facilities. The point I was trying to make is that the differences you find when you use it like this are like the differences between one classic rexx interpreter and another.
 
I don't have the numbers, but I believe there are many people who run ooRexx, without taking advantage of the oo facilities. The point I was trying to make is that the differences you find when you use it like this are like the differences between one classic rexx interpreter and another.
 
: How so? Which differences would those be (excluding bugs, of course). Of course, some classic REXX interpreters are much older than others and don't have some of the newer BIFs or their extensions, but those differences weren't made that way, there was an evolution while keeping capatability to the older versions of REXX. REXX programs that I wrote in 1982 will will run unchanged in the CMS and TSO REXXes of 2012.
 
I would say that the main difference between ooRexx as a classic rexx interpreter and the other classic rexx interpreters is that ooRexx syntax checks the whole code before running any of it thus you cannot have syntactically invalid code in a clause even if it is never run.
Other differences can generally be avoided, the use of -- for + is problematic in ooRexx, but you could write code that would function on any interpreter by leaving a space between the operators without changing the meaning or function of your code. Certain characters such as @ were valid in early interperters, but cannot be used in ooRexx, although it does honour the ¬ sign.
 
: I'm not sure, but the way the REXX interpreter parses the source isn't defined in the language specifications. The reason that the older REXX executed code as it read the file (line by line) was a matter of speed, as I recall. Harddisks were a lot slower than today, of course. I believe ''R4'' parses the whole of the program before it begans execution, and almost all REXX program normally invoke a BIF at some point, which necessitates the need for the interpreter to parse the rest of the source anyway (looking for an internal version, which at the invocation time, it can't tell if the subroutinefunction is internal or external, excluding those subroutines enclosed in quotes). Also, you presume that the use of a double negative was a concious choice, it may be (macro/program) generated statement, or a user-entered REXX clause for instance, among other reasons. I hate to think about writing any code (REXX or otherwise) that could become invalid in another five or ten years time. Unforeseen "requirements" changing the validity of valid REXX statements. I have yet to see the advantage of introducing the double-minus comment to classic REXX, especially in the light that it disables (breaks or invalidates) a legitmate REXX statement. One could use the same argument (say) for using a '''//''' comment, everyone could break up the two '''/''' in their programs (albeit, this particular example has a lot more uses than a double negative, but that's only a popularity contest). Implementing a new way to code comments via least astonishment, in my opinion, isn't a sound way to extend a language. But then, nobody asked for my opinion when the vote came up. -- [[User:Gerard Schildberger|Gerard Schildberger]] 00:23, 27 June 2012 (UTC)
 
Of course Regina has several features such as address-with that I believe are unique to it just as personal Rexx did (I loved the RxWindow package).
 
I don't know which of the rexx examples are yours, but many of them would run on ooRexx if they didn't use variable names like @. However, if the task demanded single character unreadable variable names you could still use ! or ?.
 
: I use '''@''' and '''$''' more or less consistancy (to mean certain things), as well as '''!''' and '''?'''. I do note that ''ROO'' supports all those characters just fine without precluding them for use as variables. [''ROO'' is an object-oriented REXX interpreter.]
 
Perhaps you might explain to me why you would object to the rexx code examples here being written in such a way that they would be portable between what are probably the two most popular rexx interpreters. I would see that as an improvement that would serve visitors to this site and cannot understand why you would object. If you do object, then it might be as well to know which of the rexx examples are yours.
 
: I never thought about "signing" my REXX examples, if that would help someone's understanding of where it would run, I'll do it. It would take me a while to go through the 380+ REXX examples. As I stated elsewhere, I wrote all my code to work on Classic REXX and don't assume it runs anywhere else. I don't write the classic REXX code and keep thinking if this will or will not run on ooRexx. I concern myself to make sure it runs as intended for the REXX entry for classic REXX. If writing code for maximum portability is good, then writing ooRexx code that doesn't need object-oriented features would also be good, this would lead to more ooRexx code being portable to classic REXX. I hope that one can see the obvious absurdity of that fallactious statement. Of course, you could always look in the history of who entered the code (for the example program). I have noticed that very very very few people sign their code. It seems rather egocentric to do so. -- [[User:Gerard Schildberger|Gerard Schildberger]] 00:23, 27 June 2012 (UTC)
 
thanks. --[[User:Sahananda|Sahananda]] 22:48, 26 June 2012 (UTC)
Cookies help us deliver our services. By using our services, you agree to our use of cookies.