> De: "Brian Goetz" <[email protected]>
> À: "Remi Forax" <[email protected]>
> Cc: "amber-spec-experts" <[email protected]>
> Envoyé: Lundi 18 Mars 2019 16:19:19
> Objet: Re: Concise method bodies with delegation and this
>> There are two syntaxes, the arrow syntax and the colon-colon syntax, i think
>> there is consensus that the arrow syntax (the one Brian uses) is nice and
>> convenient.
> I don’t really even think there’s consensus there; it is nice and convenient
> and
> mostly unobjectionable, but some felt “meh, what’s the point”, as it merely
> eliminates a few characters of typing.
Especially if you still have a big javadoc comment as Kevin said.
I think this feature shine when you override a method, because the semantics is
already defined (usually you don't need any javadoc), the poster child being
implementing Comparable as Victor said.
And BTW, i still think we should come with a shorter syntax for overridden
method by allowing to not declare parameter types like with a lambda,
class Person implement Comparable<Person> {
private final int id;
// more fields
override equals(o) -> (o instanceof Person p)? p.id == id : false;
override hashCode() -> id;
override compareTo(p) -> Integer.compare(id, p.id);
}
> The implementation-by-delegation sub feature is far more substantial; it
> allows
> you to implement a class by wiring its declarations to existing reusable
> behaviors. This has far more potential benefit, but also more cost.
yes, but i believe part of the cost is because the current proposed syntax is
reusing the syntaxic operators = and :: but with a slightly different
semantics.
>> - using '=' to set a concise method make the syntax easy to confound with a
>> field initialization (something which is ok in Scala because the Scala syntax
>> also blur that distinction between a method call and a field access, it's
>> less
>> ok in Java IMO).
> Please, can we not harp on notation unnecessarily?
i disagree here because i think that the proposed syntax is part of the issue
>> I really dislike the notation
> Please, can we not harp on notation unnecessarily?
fair point for this one.
Rémi