I don’t suggest you read it all, but Bruce Eckel has written a lengthy article laying down the basics (according to the gospel of Bruce Eckel, of course) of discussionsflamewars on static vs. latent typing, here.
I did read it all, and no where in that entire 20-page story does he mention or even hint at the notion that static types also help the ‘tool environment’ (e.g. your IDE, documentation generators, automated problem finders, etcetera) make sense of code.
As returning readers will already be well aware, I consider the enabling of ‘come-from’, ‘follow’, ‘auto-complete’, and related niceties the principal raison d’etre for static typing. Actually doing it for the supposed ‘security’ of it all is a minor and largely inconsequential bonus, sure.
For someone who lives and breathes programming like Bruce Eckel, you must have realized at some point what static typing can do for you. Not mentioning the primary reason for using static typing in a purportedly neutral article laying down the basis of a very complicated discussion is extremely dishonest.
I’m loathe to call some follow blogger’s moral compass to task without ample evidence, so I’ll leave this one as an exercise to the reader.
But, either he’s a charlatan if he knows, or if he doesn’t know, he’s an idiot.
I’m all in favour of discussing latent (Javascript, python, ruby) vs. static explicit (Java, C#) vs. static implicit (boo, a number of ML variants) typing on their true merits (I consider such a discussion to revolve primarily around creative ways to enable come-from, follow, auto-complete, etc in latently typed languages. If it can be done, by all means, ditch the static types. I don’t think it can in a reasonable fashion though). This isn’t it, Bruce. This isn’t it at all.
NB: This is a repost because I made an extremely inexcusable error the first time around – I confused the name of Bruce Tate, a java hacker working at Sun, with Bruce Eckel. As wordpress doesn’t rename URLs along with a title, I felt it neccessary. My apologies to Bruce Tate for the confusion.