3 ms·
The effort to fix a defect is proportional to the time between introduction of a defect and it's discovery. This is a basic intuition behind all good practices
by thesz 9y ago
The effort to fix a defect is proportional to the time between introduction of a defect and it's discovery.
This is a basic intuition behind all good practices, including CI, QA, etc.
Types allow one to discover program defects (even generalized ones, when using some of the programming languages) in (almost) shortest possible amount of time.
Types also allows one to constrain effects of various kind (again, use good language for this), which constraintment can make code simpler, safer and, in the end, more performant.
- millstone 9y agoAlso, retaining dynamic types at runtime enables you to find type errors that the static type system could not discover, or that were worked around. Language implementations that discard dynamic types make it harder to find defects.
- thesz 9y agoAlgebraic data types allow you to get any amount of dynamism you would needed. Have you familiarized yourself with Haskell?