TechWorkRamblings

by Mike Kalvas

202602211049 Abstractions

Abstractions are simplified views of entities or systems that omit unimportant details.1 Most importantly though, abstractions can not be lossy and still be a good abstraction. If an abstraction is lossy or inaccurate, you’re not actually abstracting the thing underneath — you’re modifying it or representing some other different thing. Abstractions that omit important details are false abstractions. Abstractions that include unimportant details increase the cognitive burden of using the abstraction as well as the coupling of the dependency on the abstraction.

Abstractions can do more harm than good. You should 202204262054 Prefer duplication over the wrong abstraction. 202204031033 Abstractions and future-coding are actively harmful when they aren’t well constructed or created for the wrong reasons.


  1. Ousterhout, J. K. (2021). A philosophy of software design (Second edition) (pp. 21). Yaknyam Press.