Too Long; Didn't Read
Writing apps can be hard. Writing apps that are free from bugs is nigh on impossible. Explicit types can help, but unless you are talking about using an exotic language like <a href="http://learnyouanagda.liamoc.net/pages/introduction.html" target="_blank">Agda</a>, or other <a href="https://en.wikipedia.org/wiki/Dependent_type#Comparison_of_languages_with_dependent_types" target="_blank">Dependently Typed languages</a>, then having types is not enough, by itself, to keep our <a href="https://hackernoon.com/tagged/systems" target="_blank">systems</a> safe from exceptions at runtime. Some effort has to go into the programmer’s work, to help the compiler out, because there are going to be some blind spots. With that said, not all independently-typed languages are equal; a Haskell or a <a href="https://hackernoon.com/tagged/purescript" target="_blank">PureScript</a> or an Elm is going to do a much better job at preventing runtime errors than, say, C, due to the checks and the <a href="https://hackernoon.com/tagged/tools" target="_blank">tools</a> available to the compiler and the <a href="https://hackernoon.com/tagged/developer" target="_blank">developer</a>.