Am I stuck in a local maximum?
My theory is that these career evangelists have spent too much of their careers doing just that: evangelizing. They haven&#x27;t actually been writing code or building software. They&#x27;ve just been telling everyone how they think they should be building software.<p>I have arrived at the same conclusions as you wrt. static vs dynamic typing. A sufficiently powerful static type system entirely subsumes dynamic typing, and there is quite literally nothing you can accomplish with dynamic typing that you cannot accomplish with such a static type system. After writing software using both dynamically and statically typed languages, this is the conclusion I have arrived at, and it feels like a no-brainer to me.<p>This is so much of a no-brainer to me that I can&#x27;t help but be biased when someone disagrees. I want to think that I am open to having my mind changed, but I have yet to see any evidence that sways me.<p>I do think perhaps a lack of external demand for code quality and correctness might sometimes be at fault. When all you need to do is write the code for the happy path correctly, maybe you just feel static types get in the way. I&#x27;ve converted several javascript projects to typescript, and in every single one of those projects, the conversion exposed multiple(in the tens or sometimes hundreds) cases of incorrect handling of null&#x2F;undefined or just type mismatches.<p>I know this has to do with culture and the specific company and engineering discipline, but what I&#x27;m trying to get at is that I think a lot of people out there are writing code this way: just hack away until it works, and fix it if it ever crashes. When this is all you want, maybe proving correctness to the compiler is too bothersome. But I don&#x27;t and won&#x27;t work this way.