Ruby is strongly typed, much stronger than Java. An object in Ruby can not be cast to any other type, ever.
Java has static typing, which is the main difference and outside of auto-completion it is a mess that Java frameworks struggle mightily to get around.
Java requires so much extraneous code that exists for no other reason than to please the compiler.
Why is this necessary:
ArrayList<string> strings = ...
...
String string = (String)strings.get();
smh