What to look for when choosing new libraries for development so you don't go wrong? Choice of 12 criteria for evaluating any technique.
The number one reason for choosing this or that technique is its special features. But the main thing here is how far you will go in pursuit of them. For example, react is the most popular library today, but it has one major drawback: it’s not fully functional. Routing and state management requires third-party libraries – React-Router and Redux.
This is where Vue, reacts main competitor, comes into play. For these use cases, it provides a bundled solution. But if you overdo it, you get an overgrown complex structure that tries to be everything at once.
Therefore, sometimes the best way out is minimalism. Lodash or Ramdas libraries allow you to replace messy nested loops with concise functional expressions, making them invaluable tools.
However, the key is finding balance.
- Finds things that were previously impossible.
- It allows you to do what you did before, but better.
- It works less than the solution you are currently using.
- You might have a niftier full-featured framework, but it’s useless if the developers bump into bugs every two minutes.
In the field of data loading, GraphQL type system helps websites run smoothly.
Fewer errors and problems are easier to correct and solve.
The technology does not affect the stability of the program.
New errors and problems appear as a direct result of the introduction of technology.
Skill Box Recommend: Online Course Web Developer Career
A one-year practical course for those eager to qualify for the full web developer title.
If you’ve ever studied martial arts, you know speed is important, not strength. The same goes for the site: if the download takes 15 seconds, the user closes the tab and you lose the battle before it starts.
The solution is lighter and faster than what you’re using right now, and faster load times or other performance improvements.
Technology does not affect software performance.
The introduction of technology slows down the application significantly.
Before exploring a new technology, it is important to take a look at the ecosystem that it has evolved around.
First, it saves time, because it allows you to use someone else’s work, and not do everything yourself. The presence of an ecosystem indicates a certain level of technological maturity. Therefore, the supported third-party libraries are one of the best signs that developers have been using it for a long time.
It has unambiguous solutions to common problems. Third-party packages are well supported and well documented.
There are several new parameters that compete with each other.
A batch ecosystem is out of the question; Lots of manual configuration required.
Another important factor is an active community. The separate forum or channel in Slack is very helpful in solving problems. Well, a well-maintained GitHub page is a must.
Forum and / or Chat (Slack / Discord / Other) With daily activity, questions are considered from GitHub throughout the day.
Forum and / or chat with rare activity.
There is no community outside of GitHub.
A smooth learning curve increases the likelihood that developers will adopt new frameworks or libraries. It is a mistake to think that for technology’s sake, people are willing to overcome any obstacle to its development, no matter how great it is.
The concept of closure (but sometimes the opposite) is the “acceptance curve”. Meteor was very easy to use when it first came out – but it required you to use its entire stack right away, which is very difficult to implement for current projects.
Learning curve evaluation:
You can start in one day.
It takes about a week to delve into work.
It takes over a week to learn the basics.
Most of the techniques with a smooth learning curve are well documented. It’s not easy to achieve this: it is written by professionals who are far from trying a new developer.
Therefore, to write good documentation, you have to forget for some time what you know and put yourself in the shoes of the technology pioneer.
It also requires anticipating common issues, understanding user behavior and above all updating as the source code changes. And all of this takes valuable time from the actual programming.
With all these factors in mind, you understand why good documentation is so rare and valuable!
Separate site with documentation, screen recordings, sample projects, tutorials, API documentation, and good tutorial code.
There is only the basics and API documentation.
Brief documentation. The only way to know how to use the library is to take a look at its code.
Like documentation, additional tools may seem like a minor detail to some, but they are actually vital to the popularity and success of any technology.
One of the main reasons for the success of Redux is the amazing browser extension DevTools, which allows you to visualize the Redux store and actions in a very easy-to-use way. Likewise, VS Code’s excellent TypeScript support worked wonders in its adoption.
Two or more: browser extension, text editor extension, CLI tool, dedicated third-party SaaS services.
One of the tools: browser extension, text editor extension, CLI tool, custom third-party SaaS services.
There is no external equipment.
Even the most elegant and documented bookstore will be ignored if she only lives six months.
Track Record Evaluation:
It has been in business for 4 years and is used by large companies and well-known technical advisors.
Ages 1 to 4, used by early adopters and younger advisors.
It was released less than a year ago, but there is no real approval yet.
Not all projects have work experience. When the library is brand new, how do you rate its potential? The surest way to find out who is behind it.
When React came out, the fact that Facebook behind it was a strong case to at least give it a try. Facebook then followed up on Relay and GraphQL, stating that React’s success was no coincidence.
Big companies have more resources of investment: Google was able to continue supporting the original Angular.js even after releasing new, incompatible versions.
Of course, this does not mean that independent developers cannot create serious innovations. For example, this is how Vue.js came about, not to mention 99% of all open-source software.
Supported by a great company with a dedicated team on an open-source platform.
Supported by a team of mid-level engineers with personal professional backgrounds.
Supported by an independent developer.
The great thing about using advanced libraries is that they evolve very quickly. But this can also be a serious drawback.
The rapid rate of improvement can cause frequent breakdowns as new methods replace old patterns, forcing early adopters to pay for rebuilding.
React Router caused a lot of problems when they decided to completely change their API between versions 3 and 4 – as Angular did when they moved from Angular.js to the new “Just Angular”.
Frequent updates are attractive when you are just starting out on a new project. But if the web application has been running for a long time, the last thing you need is to spend several weeks rebuilding and customizing each time a new version of the library is made.
Updates are backward compatible and neglects are handled with warnings. Old, incompatible versions are supported for 2 years or more.
Crashes happen but are well documented and repaired gradually.
Frequent updates require major restructuring without proper guidance.
Finally, the trend is also important.
Hype is often seen in a negative light, like the spread of fashion over real content. But this is not always a bad thing.
With good ads, a new business can attract more users and members. This means faster errors are discovered and fixed, the ecosystem evolves, and everyone wins in the end.
99 level hype: At the top of Hacker News, thousands of stars on GitHub, and negotiations at big conferences.
Interest in the initial launch, hundreds of stars are on GitHub.
Sole developer working in secret. One day I’ll show them all!
The Skill Box recommends the following:
- PHP developer from scratch to PRO course
- Online Course “Python Developer Career”
- Front End Developer Process Course