All about the World of JavaScript Frameworks !!

There was a time when only JavaScript and JQuery were the everything when we considered any web project front-end, nothing else. But lately we had seen in last couple of years that we have been flooded with JavaScript frameworks. And now JavaScript is just not a front-end thing only !! JavaScript is being used everywhere and by everywhere I literally mean everywhere. No one has the realization of the capabilities of the language until the super power NodeJs came and it changed the whole world up side down. Since then JS never looked back and is now one of the top most trending, popular, liked and adapted technologies in the industry.

If you were been in this JS framework world then you have the hint about these frameworks and you can at least debate which one is good in what aspect and with which to go with for any problem domain you have. But its 2K18 and if you have just started looking into these because of the buzz that has been created then it might be be really confusing and hard to take any decision to choose one.

This article is all about understanding this new world and the options that we have. I wont compare the frameworks in detail because you can easily find a lot of debate on a particular set instead I just try to highlight the trends and developers adaptability towards them. So lets begin !!

Lets first see how the javaScript comes along the way through these years among all other languages. I am taking the help of Stack Overflow Trends tool here to get the trend data for this. The following graph is of Most Popular Languages (TIOBE Index for May 2017) on the SO trend tool.

As you can see in the graph above after 2009 the popularity of javascript has shift itself into its top most gear and since then it is at its top speed till yet and as I can recall 2009 was also the year when NodeJs has got its first release. Pretty Interesting right !!

JavaScript UI frameworks and libraries work in cycles. Every six months or so, a new one pops up, claiming that it has revolutionized UI development. Thousands of developers adopt it into their new projects, blog posts are written, Stack Overflow questions are asked and answered, and then a newer (and even more revolutionary) framework pops up to usurp the throne.

Using the Stack Overflow Trends tool lets take a look at some of the more prominent UI frameworks: Angular, React, Vue.js, Backbone, Knockout, and Ember.

Stack Overflow Trends lets us examine how each of these technologies has been asked about over time. We can start by looking at some of the larger frameworks.

There was a time when jQuery was the darling of JavaScript world, the most asked questions lies under its tag. This picture quickly changed as AngularJS and later React were released, cannibalizing jQuery’s mind share among the community. Then starting around 2016, there is a quick shift from AngularJS to Angular, which represents the subsequent versions (Angular 2+), as developers began to migrate to the latest and greatest flavors of the popular framework from Google.

These larger frameworks show only part of the picture. There also were smaller frameworks vying for dominance. The picture here shows just how brutal this JavaScript frameworks war could be.

As you can see here there are two major phases in JavaScript framework usage. There appears to be a quick ascent, as the framework gains popularity and then a slightly less quick but steady decline as developers adopt newer technologies. Starting around 2011, there seems to be major adoption of a couple of competing frameworks: Backbone, Knockout, and Ember. Questions about these tags appear to grow until around 2013 and have been in steady decline since, at about the same time as AngularJS started growing. The latest startup is the Vue.js framework, which has shown quick adoption, as it is one of the fastest growing tags on Stack Overflow. Only time can tell how long this growth will last.

There are various factors leads a developer to choose a particular front-end framework or another. Developers who primarily work with one programming language or technology may be more inclined to choose a certain UI framework. For instance, we might expect a NodeJS developer to choose a different framework than ones who work with PHP or even Java.

We can get a sense of this by breaking developers into groups based on the tag they most visit, and for each group examine the percentage of traffic that goes to each of these frameworks.

Both TypeScript and CSS users have relatively high traffic to JavaScript frameworks across the board compared to the other technologies we examined. This makes sense as developers who work with these technologies tend to do front-end development, so they’re more likely to use a JavaScript framework. The relationship of Angular to TypeScript is particularly strong as Angular (not AngularJS) is written in TypeScript.

We can also see here developers who primarily use C and C++ tend to do more systems programming and they are less likely to use a JavaScript UI framework, and this is apparent based on the relatively low percentages across each framework.

Angular and React are by far the most popular across the board, no matter the technology used. It makes sense that why they are the clear winners may be because supported by two of the biggest and most influential companies in tech. Just looking at those two frameworks, Angular is more visited than C#, Java, and (to a degree) PHP developers, whereas React is more popular with Rails, Node.js, and Python developers.

There are a couple of interesting observations when we look at some of the less popular tags. Ember.js and Ruby on Rails share a disproportionately strong relationship compared to other technologies. This marriage could be due to some of the philosophical similarities between the two frameworks. Ember was created by Yehuda Katz, a member of the Ruby on Rails core team. Due to this, both Ember and Ruby on Rails advocate a convention over configuration paradigm that make these two technologies complimentary and allow developers to quickly be productive without worrying about the nitty gritty configuration, until they need to.

Unsurprisingly, Knockout.js receives disproportionately more traffic by C# developers, most likely since Knockout is also a Microsoft technology. PHP is also an interesting case. It is designed for and primarily used for web development, but PHP developers are not visiting many Angular or React questions (and not too many to JavaScript frameworks as a whole), but visit a disproportionate amount of Vue.js questions.

Conclusion

Even though I have an inclination towards Angular, I am not advocating any framework in particular but like every technology choice, it’s not about what’s “hot”, but more about identifying trade offs and finding the tool for the particular problem you have. But let’s be honest, we can not ignore the size of a developer community because it certainly counts, it is the factor which make a framework active, adaptive and makes it easier to find help. The larger the community the quicker and easier to get help. Also having a support of a big tech company like Angular and React has certainly adds a significant amount of quality the way these frameworks are being presented and evolving.

Hope This might have helped you to get the gist of the current trend and to choose the right one for you. If yes then don’t forget to clap and follow on below links :

https://medium.com/learnwithrahul

Keep Learning !! Keep Sharing !!