Hacker News new | past | comments | ask | show | jobs | submit login

I've come to view layers of abstraction as creating technical rent. This is not the same as technical debt. Each new abstraction layer has a manageable initial cost, but it needs to be paid again every time a programmer revisits the code, by rebuilding the abstraction in his or her head.

The worst part is when the layer of abstraction is justified as an intervention against potential technical debt: a small cost now to avoid possible interest payments in the future. When, in reality, the small cost has to be paid over and over, even if it turns out that the requirements never change in the particular direction that the abstraction anticipates.

Occasionally the abstraction does actually provide enough benefits to outweigh its future costs, but failure to recognize the existence of those costs leads to poor decisions.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact