There are so many frameworks on the market : Yii, Zend, Symfony, Angular JS, Codelgniter, Ruby on rails, Cakephp…
But what exactly is a framework? What does it do? Why should you use it for your project? What are the best ones and how to choose them ?
What is a framework ?
Basically, a framework is a toolkit and/or a library for developers. The framework gives access to pieces of code developers need to build features for an application . Such features are: multilingualism, security management, modularity…
The framework not only provides a skeleton, a structure that needs to be customised to the needs of the client, but it also encompass the use of conventions and best practice in terms of development and functionality.
A web application project often needs the intervention of several frameworks. It is due to the fact that a web app always relies on a stack of technologies. Here is, at least, 3 of them that we think essential :
- Backend frameworks allow communication between the app and the information storage: users, security, role management, sessions, RDBMS, file system… (e.g., Yii2.0, Codeigniter, Symfony)
- Front-end framework is useful to build the app’s user interface (e.g., AngularJS, React, Backbone.js)
- CSS frameworks define the app’s look. At the very least, a grid framework is mandatory to us (e.g., Bootstrap, Foundation, Semantic UI, Ionic)
Why should you use one or several frameworks for your project?
Reduce time and costs
Using frameworks reduces time-consuming coding for the base features of an application, consequently, developers will focus more on the core business features of the app and the client will pay less !
Reduce code base to be maintained
The application becomes also much more maintainable as a lot of code is assumed by the framework.
Apply conventions, best practice and common design patterns
Programming is like going to Rome : many roads lead to the same goal. But what happens if your developer lets you down while your project is still ongoing? The next one has to dive deeply into the previous one’s work in order to understand what he did and how. That means hours of work without writing one single line of code !
Good frameworks (should) provide a solution to that problem: they share design patterns and implement best practice, conventions and standards of the industry/market.
By design patterns, you have to understand reusable standardised programming methods.
By using frameworks, thus design patterns, the newcomer coder will be able to code more quickly/efficiently.
Benefits from a community
Other great thing about frameworks is users’ communities. Every framework has its community exchanging information about things as bug resolution processes, hints and tips. That means less work hours for the developer and the client.
What are the best frameworks?
Well, this is a highly subjective question. There are so many on the market! At Fifteenpeas, we focus on those that meet the criteria that are crucial to our clients and that we successfully tested over time.
Here are some of the criteria we used to make our choice :
- Framework maturity : just as wine, best frameworks are not the youngest ones. A mature framework had the time to develop efficient support, gather documentation and a huge user community that can be really helpful in case of problem. Its longevity is also the result of the market acceptance.
- Speed of implementation : the time between the framework’s installation and the moment when the framework is operational.
- Learning curve : the time needed to learn how the framework works and to master it
- Design patterns, best practice, and respect for conventions : does the framework respect design patterns and best practices in terms of development?
- Evolution : mature is not a synonym for fossilized. The framework has to evolve with the market in order to integrate brand new technologies and features
- Ability to support the charge : the framework’s capacity to adapt to the increasing number of users
And the winners are…
Yii is for us the best backend framework : it is the quickest and offers a really clean structure. Born in 2009, Yii uses Php language, one of the most widely used programming language on the Web (e.g., Facebook, WordPress, Joomla!). The last version released is Yii 2.0.4.
The following graphic presents a comparison between Yii and other frameworks’ performances (from www.yii.com) :
Yii is often mentioned as one of the best frameworks by several websites :
It is necessary to note that AngularJS goes usually with another development stack. But using Yii2.0 through API resulted in an acceptable solution. The development stack choice depends greatly on the complexity/scale of the application. (ok, I know this is arguable but we stand on that point of view)
For us, using a framework in a project development is mandatory : there are so many advantages, for clients and coders. That, all in all, increases the ease of the application lifecycle and saves a lot of time, hence, money.