Darren Oakey, commenting on David's post, has not only drunk the koolaid, he's swimming in it. To wit:
Static typing makes life easier because it SIMPLIFIES the decisions you have to make. Then it makes life orders of magnitude easier because it allows the IDE to provide useful and high quality information about what you want to do - there without changing context, without looking a different IDE. Final classes, checked exceptions make life EASIER because you don't make mistakes. The protect you from both misuse, and the far more common programmers affliction of stupidity - and that protection makes programming EASIER because your program works. First time and every time.
Yep, "final" makes things easier, IF the original designers thought of every possible contingency that I as a developer might ever run across, anytime, anywhere. Static typing makes it so easy that developer never, ever have to use casts. Not once - it simply never happens.
The last part of his comment is the telling part - he wants these things in order to protect the developer from his own stupidity. Just remember that the next time you use one of the mainstream languages - many of the "features" were designed with the idea in mind that you, the developer, are a moron.
As to his last comment, that these things ensure that your program works right the first time and every time? Pardon me while I go have a giggle fit...