The Abstraction Point
Published by Chris Coyier
Reader Joe Bob sent me a link to IxEdit to ask what I thought. I hadn't heard of it, so I checked it out. They have a six minute video you can watch which explains it pretty well. In a nutshell, it's a GUI editor for creating interactive stuff on websites. Click an element, tell it how you want it to behave. Think of it like CSS Edit for jQuery (it uses jQuery and jQuery UI to do it's thing).
My thoughts: Wow, that's extremely cool. But I'd probably never use it.
Taking it further, that code is ultimately served up from a web server. I certainly didn't write that code. That web server runs on an operating system. The operating system runs on lower level code. There is a lot of steps between that circuit board and my slideDown animation. Everybody stops along the chain somewhere.
"That's for newbies, not real developers."
"I write my code from scratch!"
"I like to know what my code is doing."
I think these are flawed statements. When we say or think these things, we are really saying "This is above my abstraction point."
Your abstraction point is the level of abstraction you feel most comfortable in getting stuff done from day to day. It might be using design view in Dreamweaver and adding interactions with IxEdit. It might be writing in assembly language. Neither one is "better" than the other. It's just where your current comfort level is, and more importantly, using the tools you need to to get the task done with reasonable speed.