Using the right tool for the job
April 08, 2009 at 11:12 AM · Posted under Blog · Tagged with planning
The main problem I see, is that with (especially good ones) frameworks, developers are moving towards these solutions for just about anything and everything, and for most parts of the web, this is fine. However, when developers become so clung to a framework whereby they think it is the solution for everything, stumbling blocks begin to materialise and the solutions become ugly.
For the most part, frameworks provide developers with an easy interface to generate websites at breakneck speed, thereby allowing the development community to industrialize the development process (cheers Khaless for the term). What this means is that we're able to pump out solutions at speeds never thought possible, especially with frameworks such as Django, RoR, CakePHP and others. However, what does this mean for development in general?
Using heavy-handed frameworks means that one thing is generally left behind - performance. The difference in performance between a site using a framework specifically tailored for it's product, and one that uses a generic framework which is built to cater for an endless number of options for websites, can be staggering. Of course, there is a tradeoff to this performance hit - development time. Development time is generally much more expensive than hardware (unless you're serving millions of page view per day), and so therefore (depending on the project) a sound and educated decision should be made, rather than simply jumping into your favourite development framework.
One of my close colleagues uses a particular framework for just about everything, and although this framework in it's own right is a great product which allows people like myself to develop applications very quickly - it's also one of the heaviest frameworks available, meaning it's one of the slowest to serve pages. For example, even though development of a mainly static website could be easier to develop using it, what we're doing is using a full-stack solution to serve basically static pages. What does this mean? We're effectively cutting down the performance from 1000s of pages/second to approximately 50 or under.
This brings me to my original point - use the right tool for the job! Big frameworks are great for spiking out and even developing the initial stages of products, so as to get it to the public in a quick and orderly fashion. However, as the needs for the product changes and popularity grows, the framework of choice can (but not always) become a real hurdle that could have been overcome earlier in the development process if the project was given it's due respect and investigated in depth for the right technologies and solutions to be used.
Permalink