Value types: lost design history

John Rose john.r.rose at oracle.com
Fri Feb 21 18:33:33 PST 2014


On Feb 21, 2014, at 12:58 PM, Martin Buchholz <martinrb at google.com> wrote:

> 15 years ago, Gosling had a design for value types as part of an effort to
> provide better support for numerics.  The web page hosting those ideas
> (fp.html) fell victim to a policy change at Sun and dropped off the Net.
> Fortunately, the Wayback machine still has a copy, although it is not easy
> to find.
> 
> http://web.archive.org/web/19990202050412/http://java.sun.com/people/jag/FP.html#classes

Nice find!  I can attest that this line of thought has been continuously alive among us Sun Java folk.

> Gosling writes that he was influenced by Sather, perhaps indirectly via
> David Stoutamire, who was at Sun at the time.
> Sather's FAQ on "immutable classes" is still online.
> http://www1.icsi.berkeley.edu/~sather/faq.html#19
> 
> Their ideas are still good and it seems that the latest generation of java
> language designers may have rediscovered them?

More like we're all rediscovering C structs, as the Sather FAQ suggests:

>   • Value classes are treated differently; in Sather-K they are closer to C structs. This means that you can modify elements without reassigning the object. In Sather 1.1 value classes are not distingushable from immutable reference classes.

The hardest part about values for the JVM is deciding the effect of their mutations on the JMM.  Since the JMM was not invented 15 years ago, that part of the design space was a tangle.

And the language design space is always a tangle.  :-)

— John


More information about the lambda-dev mailing list