4 ms·
> That you introduce more coupling is a tradeoff. That the program (sometimes) gets harder to change is a tradeoff. You don't introduce more coupling, you docu
by hither_shores 4y ago
> That you introduce more coupling is a tradeoff. That the program (sometimes) gets harder to change is a tradeoff.
You don't introduce more coupling, you document the coupling that already exists. If your program is hard to change with types, it would be hard to change without types - but easier to change incorrectly.
> That is becomes easier to write large, messy programs because programmers feel more safe in the future to refactor, is a tradeoff
Sure, I guess this is true in principle - but you could say the same about IDEs, or version control, or grep. The effect size is small.
- germanjoey 4y ago> You don't introduce more coupling, you don't the coupling that already exists. This is true at the code level. But at the system-design level, this documentation is the extra coupling. I feel like it's important to understand this. I agree with the original commenter; in engineering, nothing is truly free. In many cases, this extra coupling helps keep a system strong and stable, like extra nails holding planks of wood together. In other cases, you may find that part of a system's spec actually missed the mark and now needs to be ripped up and redone. That extra coupling might now work against you! Again, that doesn't mean that it wasn't worth having it. It is just important to understand tradeoffs in engineering.