Substitutability, was Re: Finding the spirit of L-World

Aaron Scott-Boddendijk talden at
Mon Feb 25 04:38:22 UTC 2019

> But its possible that, with a sufficient PR campaign, people could get

Yes please, IMO anything else will lead to madness. There'll be screaming
and gnashing of teeth and no-one wants that.

(surely this is the simplest mental-model that is actually consistent - why
do anything else)

Aaron Scott-Boddendijk

On Sun, Feb 24, 2019 at 2:43 AM Brian Goetz <brian.goetz at> wrote:

> > I've said it before, but references are a kind of value too
> Dude, you're preaching to the choir ;)
> But, for whatever reason, people have a hard time with this notion.
> Every time I've said "references are values too", people look at me like
> I have two heads.  (Think of the old trick exam question, "Does Java
> pass objects by reference or by value", and the accepted answer is
> "neither, it passes object references by value."  The SO page for this
> question has like a zillion upvotes.)  So while clearly true, its a
> harder sell.
> To be clear: before Valhalla, the JVM had two kinds of values, refs and
> primitives, and == was a reasonable approximation for the value-equality
> operator (modulo NaN, grr.)  After Valhalla, it will have three -- refs,
> primitives, and values.  And yes, what I'm selling is that == is still
> the value-equality operator.
> But its possible that, with a sufficient PR campaign, people could get
> this.  (So the question becomes: is turning people's intuition here
> worth the effort, or should we play to existing intuitions?) One piece
> of this might be finding a different name for "value type", so that
> "there are three kinds of values: refs, primitives, and values" didn't
> sound so silly.  (C# calls them structs, which is possibly the worst
> name you could come up with, so not that.)
> > More radically, I think a lot of the debate here is due to the syntax
> > pain, which would go away if an additional operator was added to Java:
> I think its optimistic to think the pain "goes away" with more syntax.
> It would just move, to angst over understanding the differences between
> the now-THREE kinds of equality operators; that doesn't feel like
> winning to me.  I would rather work within the syntax we have, and try
> to guide people to a more relevant intuition (such as, one that doesn't
> have its roots in an interpreted cost model.)

More information about the valhalla-dev mailing list