Frameworks – the bane of some developers, salvation for others. Frameworks play a very important role in modern web development. But with their popularity comes the most important question. Which framework is the best?
What is a framework?
Let’s back up a second (as per usual) and check out what a framework is in the developer context.
A web framework (WF) or web application framework (WAF) is a software framework that is designed to support the development of web applications including web services, web resources and web APIs. Web frameworks aim to alleviate the overhead associated with common activities performed in web development. For example, many web frameworks provide libraries for database access, templating frameworks and session management, and they often promote code reuse. Though they often target development of dynamic websites they are also applicable to static websites.” – Wikipedia.org
So, what’s the problem?
Well, there’s a bit of a glut on the market for these things. From Zend to Symfony, Laravel, CakePHP, CodeIgnitor, Kohana, Yii… I could probably go on for an entire paragraph just naming frameworks but I won’t. There are thus two problems that this presents.
First, there are a lot of them. Enough that the seven listed above are just the major players in the market.
And second, each one has their own disciples proclaiming the messiah of the development community. Each preaching the gospel of whichever they prefer.
And so, we see a lot of articles proclaiming why “X” is the best framework ever. I read a post on a LinkedIn group just this week about why Laravel is the best framework. This was followed by the usual comments arguing about the validity of the post, both for and against and making the same point that I’m attempting to make in this post.
And what is your point?
My point is that no one framework is ever better than another. There are always tradeoffs to make. For example, one may have a better database system than another but a worse template system. Or vice versa. One may handle authentication in a more secure manner or allow easy connections to external API’s.
You see, the best tool (and it is just a tool) for the job is the one that gets the job done in a timely and efficient manner - and that includes knowing how to use it. And I don’t particularly care for partisan discussions on “the best” because there’s a difference between “the best” and “popular”.
Now back to work…