All abstractions leaky are leaky. All. But one?
There's been a lot of talking about leaky abstractions
lately. An abstraction is leaky by definition: it is
something simple that stands for something more complex
(we'll see later on that this is not entirely true in the
fascinating world of physics).
In particular,
ASP.NET has been cited some time ago as a leaky
abstraction.
These arguments make sense until a certain point. And this
point is determined by how much time will the abstraction
gain you? The answer with
ASP.NET
is a lot of time as anyone who's developped web applications
with the technology knows.
So the abstraction may be leaky, but it doesn't matter: the
really important thing is that it's useful.
Joel's point in
his paper
was really to explain that at some point you'll need to
learn what the abstraction is really standing for because as
you use the abstraction in more and more specialized and
complex cases, the abstraction will leak more and more.
That's true, and the value of an abstraction can more or
less be determined by the amount of time you can work with
it without having to worry about the complexity that it
stands for. Depending on what kind of application you
develop, this time can be pretty long with
ASP.NET.
Now, what about physics? Well, in physics, there are leaky
abstractions, like for example thermodynamics, which nicely
reduce the complexity of the chaotic microscopic kinetic
energy of molecules to very few variables like pression,
temperature or volume. And the abstraction leaks if you
start looking at too small a scale, or at a system outside
of equilibrium. Still, it's one of the most useful
abstractions ever devised: it basically enabled the
industrial revolution.
But there are more curious abstractions in physics. If we
try to find the ultimate laws of nature, it seems like the
closer we look, the simpler the world becomes. In other
words, the layers of abstractions that we see in nature seem
to become simpler as we go more fundamental. The less
abstract a theory, the more leaky it seems, actually.
Could it be that the universe is the ultimate abstraction,
the only one that's not leaky?
Well, the point is, the universe is no abstraction, it's
reality. But if we're lucky and smart enough, we may someday
find the only non-leaky abstraction, the one that maps one
to one with the universe itself.