I first heard of it from Joel Spolsky’s blog and wikipedia also credits that article with popularizing the concept. In it’s original formulation, it was based on remote procedure calls being hidden in APIs. Because a remote computer call has all these limits of latency, packet/info loss, and possible connection loss, it is impossible to make a perfect abstraction that allows the programmer to treat the remote call as though it were local. The reality the abstraction tries to hide “leaks” in those fundamental limits.
All of contemporary global society is such an abstraction; that’s one of the principles of post-modernism. When you buy clothes online an entire invisible work force of shippers, manufacturers, resource procurerers, and more lies beind each article of fabric.
Pressure from climate change, tariffs, global war, and more are straining the foundations of society and the comfortable abstraction is starting to crack.
We need these abstractions though, we love them, and we should! The problem isn’t abstraction itself, we couldn’t survive without that. The problem is in how we build these abstractions, the problem is that we create unsustainable and irresponsible abstractions and then present them as legitimate options.
But we can’t throw out abstraction entirely. It’s like, if a person dies in a car crash, we should ask some questions, but you don’t ask “should we really have cars?”, instead you ask “should that person be driving a car? And is that car safe to drive?”
First time I’ve heard of the “Leaky Abstraction” concept, makes a lot of sense. Good metaphor too.
The Hacker News crowd uses this phrase every other sentence so it was almost humorous to see it used here. I thought this was a shitpost
Yup. Fortunately, I’ve been away from HN long enough that I didn’t immediately avoid the article, and I’m glad I didn’t.
I first heard of it from Joel Spolsky’s blog and wikipedia also credits that article with popularizing the concept. In it’s original formulation, it was based on remote procedure calls being hidden in APIs. Because a remote computer call has all these limits of latency, packet/info loss, and possible connection loss, it is impossible to make a perfect abstraction that allows the programmer to treat the remote call as though it were local. The reality the abstraction tries to hide “leaks” in those fundamental limits.
All of contemporary global society is such an abstraction; that’s one of the principles of post-modernism. When you buy clothes online an entire invisible work force of shippers, manufacturers, resource procurerers, and more lies beind each article of fabric.
Pressure from climate change, tariffs, global war, and more are straining the foundations of society and the comfortable abstraction is starting to crack.
We need these abstractions though, we love them, and we should! The problem isn’t abstraction itself, we couldn’t survive without that. The problem is in how we build these abstractions, the problem is that we create unsustainable and irresponsible abstractions and then present them as legitimate options.
But we can’t throw out abstraction entirely. It’s like, if a person dies in a car crash, we should ask some questions, but you don’t ask “should we really have cars?”, instead you ask “should that person be driving a car? And is that car safe to drive?”