Why should I use a framework?
A framework is not absolutely necessary: it is "only" one of the tools that is available to help you develop better and faster!
Better, because a framework provides the certainty that you are developing an application that is in full compliance with business rules, that is structured, and that is both easy to maintain and upgradable.
Faster, because it allows developers to save time by reusing generic modules in order to focus on other areas. Without, however, ever getting tied to the framework itself.
Investing in the task, not in technology
This is the basic principle of a framework: Not having to reinvent the wheel. And end forecasting, low value-added tasks (for example, the development of generic components) in order to focus fully on business rules.
As an example, a framework will save the programmer from having to spend 2 or 3 days creating an authentication form (which is not a specific task). The time that is saved can be dedicated to the most specific components as well as to the corresponding unit tests, providing high quality, sustainable and solid code.
Guaranteed upgrade and maintenance
In the long term, a framework ensures the longevity of your applications. If a development team works as they wish, only this particular team will be able to maintain and update the application with ease. This is the way an editor supports a proprietary solution.
On the other hand, the framework that a framework provides to the application makes it possible to avoid this trap completely and gives any developer - whether he has participated in its development or not - the ability to easily "adopt" an application, to maintainthere over time and update it quickly and cleanly, whenever necessary.
Pros
Efficiency
Tasks that would normally take hours and hundreds of lines of code to write, can now be done in a matter of minutes with pre-built functions. Development becomes much easier, so if it is easier, it is faster and therefore efficient.
Security
A widely used framework has large security implementations. The big advantage is the community behind it, where users become long-term testers. If you encounter a vulnerability or security flaw, you can go to the framework website and let the team know, so they can fix it.
Cost
Most popular frameworks are free, and since it also helps the developer encode faster, the cost to the final client will be lower.
Support
Like any other distributed tool, a framework usually comes with documentation, a support team, or large community forums where you can get quick answers.
Cons
You learn the framework, not the language
I believe this is the biggest problem. If you are using a framework and you know very little about the language behind it, you will learn the framework and not the programming language itself.
Limiting
The core behavior of a framework cannot be modified, which means that when you use a framework, you are forced to respect its limits and work in any way necessary.
Code is public
Since the framework is available to everyone, it is also available to people with bad intentions. It can be studied in order to know how things work and to find flaws that can be used against you.
Completion
We conclude that using a framework or not, is an option that should be analyzed for each project, analyzing whether the pros and cons of using a framework can fit with what is necessary for building and maintaining the software. Remembering that when we talk about technology, everything is a trade-off, a game where you take one part to deliver the other which is more interesting for the end result.
Your reply is very good, I agree and disagree on the question of
Código é público
, this is great for finding vulnerabilities, as for the issue of limitation this week I thought about it, because I’m using the frameworks a lot without knowing the language itself. + 1– Giancarlo Abel Giulian
I agree, but it gets into the same context of pros and cons, but generally the Code is public is a good one. I just inserted in the cons by the context of vulnerability.
– guiandmag