Today I'm recovering an old article from Joel Spolsky, the law of leaky abstractions.
Joel states:All non-trivial abstractions, to some degree, are leaky.
And continues:
He ends with a very disappointed view about this law dragging us down. Though I can understand some of the new problems we encounter when moving up the abstraction level, I absolutely believe that this benefits surpass the costs.The law of leaky abstractions means that whenever somebody comes up with a wizzy new code-generation tool that is supposed to make us all ever-so-efficient, you hear a lot of people saying "learn how to do it manually first, then use the wizzy tool to save time." Code generation tools which pretend to abstract out something, like all abstractions, leak, and the only way to deal with the leaks competently is to learn about how the abstractions work and what they are abstracting. So the abstractions save us time working, but they don't save us time learning.
And all this means that paradoxically, even as we have higher and higher level programming tools with better and better abstractions, becoming a proficient programmer is getting harder and harder.
For one thing we agree, as stated above: "learn how to do it manually first, then use the wizzy tool to save time." That seems like the smart thing to do.
No comments:
Post a Comment