Safe navigation operator
jeynoronha at gmail.com
Thu Jan 17 12:56:00 UTC 2019
Hi Brian :)
Yes, of course it has been discussed before — many, many times.
> As a language feature, it clears the already-high bar of “not a dumb
> idea.” (You’d be surprised at what percentage of proposed features do not
> clear this bar.) So, I hear you ask, then why haven’t we done it already?
> Because even the not-dumb ideas have to clear a much higher bar to get into
> the language. And there are many reasons why we might not, even though
> other languages have demonstrated that it is a workable and arguably useful
Glad it wasn't sometinhg dumb , although i always get a little worried
about what one defines as dumbness ^^
> (If you are under the impression that this is a “small tweak”, please
> delete that notion from your head now :)
That wasn't exactly what i was thinking but i realized that it could
involve more than i could know.
> One reason why I would not consider this feature at this point is that it
> is useless if the type of the field being referenced is a primitive; in
> order to make this feature not do something silly at this point, we’d need
> nullable primitives types (`int?`). C# went this way, and its a valid way,
> but it’s not a small tweak.
hmmm, actually primitives wouldn't be the problem , i imagine. It would be
applied only to objects. But i get your point about the diferent scenarios
that we would have to think about.
> I think your main argument is “a lot of people like it.” Which is true.
> Which is to say, it has a benefit. But we cannot possibly do every feature
> that has a nonzero benefit; even if the costs were zero (which they are
> not), the complexity of the language would explode. So we have to make
> these decisions on the basis of evaluating whether a given feature offers
> us the best return on effort, cost, and complexity.
> I think this is an OK feature, but I would rather spend my budget on
> pattern matching, records, value types, and specialized generics.
Totally understand this. If there are priorities, they should be addressed
It helped a lot :) Thank you all for your Answers.
A last question: Is amber open to community help on development? I mean, i
random guy like me could help on talk about and develop new features?
More information about the amber-dev