I've actually seen that kind of definition in the source of one game.
HN user
leadnose
My guess is that C# supports stuff that has no direct and fast implementation on the JVM. IIRC C# has unsigned primitive types, stack allocated objects etc. which JVM doesn't have.
Requires a clean install? Is this really the state of the art in the Windows-world?
I don't quite understand why that sort of methods should belong to array-class. Should array also have product-method? Average? Standard-deviation? Concatenating strings? Where should you draw the line?
Consider libraries in dynamic languages, there's no way to know beforehand the type of the argument a function is called with.
Maybe I should have said "they don't have type inference".
The more I have thought about fully dynamic languages that don't allow any form of static typing information, the more I have begun to think that they are not very useful. Sure, polymorphism is nice, overloading is nice, but all of the programs I have written, have relied on some sort of typing discipline, be it dynamic, static or whatever. I can't imagine writing a useful function for which I wouldn't know what it's type is. Just because Java, C++ etc. implement static typing poorly, doesn't mean static typing has to suck when there are many languages that have inferred static typing, which in my opinion can provide best of both worlds.
EDIT: By "best of both worlds" I mean "concise code and the benefits of the program being well typed"