> After working on large rails codebases I get nauseous even thinking about having to safely maintain that level of code in dynamically typed languages.
I can’t speak to Rails but this is easy in Python - especially because the addition of typing years back now means that a few annotations will cover most of the common mistakes before leaving your editor. In the Django community there’s a healthy distrust for the heavy levels of magic which are harder to test, which helps a lot.
I've worked on a few sizable (~100+ tables) Django Rest applications and have yet to run into all these fabled type safety issues that would prevent refactoring.
Serializers and hygienic procedures seem to take care of whatever might have been or maybe I'm just really used to the setup.
If you had asked me in 2010, 2015, or even 2018 I would've had different answers most likely.
"And you can’t imagine writing > 1000 LOC of a startup SaaS product in any of them? Really? "
After working on large rails codebases I get nauseous even thinking about having to safely maintain that level of code in dynamically typed languages.