<i>And pretty much all of them are unreliable garbage...</i><p>So you have experienced thousands of unreliable garbage apps. I feel really sorry for you. My experience has been the opposite: lots of wonderful and reliable programs. And when I found one that wasn&#x27;t good, I stopped using it and replaced it with a better one.<p>I mean as a user. As a programmer I&#x27;ve seen all kind of programs, from &quot;critical mission&quot; to &quot;quick hack&quot; and from excelent to unreliable garbage. And you know what? It&#x27;s not language features but ludicrous incompetence what makes an app unreliable garbage. There are programmers out there that can make unreliable garbage in any language.<p>The &quot;secret&quot; to make some app reliable is not reserved to NASA and the like. Follow two simple patterns:<p>1. For every user action, validate input, try executing the code, catch the occasional exception and show an error message.<p>2. For every resource, allocate, try{ using it } finally { release it }<p>Put each of these skeletons in a function or method, so the resource is a local variable (no colateral effects) and it&#x27;s easy to debug.<p>That&#x27;s all. Well, also: don&#x27;t be too &quot;creative&quot; unless you know what you&#x27;re doing (most times you don&#x27;t).<p>I&#x27;m fifty-something, spent a lot of painful time mechanically applying that recipes to rotten codebases, and when I read the kind of criticisms you made I assume they come from people too young to have real world experience on what they&#x27;re criticizing. The alternative is worse: to be the kind of people that created that rot and then blamed the language.<p>Just in case: I don&#x27;t believe that manual memory languages are &quot;better&quot;. I love Python and (most of the time) JavaScript.