Too terse and too alien?

Maurizio Cimadamore maurizio.cimadamore at oracle.com
Tue Jun 1 03:05:55 PDT 2010


On 01/06/10 09:07, Howard Lovatt wrote:
> Rémi Forax forax at univ-mlv.fr  Sat May 29 07:14:34 PDT 2010 wrote:
>    
>> I've tried a swearword but legal:
>>
>> #()(#(){}).();
>>
>> The compiler knows more slang words than me :)
>>      
> Rémi comment, whilst very amusing, is a little worrying. Also there are
> already a number of negative comments, e.g.:
>
> http://groups.google.com/group/javaposse/browse_frm/thread/54ab72091a1ffe95
>
>
> and
>
> http://www.baptiste-wicht.com/2010/05/oracle-pushes-a-first-version-of-closures/comment-page-1/#comment-2023
>
>
>   Anyone else worried about the reaction of Java developers who are not so
> involved with lambda dev? Is the syntax too terse and too alien?
>
> -- Howard.
>
>    
Hi Howard,
I admit than I'm relieved in seeing that syntax is the biggest problem 
the current prototype has ;-)
Jokes aside, I think that there's a conceptual mismatch between language 
consumers and language designers; this is not the first time we are 
exposed to it; for instance Gilad's words [1] do a pretty good job 
(while I don't necessarily agree with them, see below) in proving the 
point that language designers are typically concerned about semantics 
(e.g. will this new feature interact nicely with other existing 
features? Will this new feature irreversibly break the existing 
programming model?), while language consumers are usually concerned 
about syntax and ease of use. The truth lies, as often it's the case, 
somewhere in between; in fact, a carefully designed language feature 
with an awful syntax it's just as useless as a beautifully cooked 
language extension that reveals a huge type-safety flaw.

Back to lambda, the decision to support the strawman syntax was mainly a 
pragmatic one; that syntax has the advantage of being an LL(1) grammar, 
easy to parse, very good for rapid prototyping; at this stage, where (as 
you can see from other messages in this mailing list) many 'deep' 
details still need to be flushed out, we decided to stick with a minimal 
syntax we all agree (sorta) upon. This could give everyone the 
opportunity of playing with the prototype a bit, finding out both flaws 
and merits.

[1] - http://blogs.sun.com/gbracha/entry/developing_modules_for_development

Maurizio


More information about the lambda-dev mailing list