Feed Sign in with OpenID OpenID

Simon Willison’s Weblog

Leaky abstractions

Joel Spolsky: The Law of Leaky Abstractions

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.

This is Leaky abstractions by Simon Willison, posted on 12th November 2002.

View blog reactions

Next: DOM inspector tutorial

Previous: Macromedia Contribute

2 comments

  1. This is all true, but it's not necessarily an argument for learning the low-level stuff first. I find that there's a lot to be said for being able to do something right away well enough to get the shape of it, and figuring out the underlying weirdness later. I do advocate awareness that there *is* underlying weirdness. I just don't go for "don't you dare do this until you understand every detail of how it works."

    Dorothea Salo - 12th November 2002 15:14 - #

  2. I'm inclined to agree. C is a tough language to learn - it may teach you exactly what is going on but it could also put people off programming for life :) That said, having seen how much people struggle with it on my course I can't say I like Java as a first language either. I would prefer something like Python which teaches programming principles in an ultra-friendly environment (you can't get much friendler than the interactive prompt) but can still be used for "real" programs. 6 months of that should nicely prepare people for the jump to C, Java or preferably both.

    Simon Willison - 12th November 2002 19:01 - #

Comments are closed.

Previously hosted at http://simon.incutio.com/archive/2002/11/12/leakyAbstractions

A django site