It seems that every other week there is a new framework coming out that a web developer could use in several aspects of their job. Some of them are pretty ubiquitous (jQuery, CakePHP) while others are less well known, FuelPHP or Blueprint spring to mind.
Before I get into the issues with so many frameworks and my solutions to them, let me say right now that I love frameworks, I really think that for 90% of the tasks most web development agencies have to fulfil, there is scope for improving the process by inclusion of frameworks. But they do come with certain downsides.
- Any issues with the underlying framework will weaken your final application.
- A new breed of developers who learn frameworks, not languages.
- Keeping the framework up-to-date without breaking your own implementation of it.
- Finding the time to evaluate and learn new frameworks (and even new releases in current frameworks)
What I think about each new framework that comes out
Each new framework is normally built to address an issue the developer(s) had with existing frameworks, so the question always in my mind is “Is this a genuine improvement on what it considers it predecessors or is this just more of the same.”
Of course the best way to answer this would be to download it and play with it, but in order to do that you need a project to play with. This is where you hit a bit of a conundrum – how do you know if the project is a good fit for the framework? I mean there isn’t one single framework out there that is 100% the correct fit for every project (just like there isn’t one perfect language or one perfect server stack).
You could rely on community input, if your peers are all suggesting that framework-x is the best way to tackle issue-y then maybe next time you hit issue-y you could try it out. But then you hit another issue – when you work in a team, does the entire team need to learn the framework so the organisation as a whole can support it, or is it enough to have just one or two people knowledgeable of it?
Do all developers need to learn every framework?
Let’s assume we have decided to plough on and look at a new framework, should all developers need to learn it in order for it to be adopted within the company?
In my opinion, no, this isn’t a requirement. What I think is required of developers working in any framework however is a firm understanding of the language it sits on top of. If the developer has a solid knowledge of the core language then there is nothing they shouldn’t be able to achieve with the framework. (This isn’t to say that we should go in and bend the framework to our will, we should try and work with it and use its features where appropriate).
Specifically looking at backend frameworks I think a solid knowledge of the language and the MVC development pattern is enough to get you by 90% of them.
With front end frameworks like the CSS and JavaScript ones what you would need to know really does depend on the framework.
Some JavaScript frameworks are very much designed to follow event driven development, others more for pure DOM manipulation with events as an afterthought. Both of these things though should be in any JavaScript developers vocabulary.
CSS frameworks normally allow you to get grid based systems and wireframes mocked up very quickly and whilst I don’t think a knowledge of design is needed it would certainly help, and to be able to visualise what the CSS is doing would be a big bonus. I don’t have that much experience with CSS frameworks because any I have seen I haven’t liked how they name their classes.
I am ignoring node.js and its counterparts because I think it is a different kettle of fish altogether.
Keeping up to date with new frameworks?
OK so let’s assume we have the required skill sets and want to move ahead and see what frameworks are out there and are in development, what is the best way to do this?
Here are some of the resources I use;
- Friends / Colleagues / Peers
- Online Social Networks
- Industry Blogs
I think a combination of those three gives you a fairly large radar for seeing what is out there. The industry blogs might carry a bit of bias with them but your friends and social networks should give you a fairly good indication of what projects are suited to a particular framework and what would be better left alone.
Then, in the words of Gavin Strange the only thing left to do is “Build, Break, Do, Make”.
Getting help
There is a fine line when trying out a new framework between the framework just not fitting the problem and your lack of knowledge with the framework.
I would suggest the first thing you need to do is make sure you have read all the relevant documentation, some frameworks are better at documenting than others (and this should be something you consider when decided upon using a new one).
The next step would be to ask localised communities, most frameworks have some sort of support network to accompany them.
Finally you could ask the internet at large for solutions to your problems.
Wrapping up
Hopefully you have found this article useful and it has given you some food for thought the next time you hear of a new framework and are considering trying it out. Comments welcome!

