where are all the objects?

John Rose john.r.rose at oracle.com
Thu Aug 11 01:35:29 UTC 2022


On 10 Aug 2022, at 10:38, Kevin Bourrillion wrote:

> I thought we had a good discussion this morning. Some random followups:

Likewise.  Good followups; one comment here:

>> The eventual "final" presentation of value classes to users (in the
> permanent documentation and the definitive seminal slide presentations, and
> to *some* degree in the JLS itself) should anchor on one model or the
> other. But these docs/presentations might also want to say "and here's why
> you get to think of it this other way when you want to". That may sound
> like trying to have it both ways, but... I want to believe that as long as
> one is subjugated to the other it would be fine. "Here's how little is
> *really* changing; here's how your day-to-day modell gets to evolve because
> of that".

In terms of my previous note today, I guess VANO makes a hard distinction between platonic (pure logic) and constructive (box/arrow) entities, with values taking their preferred platonic form and objects the preferred constructive form.  Meanwhile, VAO asks that both be viewed under a common mindset, both being “the same kind of stuff”.

My goal in that note was to suggest that either values or objects can be viewed as either kind of “stuff”, platonic ideal or box/arrow gadget.  (And with a conceptual bridge of some sort between the two kinds of “stuff” that preserves our ideas of how values and objects should work.)  This supports both VAO and VANO options.  In fact, VAO comes in either pure-platonic or pure-constructive form.  I suppose there could also be a “mind games” version of VANO where values are constructive and objects are platonic; yuck.

Anyway, I feel there is a continuum (not a hard divide) between simple/ideal to complex/ad-hoc, for both values and objects, and that even if the opposite ends of the continuum feel different to teachers and students, there are useful ways to unify the whole continuum.

Simpler kinds of values, and simpler objects (e.g., immutable with no fields or one field), are natural to regard as timeless platonic ideals.  Or, with different metaphysical color, as algebraic objects, or as formal label-like expressions.

Meanwhile complex many-field objects (with or without state or identity, usually with methods) surely seem less like algebraic expressions and more like ad hoc box/arrow configurations, gadgets to be built procedurally or displayed in diagrams.

So I suppose we can point out multiple viewpoints and invite teachers and students to pick the useful ones on a case-by-case basis.  And then the specification can choose one normative viewpoint (perhaps for technical reasons), subjugating other viewpoints as mere non-normative commentary.


More information about the valhalla-spec-observers mailing list