> For (2) the proposal I saw earlier said something like, we'd like for `new 
> Object` to mean REFERENCE. I think that is a siren song, and this issue has 
> been addressed by Brian's proposal to deal with `new Object` as a migration 
> problem. Rather than suggesting to use some static factory instead (which 
> works for plain instance creation but not for inner class creation) I think 
> perhaps the user code should be migrated to use `new RefObject` and `new 
> RefObject() { }` instead (at least if people want the reference semantics). 
> But these are minor details
> 

What I like about treating this as a migration problem is, that despite the 
inconvenience, the resulting code is actually _a lot more clear_.  The first 
time I saw “new Object()” (that was a long time ago), I remember thinking “What 
the heck is the point of that?”, until I realized that Objects had a secret 
object identity.  Whereas “new IdentityObject()” is more clear that you are 
creating an instance _for the precise purpose of using its identity_.  

So, while there is some migration pain, the resulting language is actually more 
clear.  I like that.


Reply via email to