Navigating the Evolving Web - Part IV: VueJS
Date: Tuesday, August 14, 2018
Developer: Evan You
Paradigm: Mixed
Language: ES5 / ES6
Size: 20.9K*
Market Share: No.3
Growth: No.2
*gzipped value at end of 2017
History
VueJS is unique amongst the frameworks represented here in that it is not backed by a multi-million dollar company but rather by a small team.
Evan You was working at Google Creative Labs back in 2013 and was tasked with rapidly prototyping web applications. Angular whilst effective was too large and unwieldy for the fast iteration required so he began to tinker with his own framework distilling Angular down to its best bits.
Vue was open-sourced early in 2014, hitting its 1.0 release 18 months later. By this time, the PHP community were picking up the framework and interest was gathering rapidly especially in China (where You is from). But things really took off after the 2.0 release in Spring 2016 when developers at Sainsbury's and Nintendo began to show an interest.
But 2017 was the year of Vue. The project gathered more stars over the year than any other project on GitHub (an increase of over 120%). Downloads from NPM* ballooned from about 1.5m during 2016 to almost 8m over 2017 and is now sitting at around 1m downloads / month. Estimated active users each week increased from around 84,000 at the beginning of 2017 to around 355,000 a year later.
Today VueJS has over two dozen core developers and over 13,000 forks on GitHub. There is even a website dedicated to hosting VueJS jobs.
The rise of VueJS from such humble beginnings has been nothing short of meteoric. At the time of this writing, ReactJS is the 3rd most starred repository on GitHub with over 108,000⭐️s. However, from nowhere VueJS has rocketed to sit just behind in 5th place with over 90,000 ⭐️s. Angular is around 14th with nearly 60,000 ⭐️s.
*NPM - (is the primary way to acquire JS frameworks)
Philosophy
For those familiar, an easy way to describe VueJS is as the successor to KnockoutJS. KnockoutJS was a library to solve arguably the knottiest problem in front-end development - data-binding. Data-binding is a mechanism to keep what the user sees synchronised with what the program actually knows. For example in a chat application, the program may be aware that you have just received a reply but you may not. Data binding helps get the UI updated with the change and also get your input into the program to be handled.
Data-binding is still at Vue's core. However, it has now grown into what the author refers to as a 'progressive framework'. VueJS is broken up into a number of modules such that you add only as much 'framework' as you need. In fact, you can take an existing web application and 'sprinkle' a little Vue into the mix adding as you go - something tricky to do with React and pretty impractical with Angular.
Vue represents the easiest transition from traditional web development to the modern world of front-end frameworks. Importantly, like Angular and React, you develop functionality as composable components but with the familiarity of HTML, CSS and Javascript - the traditional languages of the web.
Vue's watchwords are approachability, simplicity, modularity and flexibility. However, it is still fast, even outperforming React in some benchmarks.
Tooling
Visual Studio does not speak Vue per se but as Vue can be developed in ES5 ('regular' javascript) it can benefit from existing Javascript tooling in Visual Studio or any other environment.
However, there are several extensions for VSCode, one of the most promising being Vetur. There are also developer tools available as extensions for both Firefox and Chrome and also as a standalone desktop application.
Popularity
In terms of commercial popularity VueJS is definitely number 3. Vue has not had nearly the same publicity as the other two frameworks largely due to its lack of commercial backing. And a number have shied away because there was no corporate giant behind it.
These factors may have slowed Vue's growth but make its success all the more remarkable. It has a much smaller commercial footprint than Angular but appears to be growing faster.
Perspectives
The .NET Team Leader
For the .NET Team Leader Vue might be a good proposition but much would depend on the team's existing relationship with the web. If the team is already comfortable with web technologies as they stand then Vue presents a smooth transition and it helps keep complexity down.
However for a team where the web is viewed as an inconvenience then Vue may not be such a comfortable fit.
The Start Up
The StartUp could also benefit as Vue allows producing results quickly and efficiently and its community is growing. But finding good Vue talent at the moment is more difficult than for the other two frameworks. However a good web developer should be able to pick it up fairly easily.
The Job Seeker
The VueJs job pool is definitely smaller than for Angular and React but this seems to be changing rapidly as Vue is listed on more and more job postings.
The Learner
The Learner stands most to benefit from Vue. Vue may not have the volume of training resources that we might find with the other frameworks but it is growing rapidly. And Vue's dedicated community appear determined to maintain quality learning material for all.
Existing resources teaching traditional web development can also be harnessed to provide value. Vue's shallow learning curve and progressive nature then introduce the more complex concepts of modern web development in a relatively unintimidating fashion.
Summary
VueJS has struggled against the odds to become possibly the 2nd fastest growing front-end framework today and perhaps the 2nd most popular amongst developers after React. It has not reached this position through corporate publicity but based on merit alone. Vue has not only survived but thrived because it brings something different to the table - a refreshing balance of simplicity and power in an increasingly complex world.