Modern web applications are becoming increasingly advanced, feature-rich, and interactive, often rivaling native apps. However, developing such impressive web applications requires powerful tools and technologies. Fortunately, web developers have access to various tools that simplify and speed up the development process, such as web frameworks.
Web frameworks, both front-end and back-end, help developers eliminate boilerplate code, add new features with ease, and build web apps more efficiently. But with so many web frameworks available, choosing the right one can be challenging.
While many blogs focus on the most popular web frameworks (like AngularJS, Joomla, CakePHP, React, Laravel, Django, Symfony), this blog highlights the web frameworks you should avoid. Here, we’ll discuss the least-performing web frameworks based on metrics like performance, average latency, and lines of code.
Front-End Web Frameworks
Front-end is the part of a web application that the clients or users see or interact with. It's the user interface of a web application. And front-end web frameworks are the functions that help improve the UI and, eventually, the UX of a web app. They have nothing to do with the application's back-end or server-side part.
For comparing lowest performing front-end frameworks, we'll consider the results of the comparison done by DailyJS using real-world apps and the following metrics:
- Performance: The performance score is taken from the Lighthouse Audit, which is between 0 – 100, 0 being the lowest and 100 being the highest. The higher the Lighthouse score higher the performance, and vice versa. You can check out the Lighthouse Scoring guide to learn more about how Lighthouse scoring works.
- Lines of Code: Here, we're considering the lines of code in the source folder of every framework’s repo. The lines of code tell us how much code is required to build a real-world application using a particular framework. In this case, the lower, the better.
NgRx
NgRx is a front-end framework that helps create reactive apps in Angular. Primarily, NgRx is known for enforcing the unidirectional data flow like in Redux and making state management easy. Developers can represent states, and monitor them as they change, update, and retrieve state values.
- Lighthouse Score (performance): 39
- Lines of Code: 4210
While NgRx may sound useful, its performance is a big concern. Also, the lines of code required for writing a real-world application are insanely high. So, before using it for web development, know that there would be a lot of boilerplate code to deal with.
Keechma
Written in ClojureScript, Keechma is a relatively new micro-framework that is similar to re-frame, probably better. Using Keechma, web developers can create reusable UI components, which helps shorten the overall development time.
- Lighthouse Score (performance): 60
- Lines of Code: 1270
From the lines of code required to build a real-world application, it's clear that boilerplate code won't be a problem with Keechma. However, performance could be. The Lighthouse score is just 60, which is the second worst on our list.
Redux
Redux is yet another front-end framework that's most commonly used with Angular and React. The purpose of Redux is to help developers effectively manage web apps' state in one place. This further allows developers to keep the changes more traceable and predictable.
- Lighthouse Score (performance): 67
- Lines of Code: 2050
When it comes to writing a real-world application, there won't be much boilerplate code, at least not as much as NgRx. However, Redux performance is just above average, which can be a bummer, especially if you want to make your application highly responsive and fast.
Ember
Ember is a JavaScript web framework that developers use to craft modern web applications. It comes with a scalable UI architecture and everything developers need to build rich UIs for web apps that work on all devices.
- Lighthouse Score (performance): 79
- Lines of Code: 2077
Considering the performance and lines of code required to develop a real-world application, Ember is the best-performing front-end framework on our list of lowest-performing frameworks.
Back-end Frameworks
The back-end is the portion of a website or a web app that is encapsulated to the users. It comprises all the logic, servers, databases, APIs, and app structures that aren't visible to the users. And the frameworks that help developers build the back-end of a website or a web app are known as back-end or server-side frameworks.
For comparing the back-end frameworks, we’ll consider the Benchmarker online comparison tool’s latest test results, and the following metrics:
- Average Latency: Average latency indicates the time required by the technology (in this case: framework) on an average. Here, lower is better.
- P90 Latency: P90 latency indicates the slowest response of the framework or the technology in the slowest 10%. Here again, lower is better.
- Requests/second: As the name says, requests/second indicates the number of requests that the technology can handle. Here, higher is better.
Plumber
Plumber is an R-based server-side web framework that helps create web APIs pretty easily. Developers can easily expose their existing R code and use it as a web service using special decorator comments such as roxygen2.
- Average Latency(ms): 533,961.3
- P90 Latency(ms): 580,698.7
- Requests/second: 468
While Plumber seems pretty functional, its performance is a big concern for developers because it runs on a single thread. It has the highest latency, and the ability to handle requests per second is also the lowest.
CodeIgnitor
Released in 2006, CodeIgnitor is a powerful framework created in PHP that enables web developers to create simple yet feature-rich and dynamic web applications. Developers rarely need to use 3rd party libraries, which paves the way for faster app development.
- Average Latency(ms): 219,652.7
- P90 Latency(ms): 273,832.7
- Requests/second: 1,154
CodeIgnitor has its benefits, but when it comes to performance, it lacks behind hundreds of relatively new back-end frameworks such as Spring or ExpressJS. However, considering the metrics, you can still say that it's way better than Plumber.
Django-Ninja
Django-Ninja is a pretty lightweight back-end framework that is largely inspired by FastAPI, a Python web framework. With Django-Ninja, developers can define APIs without using the Django Rest Framework or DRF, which is unnecessarily complex. Also, It's Django-friendly and supports integration with Django ORM and core.
- Average Latency(ms): 113,496.3 ms
- P90 Latency(ms): 241,288.7 ms
- Requests/second: 2,320
Django-Ninja surely saves time, majorly because there's no need for the overcomplicated DRF. However, developers still prefer Django over Django Ninja because of performance issues. While Django-Ninja seems to perform better than the aforementioned back-end frameworks, its performance is nothing compared to Django.
Laminas
Laminas is the open-source continuation of Zend – an open-source PHP framework. It has several features, such as session management, data encryption, support for RESTful API development, MVC implementation, and much more. It's pretty lightweight and well-suited, especially for PHP-based projects.
- Average Latency(ms): 65,100.7
- P90 Latency(ms): 80,272
- Requests/second: 3,933
Ironically enough, Laminas exhibits the best performance (for back-end frameworks) on our list of lowest-performing web frameworks. While its performance is better, Laminas is complex to understand and has a bigger learning curve.
So, should you use these frameworks in your next project?
If you go strictly by the metrics listed in this blog, all the frameworks above exhibit the worst performance – meaning they aren’t recommended. To find better alternatives, you can check out our list of the highest-performing web frameworks.
However, our benchmark results mostly concern how concise the code is using the framework or how well the framework performs. And this means you’re looking at a small part of a way bigger picture. You can rely on the above metrics, but you must also consider other aspects such as security, scalability, available support, and the projects your team works on today and check if the framework meets your requirements. This way, you can decide which web framework you should choose and which you shouldn't.
FAQs
Q1. What framework does Instagram use?
Instagram uses the Django web framework pretty aggressively on its website – so much so that Instagram is currently the world's largest deployment of Django. Apart from Instagram, Django is also used by several big names such as Pinterest, Mozilla, Spotify, National Geographic, etc. Being written completely in Python, having a low learning curve, and having good benchmark performance results are some of the likely reasons Instagram and other giants use Django.
Q2. Which framework is the most demanding?
Although extremely powerful, Zend is the most complex and demanding framework in terms of skills. It has a steep learning curve, perhaps because of the massive yet poor documentation. In addition, it exhibits poor performance, making it unsuitable for modern-day fast applications. So, whether you’re an entry-level web developer or experienced, you’d want to avoid this framework.
Q3. What framework does YouTube use?
For back-end operations, YouTube uses Django, which is a python based framework. Initially, YouTube was built using PHP, but it was later switched to Django. For front-end operations, YouTube uses JavaScript and Java & Swift for Android & iOS development, respectively. Lastly, for their database, YouTube uses MySQL.