I was recently accused of over-implementing my projects at work. How audacious! How un-Web 2.0! How true. The fact is, over-implementation is one of the big downsides to Web 2.0. We have more frameworks than ever, for example:
- CSS: YAML, BlueprintCSS, and YUI
- Javascript: jQuery, Prototype, MooTools
- PHP: CakePHP, Zend, PHPDevShell
There is a ton of functionality packed into each of these frameworks—most of which are geared toward speeding up development. However, with all this added functionality has come the tendency to overbuild everything.
Gone are the days of single-function onClick
validation scripts. Now you must load an entire library, call anonymous functions, focus on reusablity. Before you know it, what could have been handled in 3 lines is now p,a,c,k,e,d
into a 30kb JavaScript file that includes plus an extra CSS file as a dependency and 275kb of PNGs.
I find it ironic.
Web 2.0 was founded on simple, elegant design and code. It was feature shy. I bought into it wholesale and went along for the ride and now I am using it to over-implement my projects.
The solution comes (unsurprisingly) from 37Signals who have managed to stay the course all these years. They are still preaching the same message they have been preaching since day one: Less is more.
- Never implement more than you need to
- Never plan further than you can see
- Don’t be afraid of imaginary work
Don’t get me wrong—I think frameworks are extremely useful. However, next time I sit down to write some sweet app I will be thinking a little harder about whether I can get by without one.