Stack Overflow is a very popular go to destination for the developer community and with its Trends feature, we were able to pull out a graph that shows trends surrounding some of the popular frameworks and the percentage of questions that were asked about each one.
These trends clearly show that each time a new framework popped up, developers started jumping on it to get their fair share of the pie and the percentage of questions around it increased. During the year 2016, when Angular 2 was released, the questions for it went up where as the questions around AngularJS started going down. Libraries like Knockout and Ember were popular at one point, but they are losing out to React and Angular more recently. There is also a small spike for VueJS from 2017 onwards.
One might argue that the software industry is fast paced, and frequent evolution is an essential part of this industry, but the question is, does front-end development really need to throw out a framework almost every six months? Is it really necessary to adopt to a new framework just because it’s hot in the industry?
Adapting to a new framework frequently sure does bring in a lot of advantages. It allows developers to expand their skill set and gain more knowledge about framework performance. It also gives them an edge over other developers that do not work with frameworks. Over a period of time, developers can acquire the ability to identify the best framework for the job. Implementing the latest technology also brings a lot of recognition to the company that implements it which would encourage more developers to work for them.
A new framework also brings in a lot of challenges and in some cases, those could outweigh the benefits to a great extent. When the decision to adapt to a new framework is made, there is a high chance that it lacks thorough research before running along with it. This could lead to some challenges later on and could burn the developers while trying to resolve the issues. The new framework could also be in alpha, beta or release phases which can introduce breaking changes later on. There is also a potential risk of security tied up with a new untested framework making it unsuitable for scenarios where data security is a very important concern. There could also be potential bugs compromising the overall performance and could become a bigger problem as the size of the application grows. Another disadvantage is that there may not be a lot of support on the developer community for this new framework.
A developer that might be working on a particular framework for a couple of years might become less desirable when goes out searching for the next job. Recruiters scan a candidate’s profile for words that exactly match the job description due to which they might just be filtered out even though some might do a better job at learning and implementing the new framework. Even if a developer is working on some personal side projects experimenting with the new framework, he/she might be filtered out during the interviews for not having live project experience.
As a developer, a new framework should be chosen wisely by identifying the use case as best as possible and giving enough time and thought before migrating to it. Investing some time in researching about it through various mediums and trying to identify the challenges or concerns around it should be a good place to start.
As an employer, recruiter or a hiring manager, when hiring for a front-end position, it is important to focus on the overall experience of the candidate rather than a particular framework. Frameworks come and go but underlying languages remain for a very long time. Also, when filtering out candidates for front-end positions, more emphasis should be put on the overall experience of a candidate rather than matching the job requirements with the candidate’s resume word for word.
The sole idea behind this blog post was to cease for a moment and invoke a thought into everyone’s mind which would trigger each time when trying to adapt to a new technology. We all are involved in this race to work with the latest and the greatest technology, but it is important to identify our problem as best as possible and select appropriate technology to resolve it rather than going with what’s hot in the community. The latest isn’t always the greatest.