Developers need a backend framework to create an application with which user can interact and perform some actions (which result in responses). In this context, backend is defined as the subordinate processor or program (not directly accessible by users), which performs a specialized function on behalf of a main processor or software system.
You need a webserver to run these scripts. The web server can be your development machine (localhost), a dedicated or cloud hosting service. All the scripts are located on the server. When a user interacts with these scripts, responses are generated and sent to the user.
You would probably seen lot’s of comics around the web that discuss the differences between backend and frontend.
The above comic explains the differences between frontend and backend. However, I think the difference is simple. The backend is the compilation of tools, scripts, API’s and external libraries that is invisible to the users. All the users see is the frontend that interfaces with the backend and presents the results of the processing through the UI of the frontend.
To understand the architecture of the backend of any dynamic application, check out this image:
The backend or the script-side of a dynamic application that works on request-response architecture comprises of API’s, databases, frameworks, service workers and an operating system. These days, developers have access to services such as Docker, Vagrant and BAAS that provide sophisticated systems to automatically deploy the backend scripts to any server or cloud.
Given the importance of backend frameworks, it is no surprise that developers could choose from a range of frameworks. GitHub and similar platforms have a number of frameworks that add value to backend development.
In the following list, I will cover the most popular backend frameworks.
PHP is perhaps the most popular scripting language for web projects. It has been around for almost three decades now and has several important backend frameworks in its inventory.
Symfony is a set of PHP components, a web application framework, a philosophy, and a community, all working together in harmony. Symfony provides a standard foundation on which developers could build powerful PHP applications that are strengthen by the standalone Symfony components.
The framework has a very active community of developers and enthusiasts who maintain and contribute to the framework. The bundle architecture of the framework provides plug-n-play capability for all external libraries. The latest version, Symfony 4 removes many dependencies and is the most lightweight version to date.
Installs: 28 701 006
Dependents: 4 159
Stars: 16 490
Watchers: 1 265
Forks: 5 982
Open Issues: 852
Laravel is a relatively new framework that simplifies the production process and takes much of the pain out of web app project. It is well known for clean and elegant PHP code and simplifying tasks such as authentication, routing, containerization and queues. Laravel has its own migration system for manipulating database queries. This framework is best suited for developing small to large applications with complex backend requirements.
Installs: 6 901 043
Stars: 38 490
Watchers: 4 314
Forks: 12 454
Zend is the popular choice for developing large enterprise level applications such as CRM and financial systems. Developers get the benefit of a high performing MVC architecture, robust codebase combined with extensible components. Zend supports full OOP concepts and the developers could create and deploy classes as and when needed. Like Symfony, Zend also has a long list of components for every requirements of the projects.
Installs: 3 928 024
Dependents: 1 474
Stars: 5 596
Forks: 3 029
Open Issues: 25
CodeIgniter is an application development framework — a toolkit for PHP website development projects. The goal is to make sure that developers do not need to write code from scratch. This is made possible the rich set of libraries for common tasks and a simple interface (with very logical structure) for accessing these libraries. There are no straight rules so the developers are free to experiment with the framework components to discover what works for their projects. Using CodeIgniter, developers can creatively focus on the project and minimize the code writing requirements for a given task.
Installs: 229 003
Stars: 15 649
Watchers: 1 729
Forks: 7 253
Open Issues: 69
Yii is the fast and secure PHP framework, ideal for high performance web 2.0 applications. It comes with rich features including MVC, DAO/ActiveRecord, caching, authentication and role-based access control, scaffolding, testing. Yii ensures clean and reusable code that follows MVC pattern and a clear separation of logic and presentation.
Installs: 1 268 218
Stars: 4 842
Forks: 2 131
Open Issues: 7
Honorable mentions include CakePHP, Slim, FuelPHP, Phalcon. These frameworks are often used to develop small scale applications’ backend.
Python is an interpreted high level language built for general purpose programming. However, the language is better known for data science projects and machine learning applications. The elegant syntax allows developers to express more in fewer lines of codes.
According to the Stack Overflow developers survey, Python has now become more popular than PHP with a skyrocketing adoption rate. Software developers are now able to analyze and create the complex data systems and designs using Python. In addition, Python based frameworks such as Django and Flask streamline the process of developing web apps.
When you are finished writing an application’s backend, the next challenge is to find the right hosting solution. I always recommend either dedicated or VPS servers. You can also use container solutions like Docker and create the automated deployment recipes. DigitalOcean, Linode, AWS, Google Cloud and Azure are also great choices. However, if you think server management is too much of a hassle, opt for PAAS solutions like Cloudways PHP web hosting.
Backend development is not easy task. You need to create secure (non-vulnerable) and robust architectures with no compromises on the performance. To add diverse functionality, you need to integrate API’s and external scripts. All this should be done while observing the best development and code writing practices. If this is something that interest you, here is detailed roadmap to become a rockstar backend developer.
P.S.: please Retweet if you liked this article, and don’t hesitate to follow me on Twitter, and/or here on Medium. ;-) Thanks for reading.