Alan,
It's true that there has been little effort to produce extension libraries for NetRexx, and this should be done to provide those feature that Rexx users feel are indispensable. This will make NetRexx palatable to those coming from a Rexx background. But for the Java aware, NetRexx comes with the colossal Java Class Library, whose scope and quality is IMHO unequaled. On Sun, Sep 26, 2010 at 12:12 PM, Alan Sampson <[hidden email]> wrote:
_______________________________________________ Ibm-netrexx mailing list [hidden email] |
In reply to this post by David Requena
I should have been more specific:
It is not a "3 symbol sequence"; it is a substitution token available at any/all points in the standard (Net)Rexx expression on the right of the '='. If '~' were a token meaning "whatever variable is to the left of the '='", then the argument about having to repeat the variable name in a simple expression goes away, as does "search and replace considered harmful". E.g. (in Rexx): aListOfVariableLengthTokens=DelStr(~,1,Pos(dlim,~)) As much as it pains me to admit it, this is not unlike the use of the '~' as a shortcut to the contents of the $HOME directory environment variable, or the '.' to indicate the current directory in UNIX shells. -Chip- On 9/25/10 21:46 David Requena said: > > El 25/09/2010 16:02, Chip Davis escribió: >> If, as has been asserted, "search and replace are evil" (with >> requisite apologies to Dijkstra) why not have a token that means >> "whatever is on the left of the '='"? Something like: >> >> aVeryLongAndComplicatedVariableName=~+1 > > That seems a weird argument to fend the use of: > > aVeryLongAndComplicatedVariableName += 1 > > In which way an arbitrary 3 symbol sequence would present any advantage > over a 2 symbol one? One that is already familiar for a large number of > people > > And yes, 'search and replace' *is* harmful :-) > > --- > Saludos / Kind regards. > David Requena > > > > ------------------------------------------------------------------------ > > _______________________________________________ > Ibm-netrexx mailing list > [hidden email] > _______________________________________________ Ibm-netrexx mailing list [hidden email] |
> I should have been more specific: > > It is not a "3 symbol sequence"; it is a substitution token > available at any/all points in the standard (Net)Rexx > expression on the right of the '='. > > If '~' were a token meaning "whatever variable is to the left > of the '='", then the argument about having to repeat the > variable name in a simple expression goes away, as does > "search and replace considered harmful". > > E.g. (in Rexx): > > aListOfVariableLengthTokens=DelStr(~,1,Pos(dlim,~)) > > As much as it pains me to admit it, this is not unlike the > use of the '~' as a shortcut to the contents of the $HOME > directory environment variable, or the '.' to indicate the > current directory in UNIX shells. Interesting .. and more useful/general than += and so on. One could use '=' instead of '~', perhaps, to reinforce the association with assignment. Happily a clause of the form 'a==whatever' is currently always an error, I think, so: foo==+1 could mean 'foo=foo+1', with no breakage. The example above would look like: aListOfVariableLengthTokens=DelStr(=,1,Pos(dlim,=)) For a moment I thought '=' in PARSE might be a problem, but of course it isn't an assignment. Mike _______________________________________________ Ibm-netrexx mailing list [hidden email] |
In reply to this post by Aviatrexx
Chip,
I got the point first time but fac remains it's a 3 symbol sequence in this instance. I would start attempting to lookup '=~+' among the language operators when seeing this first time.
While I see this idea as an interesting one, one worh further researching, it seems to me it opens a whole new can of worms. For one a better symbol is needed I think. Doesn't '~' be used in ooRexx for message passing? Besides '~' is Ctrl+Alt+4 then SPACE in my humble Spanish keyboard...
Also your 'advanced' example is not idiomatic in NetRexx. Surely it would be more something like: aListOfVariableLengthTokens=~.DelStr(1,~.Pos(dlim)) Strikes me as not very readable. Look, when I was a novice programmer starting with C as my first language and saw first time count += 1 I inmediatelly grasped what could be going on there. Althoug I had to check my C book, there was an '=', there was a '+' and there was an '1'; the meaning was somewhat suggested.
Now I'm sure that wouldn't have been true if I had seen count = ~ + 1 That one suggests nothing itself even when spacing helps seeing '~' and '+' as sepparated, different, things
Surely we don't want NetRexx to fall behind C in the readability area! 2010/9/26 Chip Davis <[hidden email]> I should have been more specific: -- Saludos / Regards, David Requena _______________________________________________ Ibm-netrexx mailing list [hidden email] |
In reply to this post by Mike Cowlishaw
2010/9/27 Mike Cowlishaw <[hidden email]>
This whole discussion begins to strike me as an attempt to not doing what C syntax style languages do just for the sake of not doing it. Instead we devise some far superior, über-cool, solution which in the end just overcomplicates what should be a simple matter.
And now, my votes: - YES to having '+=' style operators in NetRexx. - MAYBE YES to additionally having this assignation-suboperator when more polished (may be generalized to also work in other kinds of expressions)
-- Saludos / Regards, David Requena _______________________________________________ Ibm-netrexx mailing list [hidden email] |
For an increment operator we have the following suggested alternatives:
Variable += 1 Variable = ~ +1 Variable == +1 I dislike += for two reasons. Firstly because the plus is on the left of the =, so it seems more like Variable+ = 1 which is senseless, if we want = to cleanly and consistently mean assignment; we don't want anything between it and the thing it is assigning to, ie whatever we opt for should begin "Variable =". Secondly if we want to count down, we'd either need to write Variable+=-1 which is getting a bit convoluted, or alternatively, to be consistent with +=, we'd need to create -= as well (not very nice). If we did not create -=, then + and - would no longer be symmetrical opposites, making NetRexx asymmetrical (not very nice either). I dislike == for two reasons, firstly it is overloading the = with another meaning (it already has over two meanings ie assignment (1) and comparators (1 and a bit) (eg =, >= etc). Secondly because intuitively == means more equals than equals (ie identical?), which is not what the intention is. I do like Variable = ~ +1 because both the "Variable=" and the "+1" are fully consistent with what we already have, and hence we only have one new thing to remember, and that thing, as Chip has demonstrated, has a more general and wider use, helping lines not to become overlong. If we are to introduce something else to the language, it needs to give sufficient benefit to justify the weight it adds to the language, and the general purpose nature of the ~ just tips it in its favour I think. So there's my vote. Connor. On 27 Sep 2010, at 09:44, David Requena wrote:
_______________________________________________ Ibm-netrexx mailing list [hidden email] |
On Mon, Sep 27, 2010 at 7:41 AM, Connor Birch
<[hidden email]> wrote: > For an increment operator we have the following suggested alternatives: > Variable += 1 > Variable = ~ +1 > Variable == +1 I vote for Variable = ~ +1. It´s the one that makes more sense at first sight. FC _______________________________________________ Ibm-netrexx mailing list [hidden email] |
In reply to this post by Thomas.Schneider.Wien
Fernando Cassia <[hidden email]> wrote the following on 27/09/10 12:09:19:
> On Mon, Sep 27, 2010 at 7:41 AM, Connor Birch > <[hidden email]> wrote: > > For an increment operator we have the following suggested alternatives: > > Variable += 1 > > Variable = ~ +1 > > Variable == +1 > > I vote for Variable = ~ +1. It´s the one that makes more sense at first sight. I vote for Variable += 1 because several other languages use it, including ooRexx and Java. Don't be different for the sake of being different! _______________________________________________ Ibm-netrexx mailing list [hidden email] |
In reply to this post by FreeFall
2010/9/27 Connor Birch <[hidden email]>
But as you point elsewhere '=' already means other things when prefixed by several other symbols ('<', '<', '\', '¬') BTW '+=' is not "assignment" but a different thing: sum-then-assign. That is in fact the point.
well, I've been talking all the time about the '+=' operator family. As in '+=', '-=', '*=' and '/='. As you somewhat point out putting these in reverse order interferes with the (right) meaning of '+' and '-' as unary operators (conveying sign of the number following them)
That, you must admit, is a very subjective aesthetic consideration. At no point in time will I make an argument about the alternative '~' thing based on the fact I find it irremediably ugly
hmm... I don't see anyone advocating += without -= -- Saludos / Regards, David Requena _______________________________________________ Ibm-netrexx mailing list [hidden email] |
In reply to this post by bob.martin
On Mon, Sep 27, 2010 at 8:36 AM, <[hidden email]> wrote:
>> I vote for Variable = ~ +1. It´s the one that makes more sense at first sight. > > I vote for > Variable += 1 > because several other languages use it, including ooRexx and Java. > Don't be different for the sake of being different! Is there a reason for not allowing both? FC _______________________________________________ Ibm-netrexx mailing list [hidden email] |
In reply to this post by bob.martin
On 27 Sep 2010, at 12:36, [hidden email] wrote:
I'd sooner say "Don't be the same for the sake of being the same" We are not creating ooRexx or Java here; Rexx is different largely BECAUSE it has different (and better) syntax. Our driver should be to have the clearest/best syntax. The only case where I would support going with one option that is the same as the syntax of another programming language, is if the options are equally good in other respects. Connor. _______________________________________________ Ibm-netrexx mailing list [hidden email] |
In reply to this post by Thomas.Schneider.Wien
seconded thirded foured etc.
---- [hidden email] schrieb: > Fernando Cassia <[hidden email]> wrote the following on 27/09/10 12:09:19: > > On Mon, Sep 27, 2010 at 7:41 AM, Connor Birch > > <[hidden email]> wrote: > > > For an increment operator we have the following suggested alternatives: > > > Variable += 1 > > > Variable = ~ +1 > > > Variable == +1 > > > > I vote for Variable = ~ +1. It´s the one that makes more sense at first sight. > > I vote for > Variable += 1 > because several other languages use it, including ooRexx and Java. > Don't be different for the sake of being different! > > _______________________________________________ > Ibm-netrexx mailing list > [hidden email] > _______________________________________________ Ibm-netrexx mailing list [hidden email] |
In reply to this post by Thomas.Schneider.Wien
On 27 Sep 2010, at 12:36, [hidden email] wrote:
I'd sooner say "Don't be the same for the sake of being the same" We are not creating ooRexx or Java here; Rexx is different largely BECAUSE it has different (and better) syntax. Our driver should be to have the clearest/best syntax. The only case where I would support going with one option that is the same as the syntax of another programming language, is if the options are equally good in other respects. Connor. _______________________________________________ Ibm-netrexx mailing list [hidden email] |
In reply to this post by Thomas.Schneider.Wien
---- Connor Birch <[hidden email]> schrieb:
> The only case where I would support going with one option that is the same as the syntax of another programming language, is if the options are equally good in other respects. > > Connor. And this is the very case here. ooRexx, sort of sibling to netrexx, has that syntax! so, please support it instead of that horrible (to me) i=~1 Walter Why my suggestion to change Texas to Texxas (because of its greatness never made it to the list I don't know. So here it is again - for a SoM (smile on Monday) _______________________________________________ Ibm-netrexx mailing list [hidden email] |
In reply to this post by David Requena
I was startled by David's remark about the difficulty of typing tilde (~) on his Spanish keyboard. This sent me to WIKI TILDE where I found that ~ is a pretty nasty customer for European users (I had lazily assumed that they had convenient access to the base ASCII set on their keyboards).
I like MFCs idea (I hope there isn't some case where it flatly fails!). It avoids introducing a new character and it doesn't seem at all hard to parse: the first '=' means assignment and subsequent ones are placeholders. That doesn't seem excessively challenging. I agree that it is an additional overloading, but no one complains about the current overloading of '=' (in comparisons) because there is no difficulty in recognizing which is which. I don't think MFC's proposal changes this. On Mon, Sep 27, 2010 at 7:46 AM, David Requena <[hidden email]> wrote:
_______________________________________________ Ibm-netrexx mailing list [hidden email] |
In reply to this post by FreeFall
I think this whole discussion is getting out of hand,
please do not change this stuff at all, all of the below suggested
options
make NetRexx more cryptic to my brains and my brains don't
like cryptic stuff... tried both C and Java stuff shortly and
my
brains simply refuses to consume this stuff and let me get
acquainted with it...
NetRexx readability fits my brain and that's why I like it
and stick with it...
Thanks for not changing
anything... :-)
Michael From: [hidden email] [mailto:[hidden email]] On Behalf Of Connor Birch Sent: maandag 27 september 2010 13:55 To: IBM Netrexx Subject: Re: [Ibm-netrexx] NetRexx enhancements -- reply On 27 Sep 2010, at 12:36, [hidden email] wrote:
I'd sooner say "Don't be the same for the sake of being the same" We
are not creating ooRexx or Java here; Rexx is different largely BECAUSE it has
different (and better) syntax. Our driver should be to have the
clearest/best syntax.
The only case where I would support going with one option that is the same
as the syntax of another programming language, is if the options are equally
good in other respects.
Connor.
_______________________________________________ Ibm-netrexx mailing list [hidden email] |
In reply to this post by FreeFall
Since many of us, but not all, see a value for this generalized sort
of notation, I'd like to offer for discussion another symbol: @ . This has the advantage being able to be read/thought of as "that variable which is AT the left of the assignment." It is also apparently widely available on keyboards. It avoids adding another meaning to "=". So we could have Variable = @ + 1 Variable = 1 + @ aListOfVariableLengthTokens=@.DelStr(1,@.Pos(dlim)) [From what I can see, this does not interfere with Java's use of "@" in annotations, but I am not a user of Java.] Jeff (Considering adding a keyboard macro for shift+2 to use in typing his REXXish languages.) On 9/27/2010 6:41 AM, Connor Birch wrote: > For an increment operator we have the following suggested alternatives: > > Variable += 1 > Variable = ~ +1 > Variable == +1 > > I dislike += for two reasons. Firstly because the plus is on the left > of the =, so it seems more like Variable+ = 1 which is senseless, if > we want = to cleanly and consistently mean assignment; we don't want > anything between it and the thing it is assigning to, ie whatever we > opt for should begin "Variable =". Secondly if we want to count > down, we'd either need to write Variable+=-1 which is getting a bit > convoluted, or alternatively, to be consistent with +=, we'd need to > create -= as well (not very nice). If we did not create -=, then + > and - would no longer be symmetrical opposites, making NetRexx > asymmetrical (not very nice either). > > I dislike == for two reasons, firstly it is overloading the = with > another meaning (it already has over two meanings ie assignment (1) > and comparators (1 and a bit) (eg =, >= etc). Secondly because > intuitively == means more equals than equals (ie identical?), which is > not what the intention is. > > I do like Variable = ~ +1 because both the "Variable=" and the "+1" > are fully consistent with what we already have, and hence we only have > one new thing to remember, and that thing, as Chip has demonstrated, > has a more general and wider use, helping lines not to become > overlong. If we are to introduce something else to the language, it > needs to give sufficient benefit to justify the weight it adds to the > language, and the general purpose nature of the ~ just tips it in its > favour I think. So there's my vote. > > Connor. > > Ibm-netrexx mailing list [hidden email] |
In reply to this post by George Hovey-2
Then I guess I need to step up.
Firstly, I have no vested interest in the particular glyph being used. The tilde was a handy one that I knew was not being used. I was proposing a more general mechanism than the extremely limited '+=' construct in 'C'. All of the arguments (save one) for the '+=' had to do with not having to repeat a variable name (saving keystrokes, difficulty of variable name modification, evility of search&replace, etc.). The only other argument for it was: "C does it". (Quoting my mother: "And if C decided to jump off the bridge, would you do it too?") The '+=' construct saves exactly one instance of a variable name. My proposal saves many. Secondly, while the tilde is indeed an ooRexx operator, I don't care. It also breaks Classic Rexx and Korn shell scripts. There is much in NetRexx that is not legal (oo)Rexx. So what? It's a different language for a different platform. I am far more interested in hewing to the Rexx philosophy of clarity and sensibility, than to Thirdly, it would appear that the Spanish keyboard provides no more difficulty rendering the tilde than any of the rest: hold a shift key and press another key. It is no more difficult for David to hold the 'AltGr' and press the '4' key than it is for English keyboard users to hold the 'Shift' key and press the '`'. The only difference is that his language uses it as a diacritical mark, so he must press the space bar if he wants a stand-alone tilde, otherwise it tries to accent the next key pressed. Besides, if the tilde was so difficult to use on a Spanish keyboard, how the heck does he use Unix/Linux, or code in C, C++, C#, Perl, or any of myriad other programming languages? Fourthly, the only place in Rexx or NetRexx where the equal sign is truly overloaded, is assignment. In all but one case, it means "equal comparison". It still means that in the compound comparison operators '>=', '\=', etc. There is no confusion there. In the remaining case, it means "exactly this Parse target", so it still means "equals". On initial reading of Mike's suggestion of using '=' in place of the '~' as a variable name reference, I had two reactions: 1. Oh no, not another meaning for that glyph. 2. Hey, that's not bad! It still means "equals", only now it means "equal to the left-hand variable". Not bad. Had I had his ability to foresee the lack of unintended consequences of using it, I'd have picked that one myself. 3. Why didn't he think of that back in 1979? I could have really used it all these thirty years! :-)) While I don't like the foo==+1 because it looks too much like the '==' operator, I don't have to write it like that. -Chip- On 9/27/10 15:56 George Hovey said: > I was startled by David's remark about the difficulty of typing tilde > (~) on his Spanish keyboard. This sent me to WIKI TILDE where I found > that ~ is a pretty nasty customer for European users (I had lazily > assumed that they had convenient access to the base ASCII set on their > keyboards). > > I like MFCs idea (I hope there isn't some case where it flatly > fails!). It avoids introducing a new character and it doesn't seem at > all hard to parse: the first '=' means assignment and subsequent ones > are placeholders. That doesn't seem excessively challenging. > > I agree that it is an additional overloading, but no one complains about > the current overloading of '=' (in comparisons) because there is no > difficulty in recognizing which is which. I don't think MFC's proposal > changes this. > > > > On Mon, Sep 27, 2010 at 7:46 AM, David Requena <[hidden email] > <mailto:[hidden email]>> wrote: > > > > 2010/9/27 Connor Birch <[hidden email] > <mailto:[hidden email]>> > > I dislike += for two reasons. Firstly because the plus is on > the left of the =, so it seems more like Variable+ = 1 which is > senseless, if we want = to cleanly and consistently mean > assignment; we don't want anything between it and the thing it > is assigning to, ie whatever we opt for should begin "Variable =". > > > But as you point elsewhere '=' already means other things when > prefixed by several other symbols ('<', '<', '\', '¬') > BTW '+=' is not "assignment" but a different thing: sum-then-assign. > That is in fact the point. > > > Secondly if we want to count down, we'd either need to write > Variable+=-1 which is getting a bit convoluted, or > alternatively, to be consistent with +=, we'd need to create -= > as well > > > well, I've been talking all the time about the '+=' operator family. > As in '+=', '-=', '*=' and '/='. As you somewhat point out putting > these in reverse order interferes with the (right) meaning of '+' > and '-' as unary operators (conveying sign of the number following them) > > > (not very nice). > > > That, you must admit, is a very subjective aesthetic consideration. > At no point in time will I make an argument about the alternative > '~' thing based on the fact I find it irremediably ugly > > > If we did not create -=, then + and - would no longer be > symmetrical opposites, making NetRexx asymmetrical (not very > nice either). > > > hmm... I don't see anyone advocating += without -= > > -- > Saludos / Regards, > David Requena > > > _______________________________________________ > Ibm-netrexx mailing list > [hidden email] <mailto:[hidden email]> > > > > > ------------------------------------------------------------------------ > > _______________________________________________ > Ibm-netrexx mailing list > [hidden email] > _______________________________________________ Ibm-netrexx mailing list [hidden email] |
In reply to this post by Michael Dag
I second the motion. . .
bobh On Mon, Sep 27, 2010 at 11:30 AM, Michael Dag <[hidden email]> wrote:
_______________________________________________ Ibm-netrexx mailing list [hidden email] |
Well, you both don't have much to worry about.
It's not as if we could actually change anything in NetRexx at the moment :-)
2010/9/27 Robert Hamilton <[hidden email]> I second the motion. . . -- Saludos / Regards, David Requena _______________________________________________ Ibm-netrexx mailing list [hidden email] |
Free forum by Nabble | Edit this page |