Oh, I&#x27;ve tried both all right!<p>There is more mental overhead in dynamically-typed languages, actually .. it&#x27;s just less visible because it&#x27;s implicit! It&#x27;s the overhead of having to &quot;keep all the type information in your head&quot;, which dynamic type proponents sometimes seem to be saying is a good thing.<p>It&#x27;s not good because it is a tax on everything you do! Whereas in a statically-typed language, sure, you have to do the little extra overhead of putting the types in the program text, but this is quite freeing in the long term, because you can then drop the burden of having to think about what type something needs to be, in most cases.<p>(It also serves as documentation &#x2F; literate programming.)<p>My approach to programming tends to involve rewriting things several times, or heavily modifying them, and as someone who has been programming for 34 years, in a lot of different situations, I find that static typechecking is by far a superior framework when refactoring or rewriting code. It is not even close.