As programming matures and application development becomes more complex, developers need more than just an understanding of programming languages. They need to know the frameworks that make creating applications in these languages easier.
A framework is a set of tools, classes, and functions that serves as the platform on which to build a full application. There’re some tasks that occur in every application: input, display rendering, error handling, for example. Frameworks handle basics like these so developers can focus on solving the problems related to their specific domain. However, a framework is a broad term, so different frameworks will do different things.
Explore all technologies tagged on Stack Overflow in the free online tool.
In the graph above, you can see the change in usage of tags on Stack Overflow for the ten frameworks mentioned below over about ten years. Frameworks rise and fall in popularity as new ones are created and old ones fall out of favor.
Without further ado, here are ten of the more popular frameworks in use today.
Django is an entirely Python-based web framework initially developed in 2003 by web programmers working at a newspaper in Kansas. Thanks to being free and open source, it’s enjoyed consistent popularity. It simplifies a lot of common web development tasks, including serializing data, caching, and authentication thanks to the modular design and mature ecosystem of components available. It covers the full stack of web development, but can be used as backend only if you prefer another front-end framework.
Laravel is a free open source PHP-based web framework created about eight years ago. It was initially based on Symfony and created to address the gaps in features creator Taylor Otwell found in the CodeIgniter framework. It provides advanced support for things like authentication, interacting with relational databases, and dependency management. With a modular packaging system and a ton of additional tools and applications supporting the ecosystem, Laravel provides a full stack framework designed to make development easier.
While most of the frameworks discussed here build off of web-first programming languages, Spring is a framework for Java, which can be used as part of a web application or a native desktop or mobile application. It manages low-level operations for complex applications like dependency injection, database interactions, and transaction management, while making it easier to modularize code with what’s called Aspect-Oriented Programming. While Spring can be used with any Java application, it’s included in back-end web applications frequently.
Microsoft created and open-sourced ASP.NET as a way to create the successor to Active Server Pages (.asp). Instead of being built on a single language, ASP.NET runs on any language that uses .NET. As such, it makes it a strong back-end framework for companies running a Microsoft stack (like we do). Because it builds off of compiled languages, it is fast and scalable.
There are lots of other frameworks out there, as well as popular libraries that aren’t frameworks (hi jQuery!), so please don’t take this list as exhaustive. But it should give you a framework (pun intended) in discussing these with candidates and hiring managers.