“You know,” I said to the guys at the car lot, “I just don’t understand the deal with this car here.”
“Oh, it’s absolutely worth it!” they exclaimed. For the next half-hour, they extolled the power of the engine, the smooth handling, the tight cornering, the rakish styling, and all manner of other wonderful features of the car.
“Wow,” I said. “Thanks! But it turns out that what I didn’t understand was how that steering wheel thingy and the foot pedals worked.”
That, in a nutshell, is what happened with the frameworks post. Predictably, it drew a large number of detractors and supporters of various frameworks, and of the whole concept of frameworks. Since I focused a good deal on how the tutorials and other materials (yes, including the effin’ manuals) confused me, it should have been no surprise that there’d be a whole lot of debate about the “hype” surrounding frameworks.
But here’s the thing: I didn’t get what frameworks really were. I wasn’t complaining about the hype. I was complaining about my lack of understanding, and to a large degree how little help I’d found in correcting that problem. This is, as it turns out, because my problem was such an elementary misconception that no framework documentarian would think to address it.
How elementary? My perception was that frameworks were ways of putting a simpler (or perhaps just different) syntactical front end on a language. My belief about Ruby on Rails, for example, was that the Rails part was almost like a new interpreter that hid Ruby from the programmer. I didn’t grasp that it was Ruby. I thought it was a simplified or more elegant or somehow different language that generated actual Ruby on the back end, the same way Ruby or any other language interpreter eventually generates assembly language (or, if you like, a lot of ones and zeroes).
So that was the “very basic, fundamental, obvious thing” I was missing. Hard to get much more basic than that, really. I’m entirely not sure how I formed that perception, but there you have it.
My perception now, as I explained in a comment to my own post, is that frameworks are:
A framework… can be thought of as a collection of libraries, though in actuality a good framework is both that and a formalization of best practices, condensed into an efficient syntax and approach.
That may not be 100% accurate, but it’s a hell of a lot closer than before. As a result, I feel like I have a much better grasp on the situation and no real reason to worry, so thanks to everyone who commented.
Oh, and I swear that Mr. Snook and I had no idea we’d be publishing on the same topic at nearly the same time. At least, I had no idea. If he did, then I’d like to talk to either his fortune teller or his server access logs.