I do something similar daily, and it works fine, as we have a strong test suite.
You can't disassociate dynamically typed languages from (strong) test suites, so one needs to qualify:
> Good luck making changes to a 100kloc Python codebase without test suite
versus
> Good luck making changes to a 100kloc Python codebase with a good test suite
In context, the first case is no different from "Good lucking making changes to a 100kloc Rust spaghetti-coded codebase", and one can't meaningfully judge a something based on a poor use of it.
> In context, the first case is no different from "Good lucking making changes to a 100kloc Rust spaghetti-coded codebase", and one can't meaningfully judge a something based on a poor use of it.
It's not the same. Type system provides certain guarantees. Also it's much harder to write spaghetti code in Rust.
You can't disassociate dynamically typed languages from (strong) test suites, so one needs to qualify:
> Good luck making changes to a 100kloc Python codebase without test suite
versus
> Good luck making changes to a 100kloc Python codebase with a good test suite
In context, the first case is no different from "Good lucking making changes to a 100kloc Rust spaghetti-coded codebase", and one can't meaningfully judge a something based on a poor use of it.