I ain't mad, I'm just sayin'. I don't have a lot of time for frameworks. Ruby on Rails, CakePHP, Symphony, etc, aren't worth it. I understand and appreciate the motivation behind them -- DRY, Agile, best practices, standards, etc -- but none of those principles mean you need to use a framework. In fact, I've often found that people who rely on frameworks (especially people who learn Rails and think they're a developer) don't actually understand any of the principles they're rallying around.

Yeah, don't repeat yourself is a great principle. But for someone learning to code, sometimes repeating yourself is the way to get the job done. What I don't appreciate about most frameworks is that they are not built for the learner: they're built for the person who's in a rush. I've dealt with so much PHP, I've begun building my own frameworks for my work, because I know what works for me. But that's earned. I don't use them because I'm in a rush, I use them because I can personally vouch that they work. Because I built it. The whole stack belongs to me.

This boils down to a simple point: I only respect people who are interested in owning as much of their process as they can. I respect people who don't leave key pieces of their development strategy to ambiguity. A good, seasoned developer should be able to pull apart any component of their application and explain it. Too often coders run into a problem with ActiveRecord, and may have an understanding of how models work, but have no clue how Ruby works. How does that make sense? That's like a car mechanic who knows how to install an engine but can't figure out the spark plugs. I'm not saying you need to go all the way down to the Assembly language below your C that's below your PHP, but you should want to if you need to.

I get pretty sick of seeing new flashy frameworks for Python or Ruby or Node.js (or worse, for Scala or Go or whatever) popping up in my news feeds. I usually look at them and find one little feature that's actually interesting, innovative, or otherwise deserves attention. I often finish that line of inquiry wondering why the developer didn't just release that little piece as a code snippet. For example, jQuery. The vast, vast majority of people use it for the simplest functions: manipulating objects with CSS selectors, or AJAX calls. They include 93kb of (minified) javascript code on every page for that! That's like throwing a piano at a squirrel. Sometimes I feel like people have forgotten that Javascript has built-in DOM manipulation.

Bottom line: like most things that are sexy in web development right now, the proliferation of development frameworks only leads to complacency, missed opportunities for learning, and the lack of focus. We can do better.