|
|
|
|
|
by TheDong
2107 days ago
|
|
Yes, compile-time type-checking can be replaced with a sufficient quantity of runtime type-checking in the form of unit tests. However, the compiler's type-checking is automatic, so you don't have to write a ton of unit tests to get its benefit, and the error messages are usually much better. I've yet to see a dynamically typed codebase that has sufficient unit tests to replace a decent compile-time type-system. One other point that matters is time: running 20k unit and integration tests to verify the types are all correct for your 6kloc will take much longer than compiling 6kloc, and the compiler does a much better job of updating incrementally based on code changes than any unit testing framework I've used. |
|
I'll disagree here. The kind of thing you can verify at compile-time can be tested very quickly, and compilers with less useful type systems can be much faster. All in, the tests are probably faster to run.
But yeah, compilers do make a better job on incremental validation. That's probably intrinsic; validation is very likely more prone to be incremental than tests.