Thoughts on frameworks

I really wanted to sit this one out, and not get drawn into all the hoopla around frameworks. I saw a similar surge of arguments flying back and forth over un-design, but to me that conversation was just so ridiculous it wasn't worth humoring with an answer. However, the whole framework debate is quite balanced, and one in which I can understand both sides. In case you're curious, it all seems to have started because of Jeff Croft, so blame him.

So far, some pretty heavy-hitters have chimed in to voice their opinions. Initially, it was my friend Jonathan Snook sharing his thoughts on why frameworks suck. Then, the revered baron of CSS Eric Meyer shared about his confusion on the appeal Rails and Django. Without wanting to over-simplify what they said, the basic premise of both their arguments is that there is a crufty layer of obscurity between the human and the underlying code.

Essentially, according to them, any programmer worth his (or her) salt should be at least slightly suspicious of anything that removes control over the minutia and replaces it with automation. They say such automation assumes to much, and takes the programmer out of the equation, replacing it with too much guesswork and obscurity. I agree with this viewpoint, and was myself a bit skeptical about Rails at first, because I longed to know what was going on with the foundation of Ruby too. Really though, being a good programmer means choosing the best method to accomplish a particular task.

To use an analogy, we could all turn up our noses at abstraction, quit using GUI based operating systems, and just type everything directly into a command line. This would definitely prove intimate knowledge of UNIX or DOS, but would not be incredibly productive. Plus, are not operating systems, even command-line driven ones, just an unnecessary layer of abstraction from our binary data? Shoot, forget that! What we really need to do is get back to the primal, binary ones and zeroes that got us here.

Okay, enough ranting and back to the point. Wilson Miner had a few things to say, which provided some counter-balance with other school of thought:

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.

Mr. Meyer, we know from the link in your footer that you use WordPress. Jonathan, you're still running Movable Type, that is unless you've secretly finished work on the elusive Gain CMS (jab jab). Are not blogging tools frameworks for content, in and of themselves? WordPress and Movable Type are both heralded as a "publishing platform," and many programmers have taken to it, despite their undoubted capability to create a unique system.

If anyone has room to talk about not using any such platform, I would say it is Andy Rutledge, who uses PHP includes to power his site, and hand-writes his own XML for the RSS feed. He is a self-proclaimed non-programmer, emphasizing design as his primary focal point. Ryan Brill would be a good example of one who hand-rolled his own PHP-based CMS. Still, PHP has a rich history grown from Perl, so perhaps that's too much of an abstraction.

My point here is not to rip on either Jonathan or Eric, owing much of what I know to the tutorials and books that have been written by each of them respectively. Plus, I have met Jonathan in person and have no doubt he could squash me like a bug at next year's SXSW. What I am trying to say is probably best summed up in the famous words of Bernard of Chartres.

We are like dwarfs standing upon the shoulders of giants, and so able to see more and see farther than the ancients.

Let us not forget that none of us would not be where we are, if not for the people who have gone before us and paved the way. If frameworks are not your thing, hand-code that puppy. If they help you get your job done more quickly and efficiently, while not sacrificing on quality, then more power to you. Now, excuse me while I duck and cover from the inevitable barrage that will ensue for questionting the judgment of Snook + Meyer in one post.