[jsr-335-eg] Default method survey results
Brian Goetz
brian.goetz at oracle.com
Sun Oct 21 07:03:26 PDT 2012
>> And one obvious one we forgot (which was the one we started with!):
>>
>> extension void foo() { … }
>
> It think this one is very misleading. Those who knew the term before, would think this is not what it actually is.
> Those who didn't know the term before will be OK until they come across the same word in the different context.
> Let's avoid this confusion.
I get your point, but just because C# happened to come up with something
they decided to call extension methods a few years ago, doesn't mean
that extension methods must be inherently use-site or static or
otherwise like C#'s interpretation. The core concept of after-the-fact
extension is what counts; the mechanism (monkey-patching vs accretion)
and the specific characteristics (static vs virtual) differ, but these
are details -- if C# had virtual extension methods, they still would
probably call them extension methods.
> It is almost as bad as saying that Java 8 has traits.
Fortress had stateless traits; these were just as much real traits as
Scala's stateful traits. People who know one language don't notice;
people who know more are used to the same concept (e.g., class) meaning
slightly different things in different languages.
Other opinions? For all its faults, is "default" better than "extension"?
More information about the lambda-spec-experts
mailing list