I kind of think this herd mentality in the tech industry is annoying. There are a lot of people using React, but that doens’t make Vue a bad choice. Conversely, just because Vue is new and relatively popular doesn’t make it the “new React.” Pitting them against each other like this is disingenuous, as engineers will make choices and use both — it’s not like picking React will kill Vue or vice versa. That doesn’t say anything about the likes of Ember and Angular that are still in use.
A good comparison is backend stacks. Rails exists, but so does Laravel and Django. If it were truly a big deal which was the biggest, then only one choice would remain. Instead, they all have healthy ecosystems with companies using all three.
For Vue to catch up to the number of React stars would mean that their rate of starring is significantly higher.
I wonder if rate of new Github stars are a leading indicator of future popularity increases? Probably? Would be interesting if someone could study that.
Weird thing, commits to Vue are decreasing over time and are mainly done by a single individual - I've never seen that pattern in a popular library:
https://github.com/vuejs/vue/graphs/contributors
The writing is clearly on the wall (or the stars are on github), Vue is definitely going to overtake React usage in the long run unless another new library appears or React changes significantly.
Comparisons in Google Trends are extremely easy to manipulate (or just interpret wrong). The ".js" you added to Vue is killing its results, and the generic term "react" is propping that one up.
> Weird thing, commits to Vue are decreasing over time and are mainly done by a single individual
The Sistine Chapel was mainly painted by a single individual.
(for the record, Michelangelo had apprentices to help him mix plaster, etc. But he phased them out when it came to painting. Traditionally master painters had apprentices which would paint with them, but he would rather avoid the differences in opinion and arguments while painting the chapel. He had the vision and the skill. I think that’s the case here as well. Not saying Evan is Michaelangelo, but he does have a good vision with his product and the skill to execute on it.)
> For Vue to catch up to the number of React stars would mean that their rate of starring is significantly higher.
That's pretty interesting actually, and presumably means a lot of people find Vue interesting, yet it's not as widely adopted as React.
> The writing is clearly on the wall (or the stars are on github), Vue is definitely going to overtake React usage in the long run unless another new library appears or React changes significantly.
I mean, that is if React usage slows down and Vue's continues to grow. I didn't draw that conclusion from the links you provided (but I didn't conclude otherwise either).
Edit: a downvote with no reply? Why the downvote? Did I say something that's wrong?
Stars don't matter. If we want a measure that's actually meaningful to some developers, look at job postings.
Anecdotally from my on and off job searching, React leads here by orders of magnitude. And unfortunately for me, my Vue personal experiments/side projects have to be put in the sideline for a bit. Many people I've talked to want direct React experience and not just experience in reactive frontend stuff.
Meanwhile we're still using ASP.Net MVC w/ a vintage 2008 web design. Could care less about $latest_web_technology, because having a viable business is more important than what the site is coded in or how it looks.
99% the jobs for PHP "development" I've come across in the past couple months have been requiring lots Laravel experience. And quite a few of those have required a bachelors in computer science...
Yeah it's tough. Do you go into a new technology and have issues finding jobs or do you use the tried and true, risk stagnating and costing yourself future jobs.
Microsoft just announced they are betting big on React, and a quick search at JS/frontend job posts only show React and the odd Angular/Ember ones in my area.
Stars might matter to some but it looks like React is here to stay and be the most supported and used library for some time.
React is the heavyweight, no doubt, but it also feels heavy for smaller projects. VUE is a great option and believe it or not Meteor just announced 1.7 with at least one killer feature: Babel-free JS for modern browsers.
I'm always baffled by web developers constantly moving to new frameworks and toolchains. I can't really think of other sectors of development that chase as many fads. I mean its one thing if it solves a significantly new problem, but a lot of times it comes down to like "so and so likes gulp better than grunt or sass better than less and they're going to stall the project for two weeks while they switch the codebase over while pretending they're fixing tech debt". In game development, where developers are frequently on the cutting edge of things, the idea of switching engines and apis all the time for marginal benefits would get you a lot of raised eyebrows, and im guessing desktop app developers and people into scientific computing feel likewise. Don't get me wrong things evolve, but code in those fields doesn't seem to be treated as disposably.
> I'm always baffled by web developers constantly moving to new frameworks and toolchains
I'm baffled why anyone thinks anything like this is actually true. So everytime you see a JavaScript or CSS library or framework posted to HN, you think all JavaScript developers switched to it? Game development has well over 1000 engines to choose from. I don't assume you switched from unity to Godot when it showed up on HN.
As a business owner I'd be VERY interested in something (fad or not) that cuts development time and complexity by a substantial amount. As a developer I want to use things that make my life vastly easier and lets me focus on the product rather than the programming.
Trying new things and taking risks can yield huge rewards! Of course it can fail spectacularly as well but for those that worry about that a lot, jQuery UI still exists!
On the one hand, "web developers constantly moving to new frameworks" sounds like a myth. I'd suggest "periodically" instead. I've been a web developer for 20 years, and the first 19 of those years were miserable. It's just an immature field with lousy tools.
I counter that perhaps it feels like people are switching all the because there are more people and projects in web development than games or scientific development. Most all games have websites, whereas, few websites have games.
It does in the web world, too, but you don’t hear about it as much because nobody writes self-promotional posts about how they decided not to switch because it wasn’t worth it.
To me the most obvious technical competition for Vue is Angular, not React, and if Microsoft were going to choose something other than React, I would've presumed it would be Angular.
Both Angular and Vue have a similar component DSL and contrasts from React by trying to have a complete out-of-the-box experience, rather than the build-your-own framework style of React. But Angular is backed by Google, and it supports TypeScript out of the box as well as RxJS, which is somewhat of a cross-platform API for async. Unfortunately I think the Angular reputation still suffers from its Angular 1 days.
I think you're spot on about Angular 1. I really like Angular myself despite that transition issue but I also like React and Vue. I currently use Angular for larger web projects (it's more complete out of the box), Vue for smaller web apps and widgets and React Native for mobile.
I disagree. Vue is just a view layer, as is React. Angular is much more. Also, a lot of people are saying Vue and React are so different, but to me they actually seem very similar. They require the same kind of component-thinking and they both let you declare your view as a function of state in a similar way (JSX vs DSL). They both have similar problems with similar solutions.
I often read “I chose Vue because it feels easier than React”.
Programming in React requires some basics in JavaScript and functional programming. It helps if you already have a dev background, but if not, then you will learn things really useful for a developer. And not only for frontend dev.
Then you just have to learn the React API: 4 concepts (component, state, props, render) & 3 functions (didMount, didUpdate, willUnmount).
That's why I started working with Vue. It seemed easier to approach for someone coming from a server-side language perspective (I'd mostly worked with Python/Flask and PHP/Symfony before). I could slowly ease into using pieces of it until I learned enough to write a whole project in Vue. You can probably do the same thing in React, but the Vue docs were written to address my use case.
As somebody who really likes Vue, I feel like it's hampered by comparison by not being able to use "real" JS in the bulk of the view templates. There's a lot of minor boilerplate annoyances in outputting stuff that go away when you can do array maps and Ramda functions as a direct part of your rendering.
This frames it a lot as a competition; it really isn't. Facebook Open Source is a contributor to Vue.
I think it just resonates with the community that this is a Patreon-backed, very community-driven project, whereas React has Facebook behind it, and Facebook has been controversial. Not that that has much to do with React itself-- if anything it means it probably scales well.
Either that, or it's another iOS vs Android situation, where people just like picking teams.
Do we consider js frameworks to have 'jumped the shark' when they descend to the same sort of popularity polling as a reality TV contest? :)
(I am tongue in cheek here - I realise stars <> actual usage in the wild, and the results can be gamed).
For what it is worth, as a 35+ year veteran in the software coding world, I tried dabbling in both frameworks, and Vue seemed to make more sense to me and fitted my mind's view of how things should work.
I prefer Mithril.js, used from TypeScript, with Tachyons for inline-ish CSS. That is what I use when I have a choice like for personal projects that are single-page applications (e.g. StoryHarp, NarraFirma, Twirlip7 on github). That way almost all code is in one language and can be easily refactored. Mithril is most naturally used via a "HyperScript" API where you define DOM/vdom nodes via function calls -- e.g. m("div.ba.bw2", m("span.blue", "Hello World")). Templating systems (including JSX for React) are unfortunate crutches which ultimately make development harder because they get in the way of refactoring, modularizing, and testing. And typical semantic CSS use (e.g. .warning vs. .red) often ends up in a messy snowball where people eventually are too afraid to remove anything -- whereas if you make your components in JavaScript code, you don't need semantic CSS. It turns out that "best practices" for server-driven Web 1.0 applications (e.g. HTML-ish templates and semantic CSS) often are "worst practices" for JavaScript-first single-page applications.
React also is overly complex because it tries to over-optimize redrawing speed through encouraging components to maintain a lot of local state using setState -- even though the increasingly popular Flux model encourages global-ish state for one-way data flow that makes the internal workings of UIs easier to reason about. Mithril is more Flux-ish out of the box in terms of the design patterns it encourages. Mithril's default behavior is based on rerendering the entire current vdom tree any time the user interacts with a DOM element or after a network request completes -- and the Mithril community only encourages optimizing beyond that if there is a specific performance issue. (You need to add your own redraw calls in callbacks for timeouts and a few other cases.)
That said, I can understand how the herd mentality shapes the employment landscape for both programmers and their managers. It does in my own work life too -- where I have spent a couple of years working in Angular for my day job despite knowing what a mess of accidental complexity it is compared to something like Mithril. Angular was chosen years ago by other developers before I joined the project -- developers who mostly did not stick around to suffer the maintenance consequences. At least new projects may be in something other than Angular -- typically React (which is at least better than Angular).
It's saddening how many times in my career I've ended up having to work with worse technology because of herd effects -- despite knowing better alternatives existed and having personal experience with them. For example, IBM chose to promote Java instead of Smalltalk in the late 1990s (despite having two Smalltalks it owned). Or Netscape ultimately foisted a Java-ish looking JavaScript on the world when Brendan Eich was originally recruited with the promise he could write a Scheme for the browser. Although, as with both Java and JavaScript, after a couple of decades, most of the worst rough edges are worn smoother and many of the worst bugs are fixed, and so the developer experience for both by now is finally not that bad.
Question for Vue users: whats the value prop over React?
I haven't had a chance to look at Vue in depth but it seems to me that its useful for building apps where you don't need a build tool which makes sense to me.
The main thing I don't get is why use Vue over React if you're going to use single file components with some kind of build tool?
[+] [-] Shank|7 years ago|reply
A good comparison is backend stacks. Rails exists, but so does Laravel and Django. If it were truly a big deal which was the biggest, then only one choice would remain. Instead, they all have healthy ecosystems with companies using all three.
It doesn’t have to be a war.
[+] [-] bhouston|7 years ago|reply
https://trends.google.com/trends/explore?date=today%205-y&ge...
According to NPM download stats, React is 6x larger:
https://www.npmjs.com/package/react https://www.npmjs.com/package/vue
For Vue to catch up to the number of React stars would mean that their rate of starring is significantly higher.
I wonder if rate of new Github stars are a leading indicator of future popularity increases? Probably? Would be interesting if someone could study that.
Weird thing, commits to Vue are decreasing over time and are mainly done by a single individual - I've never seen that pattern in a popular library: https://github.com/vuejs/vue/graphs/contributors
While commits to React are regular and come from a much wider base of contributors: https://github.com/facebook/react/graphs/contributors
The writing is clearly on the wall (or the stars are on github), Vue is definitely going to overtake React usage in the long run unless another new library appears or React changes significantly.
[+] [-] kikki|7 years ago|reply
https://www.patreon.com/evanyou - It's his full time job, he's making over $15k a month on Vue, everyone else is just an open source contributor.
[+] [-] throwaway0255|7 years ago|reply
https://trends.google.com/trends/explore?date=today%205-y&ge...
or how about
https://trends.google.com/trends/explore?date=today%205-y&ge...
Maybe alexa matters?
https://www.alexa.com/siteinfo/vuejs.org
https://www.alexa.com/siteinfo/reactjs.org
Or maybe one community uses their respective primary domain more than the other for one reason or another.
React also has more than 4x as many dependent packages in npm, which could be propping up its install count.
[+] [-] mygo|7 years ago|reply
The Sistine Chapel was mainly painted by a single individual.
(for the record, Michelangelo had apprentices to help him mix plaster, etc. But he phased them out when it came to painting. Traditionally master painters had apprentices which would paint with them, but he would rather avoid the differences in opinion and arguments while painting the chapel. He had the vision and the skill. I think that’s the case here as well. Not saying Evan is Michaelangelo, but he does have a good vision with his product and the skill to execute on it.)
[+] [-] aylmao|7 years ago|reply
That's pretty interesting actually, and presumably means a lot of people find Vue interesting, yet it's not as widely adopted as React.
> The writing is clearly on the wall (or the stars are on github), Vue is definitely going to overtake React usage in the long run unless another new library appears or React changes significantly.
I mean, that is if React usage slows down and Vue's continues to grow. I didn't draw that conclusion from the links you provided (but I didn't conclude otherwise either).
Edit: a downvote with no reply? Why the downvote? Did I say something that's wrong?
[+] [-] ineedtosleep|7 years ago|reply
Anecdotally from my on and off job searching, React leads here by orders of magnitude. And unfortunately for me, my Vue personal experiments/side projects have to be put in the sideline for a bit. Many people I've talked to want direct React experience and not just experience in reactive frontend stuff.
[+] [-] optimiz3|7 years ago|reply
[+] [-] hashkb|7 years ago|reply
[+] [-] xellisx|7 years ago|reply
[+] [-] Cofike|7 years ago|reply
[+] [-] malz|7 years ago|reply
[+] [-] sotojuan|7 years ago|reply
Stars might matter to some but it looks like React is here to stay and be the most supported and used library for some time.
[+] [-] robotkdick|7 years ago|reply
https://blog.meteor.com/meteor-1-7-and-the-evergreen-dream-a...
It's good to see Vue gaining steam as more options = better fit per project.
[+] [-] interlocutor|7 years ago|reply
[+] [-] overgard|7 years ago|reply
[+] [-] Can_Not|7 years ago|reply
I'm baffled why anyone thinks anything like this is actually true. So everytime you see a JavaScript or CSS library or framework posted to HN, you think all JavaScript developers switched to it? Game development has well over 1000 engines to choose from. I don't assume you switched from unity to Godot when it showed up on HN.
[+] [-] arvinsim|7 years ago|reply
[+] [-] scabbycakes|7 years ago|reply
Trying new things and taking risks can yield huge rewards! Of course it can fail spectacularly as well but for those that worry about that a lot, jQuery UI still exists!
[+] [-] sgustard|7 years ago|reply
[+] [-] bobbytherobot|7 years ago|reply
[+] [-] acdha|7 years ago|reply
[+] [-] andyfleming|7 years ago|reply
React: 1,596,809 weekly downloads
(from npm)
[+] [-] Reedx|7 years ago|reply
[+] [-] burlesona|7 years ago|reply
[+] [-] devmunchies|7 years ago|reply
[+] [-] threatofrain|7 years ago|reply
Both Angular and Vue have a similar component DSL and contrasts from React by trying to have a complete out-of-the-box experience, rather than the build-your-own framework style of React. But Angular is backed by Google, and it supports TypeScript out of the box as well as RxJS, which is somewhat of a cross-platform API for async. Unfortunately I think the Angular reputation still suffers from its Angular 1 days.
[+] [-] exclusiv|7 years ago|reply
[+] [-] mmcnl|7 years ago|reply
[+] [-] ggregoire|7 years ago|reply
Programming in React requires some basics in JavaScript and functional programming. It helps if you already have a dev background, but if not, then you will learn things really useful for a developer. And not only for frontend dev.
Then you just have to learn the React API: 4 concepts (component, state, props, render) & 3 functions (didMount, didUpdate, willUnmount).
[+] [-] Kihashi|7 years ago|reply
[+] [-] bhouston|7 years ago|reply
[+] [-] crooked-v|7 years ago|reply
[+] [-] burlesona|7 years ago|reply
[+] [-] Can_Not|7 years ago|reply
[+] [-] kbd|7 years ago|reply
https://markojs.com/
[+] [-] bobjordan|7 years ago|reply
[+] [-] dopamean|7 years ago|reply
[+] [-] unknown|7 years ago|reply
[deleted]
[+] [-] wmil|7 years ago|reply
You don't want to bet your company on a project with only a few thousand stars, it could die quickly.
[+] [-] aylmao|7 years ago|reply
I think it just resonates with the community that this is a Patreon-backed, very community-driven project, whereas React has Facebook behind it, and Facebook has been controversial. Not that that has much to do with React itself-- if anything it means it probably scales well.
Either that, or it's another iOS vs Android situation, where people just like picking teams.
[+] [-] tylerjwilk00|7 years ago|reply
It's a pleasure to work with and a much needed tool in the frontend landscape. The more mindshare it gets the better for everyone.
I'll keep on rooting for it!
[+] [-] matthoiland|7 years ago|reply
I'm rooting for Vue.
[+] [-] cyberferret|7 years ago|reply
(I am tongue in cheek here - I realise stars <> actual usage in the wild, and the results can be gamed).
For what it is worth, as a 35+ year veteran in the software coding world, I tried dabbling in both frameworks, and Vue seemed to make more sense to me and fitted my mind's view of how things should work.
[+] [-] interlocutor|7 years ago|reply
Why so? Could you add some detail to this comment?
[+] [-] Jonovono|7 years ago|reply
[+] [-] breinhart|7 years ago|reply
[+] [-] pdfernhout|7 years ago|reply
React also is overly complex because it tries to over-optimize redrawing speed through encouraging components to maintain a lot of local state using setState -- even though the increasingly popular Flux model encourages global-ish state for one-way data flow that makes the internal workings of UIs easier to reason about. Mithril is more Flux-ish out of the box in terms of the design patterns it encourages. Mithril's default behavior is based on rerendering the entire current vdom tree any time the user interacts with a DOM element or after a network request completes -- and the Mithril community only encourages optimizing beyond that if there is a specific performance issue. (You need to add your own redraw calls in callbacks for timeouts and a few other cases.)
That said, I can understand how the herd mentality shapes the employment landscape for both programmers and their managers. It does in my own work life too -- where I have spent a couple of years working in Angular for my day job despite knowing what a mess of accidental complexity it is compared to something like Mithril. Angular was chosen years ago by other developers before I joined the project -- developers who mostly did not stick around to suffer the maintenance consequences. At least new projects may be in something other than Angular -- typically React (which is at least better than Angular).
It's saddening how many times in my career I've ended up having to work with worse technology because of herd effects -- despite knowing better alternatives existed and having personal experience with them. For example, IBM chose to promote Java instead of Smalltalk in the late 1990s (despite having two Smalltalks it owned). Or Netscape ultimately foisted a Java-ish looking JavaScript on the world when Brendan Eich was originally recruited with the promise he could write a Scheme for the browser. Although, as with both Java and JavaScript, after a couple of decades, most of the worst rough edges are worn smoother and many of the worst bugs are fixed, and so the developer experience for both by now is finally not that bad.
[+] [-] keyle|7 years ago|reply
That said, I wouldn't use a number of stars in Github as more than an indicator of people pushing a star button in Github.
I've starred many things so that I can remember them some day. If I use something every day it's most certainly not starred.
[+] [-] sdnguyen90|7 years ago|reply
I haven't had a chance to look at Vue in depth but it seems to me that its useful for building apps where you don't need a build tool which makes sense to me.
The main thing I don't get is why use Vue over React if you're going to use single file components with some kind of build tool?