more background to List<int> specializing List<Any>

Brian Goetz brian.goetz at
Mon Jan 5 03:00:20 UTC 2015

> - that there is too much concern on memory/performance and not enough
> on developer productivity - Java isn't C

We care a lot about developer productivity -- remember Java 8?  But we 
also have to pay attention to performance too.  You might not care (and 
that's great for you if you can avoid caring), but not all users have 
that luxury.  And developers spent ridiculous energy working around 
boxing / objects.

Value types are not an end unto themselves; they power features that 
offer productivity and performance both -- alternate numerics, tuples, 
faster iterators, etc.  (It's too bad they weren't around for JSR-310, 
as you went to great effort to ensure that date-times behaved like 
values, but you still had to pay the boxing cost anyway.)

Value types are also a huge boon for non-Java languages, who have to 
represent other-language primitives in Java, such as numerics that don't 
quite line up with Java's eight primitives.

So, I think what you're saying is there isn't as much for *you* in this 
release as there was in other releases.  And that's OK.  We have a 
diverse base of users, and we have to serve them all.  Value types are a 
foundational tool that will make a huge difference for a significant 
category of users.

More information about the valhalla-dev mailing list