Okay, when I was first learning Python at 15 I pretty much thought static typing was stupid. But I was dumb. Ever since I learned to appreciate static typing when I learned Go, I've seen it as pretty one-sidedly better. Even the only thing I could think of over the years that seemed to make an argument for dynamic typing, people pointed out in the comments that some languages' type systems could actually solve it just as well (just not any I know).
I think all the legitimate gripes people have with type systems are just with bad type systems, and if you combine the good ideas from a couple of them, you can easily imagine a type system with all of them benefits and none of the costs:
- Sum types
- Interface-based polymorphism
- Struct inheritance
- Type inference (I still think interface inference is also possible but I've never seen it)
Et cetera. It seems every problem caused by one language's type system is solved by another's, and there's no reason their good traits couldn't be combined. What are the counterexamples?