Jump to content

Category talk:OoRexx: Difference between revisions

m (→‎Plagiarism: deprecated (or not?) characters for REXX symbols. -- ~~~~)
Line 47:
 
: 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.
 
:: What I had in mind here particularly was permitted character sets. I am not an expert in different interpreters - I have used VM\SP on CMS, the Rexx interpreter that came with PCDos7, Kexx, Personal rexx, and for the last decade or more ooRexx (or Object rexx as it was back then) with a little Kexx thrown in. I don't remember it all, but I remember that the not symbol on sp6 was ¬, I don't now remember what was not on PC Dos7. On personal rexx it was ~ which is the message operator on ooRexx. On SP6 you had to start your code with a comment /* */ so the correct interpreter was invoked. In Kexx comments are lines starting with a * - that is a standard, but not a Rexx one.
 
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.
Line 52 ⟶ 54:
 
: 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)
 
:: I also as far as I remember was not at the right place at the right time for that decision either, and I take your point, it probably wasn't an entirely smart move, but taking the -- as a given now, removing it would break many programs, whereas, if there were actual programs that were broken by this (I have never heard of any actual cases), then they could have been repaired by the simple expedient I mentioned, however generated.
 
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).
Line 58 ⟶ 62:
 
: 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.]
 
:: I have met roo, though I find it as baffling as some people seem to find the oo side of ooRexx. Again, I'm not an expert on the developments that rexx has gone through, and I could be wrong about this, but I understand that the decision to dissallow those particular characters pre-dates Object Rexx, and I assume that there was some reason behind the decision.
 
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, nor do I test it for a REXX iterpereter that I don't have installed. 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 Rosetta Code 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 fallactiousfallacious 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)
 
:: I think this is the nub of the problem, not wishing to repeat myself, but to many people ooRexx is just another classic Rexx interpreter. For them, I assume that portability is important. Anders and Mark have done a good job, and there is a fantastic product there. Were it not for an accident of history I might have been a Regina user too. There are things you can do in Regina that cannot be done with ooRexx (address-with springs to mind, some of the options). ooRexx also has it's strengths, and if someone wants to meet the oo paradigm it is a jolly good place to start. Of course I see that it is absurd to value compatibility so highly that you deny yourself the power of the language. I just didn't see that choosing particular single character variable names should rank that highly as a priority. However, I did write that before you said that these variable names have a consistent meaning.
 
:: I certainly don't want to be an irritant to you, and I am incredibly busy at the moment, but I could offer to take a bit at a time the classic Rexx samples here and see what it would take to make them run on ooRexx. I could then pass them back to you and if I hadn't broken them for regina etc., then you could choose to post them or not. I quite understand if you are not interested. --[[User:Sahananda|Sahananda]] 12:24, 27 June 2012 (UTC)
 
thanks. --[[User:Sahananda|Sahananda]] 22:48, 26 June 2012 (UTC)
Anonymous user
Cookies help us deliver our services. By using our services, you agree to our use of cookies.