logoalt Hacker News

titzeryesterday at 9:05 PM0 repliesview on HN

In a well-designed (or "proper") abstraction, we can deal with it in terms of its public interface. Two things that break abstractions are bugs and performance.

If you have either of those, then abstractions can be worse.

Another thing that is bad is the wrong abstractions, or abstraction inversion (https://en.wikipedia.org/wiki/Abstraction_inversion), where a layered system hides abstractions at the bottom from layers at the top, that top layers would nevertheless like to use, and reimplement, poorly. This happens surprisingly often.

But overall, I generally think that well-designed and factored abstractions are better than no abstractions at all.