Experiment: Unit testing isn't enough; You need static types, too 
I think most people would agree that these two circles overlap on a Venn diagram:<p><pre><code>    (    Bugs found by unit tests (     ) Bugs found by type-checking    )
</code></pre>
The disagreement is how much. Also, type-checking is free[1], while unit tests have to be manually written.<p>I'm glad someone spent a lot of time trying to answer this question, but I don't think it will affect my choice of language in any new project. I like to write code in the languages I like, and bugs be damned.<p>1. A common argument is that static-typed languages slow development. I'm not touching that land-mine.