Towards Minimal L World

Maurizio Cimadamore maurizio.cimadamore at oracle.com
Mon May 21 10:44:04 UTC 2018



On 18/05/18 20:28, John Rose wrote:
> It sounds like you fear that migrating a VBC to a VT must require rewriting its
> constructor into a completely new notation, not yet invented.  I am saying that's
> not required, as the VBC notation is perfectly reasonable.
More the opposite; what I fear is that, by using a syntax that is 99% 
similar to constructors, developers would be lead into a false sense of 
security which might result in sharp edges.

You speak about semantics; I believe that the fact that object 
construction is based upon a mutability assumption that is totally 
absent in values is an important semantic difference.

Final fields are, I believe, not a very good metaphore for things that 
are possible only inside a constructors; when you speak about a final 
fields, well, you still have a regular field and you could almost even 
putfield on it - if it weren't for restrictions added on top.

With values, we're saying that putfield _doesn't exist_ - it's not 
matter of allowing it in one place and not in others (which, IMHO, the 
'this.x = y' suggests); we're replacing it with a whole new pattern that 
is not based on mutation. So, the fact that syntaxt-wise we're stuck 
with a description that is based on mutability seems like a red herring 
to me.

Maurizio


More information about the valhalla-spec-observers mailing list