What would you guys think about removing the second parameter from 
Array.new ? I suggest this for 2 reasons:

If the object is a pass-by-copy class such as
   Array.new(n, true), or Array.new(n, 23)
then this syntax is exactly the same as
   Array.new(n) {true}, or Array.new(n) {23}

If the object is a pass-by-reference, such as
   Array.new(n, Klass.new)
this can be represented by
   k=Klass.new
   Array(n) {k}
This syntax is less pretty, but does anybody even Array.new this way? 
It's a sort of nice piece of syntactic sugar, but I don't see how it's 
actually useful. Please correct me if I'm wrong about this.

If all of the above is true, I would suggest removing the second 
parameter from this method, because it confuses plenty of newcomers.

Thanks,
Dan