I feel that it's often easier to remember short unique name like str2int than long, deceivingly reasonable name like: System.Web.Script.Serialization.JavaScriptSerializer.Serialize
I agree though that array_uniq is same as Array::uniq
> why polluting global namespaces is a bad thing.
Why is that bad for language wide utility functions?
I though global is bad mostly in your own custom code or you application specific libraries because it's accessible from everywhere which hides the dependencies (no to mention global mutable state which makes "action at distance" prevalent).