On Thu, Oct 25, 2012 at 2:58 PM, clay <[email protected]> wrote:

> The companion objects vs static
> The primary constructor system
> The merging of separate fields/properties to eliminate pointless JavaBean
> getters/setter or even the C# automation of getter/setters
> The way that if blocks, for blocks, and aribtrary { } block return values
> The way that immutable val is such a native construct
> The addition of persistent immutable collections to the standard library
> Pattern Matching
> Native tuples
>

I agree with most of these points so my list would be pretty close to
yours, but I'll add one important (to me) item: I want that language to
contain very little on top of the features I want.

I like my languages like I like my beef: lean.

The problem with fat is that you can't just say "Ah well, I don't see the
point in multiple inheritance of implementation, but I'll just ignore it".
You can't ignore features in a language you don't like, you will encounter
them whether you use them or not. And if you happen to be right in
disliking a certain feature, it's almost guaranteed that when you encounter
source code that uses that feature, it will make you unhappy.

What makes a great language designer is not the ability to implement
complicated pieces of the compiler but the simple ability to say "No".

-- 
Cédric

-- 
You received this message because you are subscribed to the Google Groups "Java 
Posse" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en.

Reply via email to