<i>Small units of code are good. The smaller it is, the easier it is to understand. It’s harder to screw it up — and I screw stuff up a lot, so limiting that is really important. So, I strive to build small modules of code with a single purpose, or at most a few closely-related purposes. They should be self-contained pieces that solve individual problems. These pieces then work together to solve larger, more complex problems.</i><p>To me the article's perspective misses the point. The language itself is just a vehicle for encapsulating data and logic, etc. for some purpose. A framework adds levels of tools and abstractions to "take care" of common situations. The small units can be modules that one employs within a framework, such as an authentication mechanism within a web app. I feel just the opposite of the author: the language is only as useful as the tools available to take superfluous overhead of shared tasks off my hands. The excessive fragmentation of the PHP framework scene is the main reason driving me toward Rails, and thus Ruby. I don't have any practical arguments against PHP and for Ruby, but I'm dismayed that I can't find a current midstream PHP framework like symfony1 was, with great community support, that's easy enough to adapt to a wide variety of projects. Looking into the Rails community (I still haven't rolled a project), I feel like Rails accomplishes that.
I definitely agree with most points the author makes. One quote that comes to mine, "The best programmers understand completely what they are doing". I paraphrased. It becomes a whole other issue as well when you get past development and go into maintenance mode. What if a django dev gets a bug that cannot be fixed in the framework?<p>This is one reason why I am reluctant to introduce SASS or LESS to our dev staff because most still do not understand the principles of CSS.
The problem is that as more and more frameworks are used and required for employment (my current job requires one), there will be more and more developers that just mash frameworks together and don't understand the inner workings.<p>I'm glad I grew up in a time with no frameworks.