4 ms·
Dynamic languages create technical debt. They allow fast development up front at the price of more bugs later as the code "rots" and more resource consumption l
by api 5y ago
Dynamic languages create technical debt. They allow fast development up front at the price of more bugs later as the code "rots" and more resource consumption later as you scale (for server-side stuff) or as your application is used more heavily (for things you distribute). More resource consumption in the cloud means higher cloud bills, and more resource consumption locally means your app is "slow" and users don't like it.
My experience with dynamic language rot is that a single developer or a small team can create a clean bug-free dynamic application but as soon as you start adding features, refactoring, or adding developers you get all kinds of runtime-only bugs that creep in. Older unsafe static languages like C and C++ have the same problem to a lesser degree in that the compiler will catch egregious type bugs but things like memory errors, type conversion gotchas, etc. will creep in over time unless you have some really diligent testing and auditing in place.
Dynamic languages are suitable for prototyping, glue, and throwaway code, which is why we used to call them scripting languages.
I do have to add though that today's best static languages like Go and Rust are vastly superior to 1990s-2000s era C or the carpal tunnel inducing "enterprise" nightmare that Java became. Even C++ has improved if you use more modern constructions like lambdas, and nearly all languages have better libraries and better ecosystems than they did back then.