the thing with typed languages, is not what they do for you, but what they do for the team. for the big team, dealing with non typed languages is a horrible idea. Writing unit tests to provide checks for types, that is free in typed languages is wasteful. More importantly typed languages provide great support for intellisense and other tools for refactoring and code analysis. Python popularity soared with v 3.0 which allows type annotations, so big projects can more readily adopt it. I cannot imagine new developer coming in the project and having to go 3 functions deep just to figure out, what kind of object they are dealing with in this class and function. Typed languages strength is not enforcing strings vs ints, but CustomerAuthToken vs PurchaseOrderBase.