@VGR said:
That said, Java's design employs a philosophy which may be partly a
"lowest common denominator" philosophy but which is also a "more
productivity, less bullshit" philosophy. The goal is to stay as
simple and straightforward as possible. (Also known as
K.I.S.S.) I've come to really appreciate this, as it makes
maintenance considerably easier.
As i understand The Java Philosophy(TM), it's all about keeping code monkeys from doing stupid things regardless of their stupidity. It's about obsessive top-down design, committees and cubicles.
Yes, the language is as simple as possible. But that's not necessarily straightfoward from a programmers perspective, when you want get things done. And it sure is not "more productive", otherwise we would all code assembler on RISCs.
@VGR said:
... I think it's important to ask, is the
benefit worth the added complexity?
How could MI possibly be complex in any sane program? In my humble experience it's quite often the lack of MI that causes complexity.