Did anyone read the explanation that was given by @mbauman and linked to multiple times?
Despite what people keep insisting here, the motivation was not to punish people who want to allocate uninitialized arrays by forcing them to type a long word. The motivation was this:
-
Collections are generally constructed in Julia by passing an iterable argument which is used to populate the collection as described here.
-
Arrays constructors predate this convention and are now an awkward exception to this general pattern. By this convention,
Array((2,3))
should construct the vector[2,3]
instead of an uninitialized 2×3 matrix. Similarly,Array(3)
should construct[3]
instead of an uninitialized 3-element vector. -
Array(dims...)
is a dangerously simple syntax for a fundamentally dangerous operation. Allocating uninitialized memory can introduce non-determinism and bugs into programs if not used correctly.Array(2,3)
looks like a very innocuous operation. So not only is this syntax now at odds with how collections generally work, but it’s a dangerous operation.