8 May 2006
Specifically, Eric Meyer sounded particularly flustered (and a little disturbed) by the all the hoopla.
All these frameworks’ proponents say “Just write in this totally simple and obvious way and the messy details will be magically handled for you!” but that’s just not how it works. You have to write in a very specific and unintuitive way, and unless you know specific magic words and what roles they can take then nothing will happen except the return of an error message. This is no different than any computer language, of course. What I think bothers me is that the cheerleaders always seem to believe, or at least pretend, otherwise.
Setting aside the fact that I’ve never heard any (educated) proponent of any actual framework say that, I think he’s responding in aggregate to the general excitement, which is understandably overwhelming and off-putting from the outside.
In essence, I think there are two separate groups of people getting excited about frameworks right now.
One is actual programmers, who are thrilled to finally get past all the rote, repetetive parts of programming and get on to actually doing something interesting with their code sooner in their projects. In that way, frameworks are like scientific calculators—it’s best to use them after you know how to do calculus.
The second group is designers and non-programmers, who are excited about frameworks because they can use them to build their own simple apps without training for a new career or asking a programmer to do it for them.
These two groups are very different; they think about things in different ways and they have different priorities. They’re both excited about the same thing, but for very different reasons. No wonder programmers don’t “get” why the designers are so excited, and vice versa.
I posted a response on Eric’s site, but I’ll include it here as well, because I think it’s relevant.
I think part of the reason you get so much of this “cheerleading” from non-programmers about frameworks is because every designer secretly wants to be a programmer.
Web designers have been using these prepackaged tools for years and hacking some template code here or copying and pasting some PHP there and praying it works. Every now and then we start to think “I could do this”, but we dive in and try to “learn programming” and it just doesn’t work, because we’re going at it the wrong way and it doesn’t make sense to our brains.
Frameworks are like a programming erector set for designers. The barriers to entry and the cost of failure are both low. If you can build what you want to build with the pieces in the box, you’re golden.
The “oh shit” moment for designers with frameworks is realizing that we can actually build something that doesn’t fall apart AND doesn’t feel like matchsticks and airplane glue duct-taped to the top of a Hot Wheels car.
We open up the box, stick some pieces together and go “Wow this is AWESOME!” A construction engineer would look at what we made and think it was ridiculously childish and limited. “You’ll never build a skyscraper with that,” they’d say.
But that’s the point. We never wanted to build a skyscraper, and we never wanted to be engineers. We don’t know anything about laying foundations, or construction codes, or structural integrity, and we don’t want to. We love frameworks because we don’t have to.
Frameworks are nice for real programmers because they cut out a lot of the routine, boring or complicated parts of programming that they don’t want to deal with. As a side affect, they’re really appealing to designers because they cut out a lot of the parts of programming that they don’t know HOW to deal with.
So that’s why we get so damn excited. We’ve got a new toy to play with.
Surely Eric remembers the early days of the standards movement, when there was this huge surge of excitement about XHTML and CSS and valid markup and semantics. There was a core of validity to the excitement, and there were a lot of people (including Eric) who really understood the implications of it. But most of it was just excitement about excitement, over the top zealotry about the next cool thing. After a while, it was just annoying.
But look where it got us. It was that mass excitement—largely from people who didn’t understand what there really was to be excited about, to much head-shaking from people who did—that pushed standards into the mainstream. They’re not the next cool thing now, they’re an assumption, a starting point.
If you think about frameworks as collections of best practices (which the best aim to be) instead of a magic bullet (which none of them are), there’s a good argument to be made that we’ll say the same thing about frameworks in a few years.
More on this subject tomorrow.