Rampdown is next week; time is fleeting.

I think the path of adding Objects::newIdentity in 17 seems the best alternative.  If there are objections, make them now.

On 6/4/2021 4:10 PM, Dan Heidinga wrote:
Quoting from several previous emails in this thread:

Brian said:
I agree that we can introduce the new API point immediately.  The 17 window 
hasn't even closed yet!  But we'd have to get a move on.  But realistically, we 
can expect it to be several years before we are comfortable erroring on the 
`new Object()` constructor.
Dan S. responded:
Of course these details can evolve, but as it stands, there's not a good path 
to introducing the API before we introduce primitive objects—IdentityObject has 
no reason to exist without primitive objects. So efforts to get people to 
migrate to something new will need to wait until then. (As discussed earlier in 
the thread, that's fine—we're inevitably going to have a period of time when 
'new Object()' does something weird.)
And Brian proposes:
What I like about the Objects placement (thought took me a while to come
around to this) is that it fits into the other Objects operations, in
that they are all sugar for code we could write without help.  I don't
think we need or want a canonical "class of all anonymous identity
objects" type.

This gives us a pretty reasonable story for where to put a minimal
helper API today, before the window for 17 closes.  Even taking the
"several years before we are comfortable erroring" into account, it
would help the ecosystem migrate to Valhalla if we get the replacement
API into the upcoming LTS so the adoption is higher before we start
erroring on it.

We know - for better or for worse - that many applications leap from
LTS to LTS which requires library authors to support previous LTS
releases while adding support for current release.  And that apps
can't leap faster than their dependencies so we want to smooth the
path that lets applications track the release cadence.

This Objects::newIdentity api seems like an easy one to add today that
we can point libraries at it as they adopt 17.  I don't see much risk
that Valhalla will change in a way that invalidates this api.
Wouldn't it be better to lay that foundation now, before 17 ships,
then to wait?

--Dan


Reply via email to