Fwd: Remi's comments on Any
Brian Goetz
brian.goetz at oracle.com
Mon Jan 5 16:04:09 UTC 2015
> I understand that the folks who have to implement this stuff on the VM
> are naturally looking for the thing that is simplest to implement. But
> if that ease of implementation surfaces itself as extra complexity in
> the type system, I don't think it does anyone a favor.
Welcome to the real world :(
Working within the architecture of the JVM is not mere laziness. If the
language-level abstractions we give people for modeling programs don't
match up appropriately with the VM-level abstractions for representing
those programs, this is not doing anyone a favor, because we are selling
(harmful) fictions.
As a simple example, suppose than in Java 5, we pushed autoboxing
deeper, and let you write:
List<int>
and really that was just sugar for List<Integer>. This gives the
illusion of a prettier type system, but comes at the cost of some nasty
fall-off-a-cliff performance that is even more confusing that what we've
got now.
If all we cared about was simplicity of implementation, we'd probably
already have done something (dumb) like this.
I get that you've convinced yourself that its possible to just magically
remove the complexity (just introduce Any!) and then you get the best of
both worlds. But given that the JVM implementation experts have not
responded with "gee, brilliant idea, thanks!", perhaps you should
consider that this approach is not as straightforward as you think?
More information about the valhalla-dev
mailing list