I agree with @Tim_Parnell and Norman. An array is a collection, so I’d expect an empty box rather than a box that doesn’t exist. An array with no members makes more sense than Nil to me. There is, however, precedent for both elsewhere in the programming world with what seems to be a heavier leaning toward allow Nil (null, undefined) array references being possible.
Regardless, I suspect this change is just too far-reaching. I know that I never expect an array reference to be Nil even though I have run in to it in the past, but who knows how much code is out there that does rely on checking the validity of the reference? I don’t expect this to be changed.
The difference is as MyClass, that’s returning a single instance.
If you were to define the return type as MyClass(), an array of MyClass objects, why would that be a single nil instance?
Why would that even be able to be stored in an array variable? At worst I would expect a TypeMismatchException, but would prefer the convenience of an empty array. I mean, convince is the whole point of using a framework.
Today I learned arrays much more duct-tape and bubble gum than I had previously expected.