# [J3] [EXTERNAL] Re: Why is += missing?

Clune, Thomas L. (GSFC-6101) thomas.l.clune at nasa.gov
Thu Sep 2 21:13:19 UTC 2021

```Ondrej,

I pretty much agree with the metric you introduce here, but with a couple of caveats.

1.  The "number of uses"  may not be a linear factor.     For the moment I think it is fair though.
2. "how much it saves" is very subjective.

Note:  I suspect the opportunities for the ? case with N=2 options is probably not very rare, but the savings are also not particularly strong in that case.   And you may not ever have had the N=4 case like Van.   I've only had that 2-3 times in my career.   But the workaround without ? is dreadful and arguably quite difficult to understand/maintain.    And I'm sure there are (rare) cases out there with N > 4.      A person could very easily oppose the feature on those grounds.     As a former president once said though,  votes matter.    WG5 decided that this feature should be pursued.

Cheers,

- Tom

﻿On 9/2/21, 4:28 PM, "Ondřej Čertík via J3" <j3 at mailman.j3-fortran.org> wrote:

Hi Malcolm,

On Thu, Sep 2, 2021, at 1:10 AM, Malcolm Cohen via J3 wrote:
> Ondřej Čertík writes:
> > Given the number of lines that could use +=, it seems the number of lines that could use ? is orders of magnitude less, or is that not the case?
>
> Others have replied to this, but anyway:
>
> Conditional expressions turn multiple statements into one expression.
> As Van said, the alternatives to op= are trivial.
> They are so far apart as to be not comparable in functionality.
>
> Some might even disagree that “var op=expr” is clearer than “var=var op expr”.

It's a good point that the alternative to "+=" is simpler than the alternative to "?". Van made the same point.

So a better metric might be: (number of uses) * (how much it saves)

"+=" saves less, but is used a lot.
"?" saves more, but is used less.

In one of my codes I ran the "grep" command from the thread above and obtained ~600 cases where it could be used, consistent with others who posted. I can't think of a single case where I would use "?", so for me the metric above clearly wins for "+=".

I have no doubts that others would find more uses for "?", so perhaps "?" can win in the above metric for them.

>
> > The new ? operator is exactly like in C. As a committee we have decided that was the best approach from all the alternatives.
>
> Did I not mention how much I disliked the syntax the committee voted
> for? Not sufficiently to change my vote, but I was quite disappointed.

Fair enough.

>
> > I would encourage us to be open minded about adding +=.
>
> I try to be open-minded about all new features, with the caveats

I do the same.

>  2. I try to think of as many obvious problems as I can at the start,
> so we’re not surprised by them later. (Even so, I frequently miss
> problems that ought to have been obvious!)
>