▲ | senorrib 6 days ago | ||||||||||||||||
It works both ways. General constructs tend to become overly abstract and you end up with sneaky errors in different places due to a minor change to an abstraction. Like the old adage, this is just a matter of preference. Good software engineering requires, first and foremost, great discipline, regardless of the path or tool you choose. | |||||||||||||||||
▲ | gettingoverit 6 days ago | parent [-] | ||||||||||||||||
If there are errors in implementation of general constructs, they tend to be visible at their every use, and get rapidly fixed. Some general constructs are better than the others, because they have an algebraic theory behind them, and sometimes that theory was already researched for a few hundred years. For example, product/coproduct types mentioned in the article are quite close to addition and multiplication that we've all learned in school, and obey the same laws. So there are several levels where the choice of ad-hoc constructs is wrong, and in the end the only valid reason to choose them is time constraints. If they had 24 years to figure out how to do it properly, but they didn't, the technology is just dead. | |||||||||||||||||
|