A web app consists of two layers - frontend and backend. Frontend refers to the presentational layer which is visible to the end users. It includes structure, style and behaviour of different elements on the screen. Backend, also known as server-side layer, refers to the layer which runs on the server and is not visible to the users, and holds the data required by the frontend. It includes the server-side logic of the web app, like APIs, app security, authentication and authorization.
In this blog, I am going to talk about the Backend layer. The most common languages used for building backend are:
- Python
- Java
- Rails
- PHP
- C#
- Go
- JavaScript
There are a bunch of frameworks built on the top of these languages which make backend development easier and smoother. I will be talking about some of the most popular frameworks used worldwide. So, without any delay, let's jump right into it!
Django
Source: Django Software Foundation
Django is a high-level Python web framework. It is an Model-View-Template(MVT)-based, open-source web application development framework. It was released in 2005. It comes with batteries included. Some popular websites using Django are Instagram, Mozilla, Disqus, Bitbucket, Nextdoor and Clubhouse.
Pros
- Developer-friendly
- Security built-in
- Scalable
- Versatile
Cons
- Relatively slower
- Not for smaller projects
Ruby on Rails
Source: Wikimedia Commons
Ruby on Rails, popularly called Rails, is web application framework written in Ruby programming language. It is based on Model-View-Controller(MVC)-based full-stack web development framework. It is based on the philosophy of Convention over Configuration (CoC), Don't Repeat Yourself (DRY) and the ActiveRecord pattern. Some popular websites built using Ruby on Rails are Airbnb, Bloomberg, Crunchbase, Dribbble, GitHub and Shopify.
Pros
- Rapid Development
- Security
- Easy Frontend Integration
Cons
- Lack of proper documentation
- Slow runtime speed
Laravel
Source: Laravel
Laravel is a web app framework written in PHP. It is open source and is based on Model-View-Controller (MVC) architectural pattern. It was released in 2011. Famous websites built using Laravel are Invoice Ninja, Alison, Barchart, MyRank, AlphaCoders, Laracasts and Laravel.io.
Pros
- Excellent Queue Management
- Easy Mail Integration
- Expansive Documentation
Cons
- Slow Development
- High Learning Curve
- Less community support
Express
Source: Wikimedia Commons
Express, or Express.js, is a Node.js based web framework written in JavaScript. It is the standard web framework for Node.js. Express is popularly used in JavaScript development stacks like MEAN, MERN and MEVN along with MongoDB and JavaScript frontend frameworks. Some popular websites using Express are Unsplash, MDBootstrap, Paypal, Coursera, Atlassian, Shopee and Docker Hub.
Pros
- Scalability
- Less Development time
Cons
- Performance issues
- Problems with callbacks
Spring
Source: Wikimedia Commons
Spring is a open source web application framework written in Java programming language. It is based on Model-View-Controller (MVC) architecture. It is one of the most widely used frameworks for developing web applications.
Pros
- Fast
- Flexible & Light Weight
Cons
- High Learning Curve
- Lots of XML
- Lack of documentation
ASP.NET Core
Source: Wikimedia Commons
ASP.NET is a popular, free and open-source web-development framework for building web apps on the .NET platform. It is successor to ASP.NET. It is based on Model-View-Controller (MVC) pattern. It is developed by Microsoft. Some popular websites using ASP.NET Core are C# Corner, Visual Studio Code, Namecheap and mxtoolbox.
Pros
- Fast
- Flexible
- Scalable
Cons
- High Learning Curve
- Windows-based Development Tools
Flask
Source: Wikimedia Commons
Flask is a micro web framework written in Python. It is called a micro framework because it does has in-built support for database, form validation, authentication and authorization. It is a minimalistic web framework sufficient for small and simple projects. It is the second most popular web framework in Python community after Django. Some popular apps using Flask are Pinterest and LinkedIn.
Pros
- Minimalistic
- Lightweight
- Scalable and Flexible
- Expansive Documentation
Cons
- Not suitable for large projects
- High Maintenance Costs
CakePHP
Source: CakePHP
CakePHP is a Model-View-Controller (MVC) based open source web application framework written in PHP. It uses software design patterns like ActiveRecord, Convention over Configuration (CoC), Association Data Mapping and Front Controller. Some websites using CakePHP are coconala and GoodFirms.
Pros
- Flexible
- Better Queue Support
- Easy to Learn
Cons
- Lack of Documentation
- Not suited for large websites
FastAPI
Source: Wikimedia Commons
FastAPI is a free and open source web framework, mainly used for building REST APIs, in Python. It is based on API standards like OpenAPI and JSON Schema.
Pros
- Robust & Fast
- Easy to Learn
- Standard-based
Cons
- No singleton in Dependency Injection
Fastify
Source: Fastify
Fastify is a web framework written in JavaScript. It is focused on better developer experience with the least overhead and a powerful plugin architecture. It is one of the fastest web frameworks. It is inspired by Express and Hapi.
Pros
- Performance
- Flexible
- Easy Development
Cons
- Certain third party libraries are not supported like passport.js and websocket.
Final Thoughts
There are many backend frameworks other than those mentioned above. No framework is the best. It, really, depends on the project you are working. For example, if you want to deploy a Machine Learning model, I would recommend using microframework like Flask or FastAPI for it. Likewise, if you want to build an ERP portal, then I would recommend using Django or Ruby on Rails or any other full stack framework of your choice.
Which web framework do you use? Do let me know in the comments.
Thank you for reading my blog. Hope you liked it.
Originally published on jishnupsamal.me
Top comments (3)
I know mainly python, and use Django a lot. Its really good, with an inbuilt admin panel, its really good. I also use fast api sometimes
Great to know that. I also use Django, and Flask sometimes
Hi there
Thank you for reading this blog. Hope you like it.
What web framework do you use? Let me know here.