Jeff states In his post Respecting Abstractions, that abstraction is good and you don’t always have to know how things work under the covers.
While no abstraction is perfect– you may need to dip your toes into
layers below the Framework from time to time– arguing that you must
have detailed knowledge of the layer under the abstraction to be
competent is counterproductive. While I don’t deny that knowledge of
the layers is critical for troubleshooting, we should respect the abstractions and spend most of our efforts fixing the leaks instead of bypassing
Eric writes about the .NET Abstraction Pile
This is what programmers do. We build piles of abstractions. We
design our own abstractions and then pile them up on top of layers we got from
somebody else. Abstractions can be great. We use them because they
save us a lot of time. But abstractions can also cause lots of
Both posts refer to Joel’s essay "The Law of Leaky Abstractions".
One reason the law of leaky abstractions is problematic is that it
means that abstractions do not really simplify our lives as much as
they were meant to.