I have experience in working on statically typed Python codebases, it's just obviously inferior.
I'll go further and tell you the most common reason for using static typing is to allow the codebase to be a monolith like it's still the 90s. You shouldn't be trying to build a monolith in a scripting language it's a recipe for disaster.
I'm a polyglot, I'm exactly the sort of person who should be commenting.
Does it surprise you that static typing is often a poor choice?
Static typing is something to be used when the performance of your code is important. I've done 40 Gbits/sec network traffic processing, certainly static typing is used for that.
Your standard business CRUD app? Usually dynamic is the better choice.
> I have experience in working on statically typed Python codebases, it's just obviously inferior.
Maybe they just were inferior projects?
I've used a library where every function just accepted "args, *kwargs" and no documentation was given. In that case it's not really the fault of the language that it sucks. It could be a similar case for you.
> I'm a polyglot, I'm exactly the sort of person who should be commenting.
Ok I speak 3 languages fluently and 1 more so-so… But what does this have to do with python typing????
In fact most people who study literature and languages don't know much about python types.
> Does it surprise you that static typing is often a poor choice?
No because it isn't true.
> Static typing is something to be used when the performance of your code is important.
We can all agree that python isn't something to use when performances are very important.
> Your standard business CRUD app? Usually dynamic is the better choice.
Ok. That's not what I do though.
Have you done any C and C++? You know how people prefer doing a list in C++ with a template rather than a list of void in C? Same thing in python. But perhaps you haven't experience in this field either?