There are at least two aspects for me: one is the functionality, one is the
notation.
* The functionality aspect is a generalization of "expose objvar" in method
routines, now made
available in general. Therefore it could be used e.g. in ooRexx routine
packages where closely
related routines can be coupled efficiently via the variable references or
multiple variables
can be updated directly hence foregoing the need to process return values
to assign them to the
variables in question and the like ...
* Ad notation: there is a big difference between Rexx and Object Rexx from
day one. Object Rexx
introduced the tilde (~) and colons (in message names to indicate in which
superclass to start
resolution of the method) and double-colons (to clearly indicate the
boundaries of directives
that get preprocessed by the interpreter). And yes, initially they looked a
little bit alien
vis-a-vis to classic Rexx, but what is also observable, after a while (to
get accustomed to
them) they have been making quite a lot of sense in Object Rexx, and indeed
make the new Object
Rexx concepts clearly, explicitly visible.
Since 20 years there has been no other "alien" character been introduced
into the Object Rexx
language, where "alien" relates to classic Rexx. I recall "&[&]" use in
EXEC and in the C language.
Using any symbol for the purpose of getting a reference to a variable seems
to be o.k. as the
operator needs to be explained anyway. My students for instance have
usually no preset concept
to "&", so that symbol is as fine as any other for them. Those who know
C/C++ have probably no
problem whatsoever to conceive the meaning immediately (learning that in
ooRexx it would not be
a memory address but a reference that gets returned). Whether EXEC
programmers minds have been
carved in stone such that they cannot conceive the meaning, well, I do not
know how they would
perceive that. But then, there is no need for them to use that feature (or
any of the many other
cool features of ooRexx), if they only have a need for the classic Rexx
features.
The examples that Rick showed can be taught easily and using the operator in
both places (assignment
expressions and USE ARG expressions) looks intuitive i.e. easily explainable.
I would like to experiment, "play around", explore with it ASAP (hopefully
being able to do so by
early next week), also testing teaching it to the uninitiated to be able to
assess that aspect as well.
---rony
On 13.04.2018 04:57, Chip Davis wrote:
> Not wild about any of the suggestions so far. The @ implies that what
> follows is the location of
> something, not the thing itself. Do we really need to be concerned about
> variables in Classic
> Rexx on platforms that don't run ooRexx in the first place?
>
> -Chip-
>
> -------- Original message --------
> From: Mike Cowlishaw <m...@speleotrove.com>
> Date: 4/12/18 21:58 (GMT-05:00)
> To: 'Open Object Rexx Developer Mailing List'
> <oorexx-devel@lists.sourceforge.net>
> Subject: Re: [Oorexx-devel] Discussion: Adding variable references to ooRexx.
>
> Yes, I wasn't keen on arrows or '^' either :-).
>
>
> But I'm even more un-keen on '&'. <<shudder>>
>
> How about '*', then, as being still being one of the two ends of the
> C notation?
>
>
> I’m even less keen on using *. Now that C++ allows you to declare
> arguments as being
> references rather than pointers, I've been moving away from using
> pointers as arguments.
>
> A resemblance to exec2 is not that strong of an argument when you
> consider a large portion of
> the ooRexx users have never even heard of the language.
>
>
> That really isn't true .. almost all ooRexx users are Rexx users, mostly ex-
> (or current) mainframers.
>
>
>
> And it's not like every variable is going to suddenly acquiring a
> leading '&'. This will
> generally be used in a few selective place, such as situations where you
> wish to return
> multiple values back from a call or method.
>
>
> However or wherever it is used it would be inexplicable, and if it is used
> only rarely then it
> would be even more baffling when it appears. What does the 'and' operator
> have to do with
> references?
>
> This would be a classic example of a bewildering notation that makes a
> language inscrutable. When
> seen, users would be forced to open the manual to figure out what it does.
> In short: maybe a
> nice addition to Perl, but it has no place in a Rexx language.
>
> Mike
>
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Oorexx-devel mailing list
Oorexx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/oorexx-devel