4 ms·
I agree all engineering is abstractions. Every function, data-structure, program. >> [People] talk about a particular abstraction being "a leaky abstraction".
by alexandercrohde 7y ago
I agree all engineering is abstractions. Every function, data-structure, program.
>> [People] talk about a particular abstraction being "a leaky abstraction". Implying some abstractions are, some aren't.
There are degrees of leakiness though, which matter a great deal. The concept of a "file" is an abstraction, instead we could all write direct to disk sectors. But its value outweighs the leak associated with it.
Other abstractions aren't always so useful, sometimes a coworker makes a class that's riddled with exceptions and caveats.
- jrochkind1 7y agoSome abstractions are definitely more useful/successful/robust than others. (I think I want to say usually for a particular context, not as a universal/existential thing. Sometimes that context grows to be everyone's... we all use a 'file' abstraction because it was so useful the entire field adopted it, and stopped considering alternative abstractions, and everyone takes as a starting assumption to work within the context where 'file' is useful (except in extreme edge cases maybe) -- for better or worse.) Deciding which is which, whether a particular abstraction's value outweighs the "leak" in particular contexts or in "general" -- well, that's what endless internet debate is made of. It's usually not clear as a consensus until quite some time has passed (and even then heretics can challenge it). I agree it's the right question, but it can't be answered simply by saying "leaky abstraction".