Today, “from scratch” development is becoming less common. Lower budgets and tighter timelines have forced most developers to start from an existing foundation when creating their projects.
I still personally love developing “from scratch,” but living in today’s world and unable to spend nights writing code, I had to adapt to the current environment and start using some frameworks myself.
Before delving into the various points of the article, I’d like to remind you of a general maxim: you cannot use a framework well without knowing the language in which it is written.
What is the purpose of a framework?
The first and most obvious question should be: “What should the framework do?” Unfortunately, this question is often ignored.
Using a framework created to fulfill a specific purpose is simpler than adapting another one to our needs. Using jQuery to manipulate data structures is certainly not the best choice. Therefore, you must have a clear goal in mind to make the right choice.
4 characteristics to choose a framework
I want to highlight 4 important characteristics to keep in mind when choosing a new framework:
- Properties and technical features
- Community involvement
- Consequences of the choice
These are the four keys to make a good choice.
Of course, there are advantages and disadvantages to each framework, but keeping these four points in mind can help make a correct decision.
In a constantly rushing world, time is crucial.
The time factor is crucial in choosing a framework. Why? Because without time to study, test, and develop it, it is useless to think of using it.
Often we have little time to deliver a project, and introducing a new framework will almost certainly cause delays. Therefore, in terms of planning ahead, we need to check the amount of code that this framework will make us write. Not just the actual time it will take to write it, but also how complex the code you and your team will have to write will be, as it will also cause a significant loss of time.
The level of complexity also affects how manageable it will be. So, the more code you write, the more difficult it becomes to support it later. Thus, more code leads to more errors.
I found this simple programming rule online: e = mc² (errors = more code^2)
Properties and technical features
The choice of a framework can be influenced by technical aspects, community opinions, and what can be found in the framework’s documentation.
Do not be deceived by what you read in forums. The best way to know if what is being talked about is real is simple: test it.
However, as mentioned earlier, due to limited time, testing a framework might be a luxury we cannot afford. Therefore, try to extrapolate the most important technical feature from the available information.
Is the framework suitable for the structure of the project we have or want to implement? Using a framework designed for a specific task is easier than adapting one to our needs.
Will it be better in terms of performance? There’s no point in opting for a slow framework during development that will also be slow in execution.
If we are choosing a front-end framework, it is important to check browser compatibility.
Lastly, as I mentioned in the introduction to this article, you must know the basics: to be able to correctly choose a structure, you need to have the basics and requirements to fully understand it. When you choose a framework, you must know what you are talking about. By this, I mean you need to know the purpose of a framework. If you do not have basic knowledge, learning a framework will be useless as you will not be able to fully understand it.
If you are not prepared, learn the basics first.
What makes a framework worth considering? The people who use it. Okay, but how can we understand if a framework has an active community?
There are several factors that can help us understand the community involvement for a particular technology:
- How many people talk about it on the web?
- How many people continue to use it?
- How often do developers respond to bug reports?
- How many pull requests?
These are just some of the questions that can give you some information about community involvement.
What are the advantages of a “crowded” framework?
An active community considerably increases documentation on a particular technology, thus reducing the time required for research and learning.
Moreover, if the company you work for is growing, it will be much easier to find collaborators familiar with the framework due to its popularity.
However, not always an active community is enough to direct our choice. After ascertaining the existence of a good community, you need to check how many of these people (preferably large companies) actually use this technology in a production environment!
Discovering who uses a particular technology is far from easy, but creators often mention the companies that use the framework and, in that case, check how they implement this technology and for what purpose.
Usually, development teams of these technologies release a roadmap on their future plans, so check what they have in mind.
Consequences of the choice
Before finalizing the choice, we should take a moment to think about the possible consequences of what choosing the new framework could entail in the development environment.
Remember that if you work in a team, it might be more difficult for others to learn a new framework. How much do you think they could take to get familiar with it and how much time do you think they can dedicate to learning it? Should they know something else before studying?
The choice must be weighed and discussed multiple times to see especially what the team thinks about it.
There is no golden rule that guarantees a 100% right choice. Only practice and time will allow us to understand this.
In this article, I hope I managed to give you ideas to start facing your choice, but remember:
It’s not about finding the best framework; it’s about finding the right framework.