Laravel, CodeIgniter, Django, Flask, FastAPI... They are the same....
Content Index
Hello! In this post, I want to address a common question in web development: Is it worthwhile or necessary to learn development in multiple technologies? Although we will focus on web backend, this reflection applies to any area of software development.
The specific question is: Is it justified to learn frameworks like Flask, FastAPI, Django, CodeIgniter, Laravel, Symfony, or other similar ones?
1. The Value of Technological Diversity
Initially, the answer is a resounding YES. Learning multiple technologies greatly nourishes you as a developer.
A. Mitigating the Risk of Obsolescence
It is quite risky to focus on a single technology. If it disappears or loses relevance (as has happened with the boom of jQuery in certain niches), you are left with few job options.
General Recommendation: In general terms, I do recommend you develop in multiple technologies, especially if you focus on server-side web development.
B. Selecting the Best Framework per Project
Knowing several technologies gives you a better range of options. Once you master several of them (as I do with CodeIgniter, Laravel, Flask, FastAPI, and Django), you can select the most appropriate framework based on the specific requirements of the project:
- Project Requirement Recommended Option Reason
- Simple Application (Blog) CodeIgniter, Flask, Laravel Django might be too large, and FastAPI focuses on APIs.
- CodeIgniter is light and fast for a simple PHP.
- Creating REST APIs FastAPI It is focused and optimized for this purpose.
- Chat Application (Full Duplex Communication)
If you only master one technology, you will be forced to develop all projects in that single tool, even if it is not the most efficient.
2. The Focus and the Common Point (MVC)
Although it is worthwhile to know several technologies, I also said that it "possibly isn't" worthwhile if it's not your main focus.
A. Prioritize a Niche
There are many technologies being born daily, and it's impossible to follow them all. You must focus on a niche. My fundamental niche is backend; that's why I extend into those frameworks. For the frontend (the client side), I only develop in Vue, for example, because Angular or React are not my main focus.
B. The Concept is What Matters: The MVC
Here comes the most important point to justify learning multiple frameworks:
- CodeIgniter, Laravel, Django, Flask, etc., although they are different languages (PHP, Python), they all seek the same objective: to create web applications.
- They all use (or variants of) the Model-View-Controller (MVC). Django uses the MTV (Model-Template-View), and Laravel extends it with its own components (Livewire).
- If you know one of these technologies, you already have a solid conceptual basis to learn the rest, as you will see more similarities than differences.
- Syntax vs. Concept: The real challenge is the syntax (switching from PHP to Python). But as a developer, you should focus on learning the concepts (how to work with primitives, arrays, petitions, requests, and databases).
Conclusion
The procedure and the scheme for implementing a web application (Controller, Model, database connection) are virtually identical. Therefore, mastering one will greatly facilitate mastering the next.
For this reason, I strongly recommend that if you want to develop or learn web development, you work with at least some of them, and that they are from different programming languages. Remember that I have several resources (courses on Udemy, books in my Academy) that can facilitate this path for you.
I agree to receive announcements of interest about this Blog.
OPINION - I will talk about why I consider all web frameworks to be the same, their foundations are the same, and knowing aspects of them allows us to learn good practices and be better developers.