OK, let’s make this problem a little simpler.  The question of terminology in 
the JVMS is harder, but we have a syntax decision to make at the source code 
level.  So far its been proposed we replace “value class” with 

    inline class Foo { }

In addition to liking the sound of it, I like that it is more “modifer-y” than 
“value”, meaning that it could conceivably be applied to other entities:

    inline record R(int a);

    inline enum Foo { A, B };



> On Apr 8, 2019, at 7:50 PM, Doug Lea <d...@cs.oswego.edu> wrote:
> 
> On 4/8/19 6:44 PM, John Rose wrote:
> 
>> If we move terms around so "value" gets replaced by "inline",
>> and "reference" by "indirect", only the first two lines are
>> affected:
>> 
>> “inline object”, “indirect object” (also inline or indirect instance)
>> “inline class”, “indirect class” (also inline or indirect type)
>> 
> 
> It would be nice not to use new terms for old concepts (even if new to
> Java). For alternative terminology originally stemming from similar
> struggles to make such distinctions, see UML "Composition" vs
> "aggregation" (also vs "association"). Wikipedia has some definitions:
> https://en.wikipedia.org/wiki/Class_diagram#Aggregation
> 
> The UML specs say more but behind wall at https://www.omg.org/spec/UML
> 
> -Doug
> 

Reply via email to