What is the meaning of this?

Osvaldo Doederlein opinali at gmail.com
Tue Feb 2 12:28:55 PST 2010


Oops, bad finger. To shortly continue the last email: design functions as
well as you can, only with the strictly necessary tradeoffs for
compatibility and legacy access (e.g. conversion / SAM types), but not any
other compromise.

A+
Osvaldo

2010/2/2 Osvaldo Doederlein <opinali at gmail.com>

> I agree too (with Mikael/Rémi/Neal). And I add that, it worries me this
> (apparent) thinking of "we cannot add new concepts to the language" - if
> this is not Josh's position, it boils down to that in practice: i.e., in
> Java there are only methods-inside-objects (or classes for statics), even
> inner classes are very explicitly methods-inside-objects, so any new
> construct to contain code must be a method-inside-object... we can't have a
> fundamentally new construct, like a function/closure/lambda. We can only
> have something that _looks like_ a function/closure/lambda but is firmly
> rooted (both syntactically and semantically) in the method-of-object
> concept, down to backwards-compatible behavior of 'this', identity / memory
> allocation, etc.
>
> With such restrictions, Java is doomed to evolve only in the most
> cumbersome way possible, every new feature always paying enormous tradeoffs
> not only to backwards compatibility (which is already often a big hit - and
> I agree that cannot be avoided), but also to the backwards thinking - let's
> not invent any really new concepts because most developers are idiots who
> can't learn that a function is something different and will certainly write
> all sorts of evil code that will fail or not be portable...
>
> I say, let's design functions as well as we can (ok as well ss you can - I
>
>
> 2010/2/2 Mikael Grev <grev at miginfocom.com>
>
> I must, slightly reluctantly due to historic reasons, agree as well. No
>> matter how things are turned lambdas is something new and the object
>> implementation should not shine through if not needed or shown advantageous.
>>
>> Also, I have always thought declaring a variable as 'volatile' would've
>> been a better solution than forcing it to be final since so many go around
>> that anyway. I know I do sometimes, and I just feel dirty when I do, for no
>> good reason since I know what I'm doing (most of the times anyway. Can't
>> think of a bug introduced that way).
>>
>> Cheers,
>> Mikael
>>
>> On Feb 2, 2010, at 19:48 PM, Rémi Forax wrote:
>>
>> > Le 02/02/2010 19:40, Neal Gafter a écrit :
>> >> I think Zdenek had it exactly right.
>> >>
>> >> A lambda expression is not an object creation expression.  The function
>> is
>> >> not declared within the scope of some object type.  A lambda is written
>> as
>> >> an independent block of code, and should be scoped accordingly.  Trying
>> to
>> >> make a lambda act the same as an anonymous class creation expression
>> smacks
>> >> of cargo-cult language design.
>> >>
>> >
>> > I agree. Lambda is an anonymous function.
>> >
>> >> Cheers,
>> >> Neal
>> >>
>> >
>> > regards,
>> > Rémi
>>
>>
>>
>


More information about the lambda-dev mailing list