There is one indisputable fact about the quality of software.
If he cannot compile, he cannot send
In this rule, statically typed languages will win dynamically typed languages.
Well, yes, this rule is not immutable. Web applications can be delivered without compilation (I deployed many test web applications that did not compile). But it’s fundamentally true that
The sooner you catch the error, the cheaper it is to fix it.
A statically typed language will prevent real errors at one of the earliest possible moments in the software development cycle. Dynamic language will not be. Unit testing, if you are the founder of a superhuman level, can replace a statically typed language.
But why bother? There are many incredibly smart people who write the whole error checking system for you in the form of a compiler. If you are worried about getting errors, rather use a statically typed language.
Please do not accept this message as a beating of dynamic languages. I use dynamic languages every day and love them. They are incredibly expressive and flexible and allow you to incredibly love the program. However, in the event of an early error message, they lose statically typed languages.
source share