But have you used statically typed langauges? Unless you've used
both you won't be aware of the advantages.
The big one for me is inheriting other people's code bases, in dynamic languages they're a complete and utter nightmare, especially when written by incompetent programmers, which seems to make up a worryingly large number of programmers. Or someone just learning and not aware of conventions.
You just can't assume a method or function actually does what it says it does. Or returns what it says it does. And you can't even see what it's expecting or what things are being passed to it. You have to fine-toothcomb the method, it slows you down massively.
I have worked on a fair few bad code bases now and luckily for me the majority of that's been in static languages. It makes it so much easier.
Some of the other advantages of static typing include:
1. having incredibly good auto code completion
2. never having to remember or look up a method signature
3. to refactor massive chunks of code almost completely fearlessly
4. to fix crap code without any fear of breaking anything else
5. as long as you name your methods well, never having to annotate anything mundane (depending on your audience ofc)
There are also other things like that tend to go hand-in-hand because they're usually explicit, like not worrying about implicit conversion (apart from VB with option explicit off).
I've used both quite a lot over the last 10 odd years professionally programming and I've recently been thinking that I would actually prefer a mix, static typing on boundaries like method entry and new object declartion and dynamic everywhere else. I know little about compiler or language design, so I'm not sure it's even possible. C# kinda gets close with the var keyword, but the various disadvantages of static typing still rear their head quite a lot.
As a slight aside, People on HN always seem to talk as if they only write new programs, not maintain old ones. Am I the weird one for frequently having to pick up code that was written by someone else? Who often had coded themselves into a corner and then made up some excuse as to why they couldn't keep the client anymore?