> 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.