
Will Vue.js become a giant like Angular or React? - galfarragem
https://10clouds.com/blog/vuejs-angular-react/
======
petilon
Vue.js is a step backwards, relative to React, in my opinion. What I love
about React is JSX (or TSX if using TypeScript). JSX is a combination of
JavaScript and HTML syntaxes. You don't need to learn a new syntax in order to
incorporate loops and conditionals in the view layer, thanks to JSX: you just
use JavaScript. More importantly, you get compile-time verification. If you
use a JavaScript variable in JSX and someone deletes that variable you find
out about this issue at compile time. This is very important for large
projects that multiple developers are working on together. Angular and View.js
don't have this capability and that's a very serious shortcoming for large
projects.

~~~
indreklasn
I love React but you're completely wrong here. Vue has JSX support as well
[https://github.com/vuejs/babel-plugin-transform-vue-
jsx](https://github.com/vuejs/babel-plugin-transform-vue-jsx). JSX isn't a
React thing anymore. Most Virtual DOM solutions offer JSX.

Styling React components is a huge pain. What I like about Vue is the awesome
styles, HTML and js in one file for each component. With React projects I have
a completely seperate styles folder.

~~~
petilon
The documentation for view.js seems to highlight a custom syntax that cannot
be verified at compile-time: [https://vuejs.org/v2/guide/#Conditionals-and-
Loops](https://vuejs.org/v2/guide/#Conditionals-and-Loops)

If you are interested in HTML, JavaScript and Styles in one component you
really want Web Components. React and view.js support components but they are
brittle. W3 Web Components (implemented by Chrome and Safari) solve this
problem. More on that here:
[https://github.com/wisercoder/uibuilder](https://github.com/wisercoder/uibuilder)

~~~
yunyu
Vue templates are verified at compile time (don't know where you got that
from), and static analysis is planned for the future (which isn't directly
possible with JSX): [https://medium.com/@youyuxi/pretty-good-comparison-
overall-b...](https://medium.com/@youyuxi/pretty-good-comparison-overall-but-
a-few-points-id-like-to-discuss-e4f6460e75d5)

There are two distributions of Vue, one in which templates are precompiled
(this is the default and recommended build), and one bundling the runtime
template compiler. You are most likely thinking of the latter.

------
sergiotapia
After being burned really badly by Ember and Meteor, I'm probably never going
to use tools that are all-in-ones ever again.

With React I get something laser-focused, just does 1 thing well and that's
it. With Vue, I have to buy into the entire ecosystem.

I don't want to experience what I did with ember and meteor ever again in my
professional life. I think about all the great developers I've worked with and
I looked up to, and almost all of them hated all-in-ones. I rolled my eyes
when I was younger, but today it's like damn these guys had a point!

~~~
patrick_haply
Out of curiosity, how did Ember and Meteor burn you so hard and why are you so
averse to "all-in-one" tools as a result?

~~~
nine_k
A typical all-in-one framework is Ruby on Rails. It is _great_ to quickly
start a project that does basic things planned for by the framework.

But as your project grows, and you start to need special, custom things (and
you inevitably do), you understand the "Rails" part. You have to move along
the rails. This leads to a growing number of ugly hacks, just to keep the
whole thing within one framework. The problem is that you can't replace _one_
component you want different. Everything is cross-dependent, aka "integrated".

In the long term, libraries rock, and monolithic frameworks suck. But in the
beginning, the lure of a monolithic framework us strong.

~~~
abalashov
What drives me insane about Angular, both 1.x and 2.x, is the sheer amount of
idiosyncratic boilerplate required to merely get started and do things the
"framework way". It's unreal, though of course Angular 2.x takes that to a
whole new level. AngularJS could at least be written in vim without
boilerplate generators and meta-meta-meta tooling.

I suppose the thinking behind all these services, providers and factories was
that they give mediocre developers that don't really know how to program a
more common vocabulary and a set of childproof "design patterns" to grok —
that's always easier from a management perspective than giving people who
don't really know what they're doing the freedom to architect. But it just
frustrates the snot out of actual developers who just want to be left alone
and resent having to shoehorn their _entire_ application code base into some
framework's mandatory structure, by way of which there are still yet more APIs
and conventions to learn and with whose changes it is necessary to keep up ...

In this sense, Vue wins very big. It handles data binding and rendering/UI
generally, but in no way premeditates how the rest of my JS is going to work.

~~~
kthejoker2
So ... actual developers are people who don't work on teams for large scale
applications? Because what you call "childproofing" is basically the most
obvious tenets of a shared codebase.

~~~
abalashov
Sure, but there's a subtle difference between having to adhere to shared
internal conventions and structure vs. having to adopt some overly complicated
and constricting external framework's contrived conventions so that (in
theory) a few people don't drive the bus off the cliff as often.

------
sotojuan
I think there's merit on staying small-ish. Not every framework has to be a
giant that dominates the industry.

Having a small community means the potential for focus and strong canonical
learning resources, as opposed to the mess of poorly written React and Angular
posts/"guides" we get every week. The community feels tighter and it may be
easier for the maintainer(s) to manage it and the codebase.

Ember is a good example. Ember's community isn't small (sold out conferences
every year), but it's not in the spotlight like React or Angular are. That
doesn't mean the framework is doing poorly. If anything, their community and
meetups are "better" than React's (for my definitions of a good
community/meetup).

~~~
kerkeslager
You may be right about the quality of meetups, but meetup quality is a pretty
unusual metric for a JS framework's success.

~~~
sotojuan
True. At work we use React for the practical reasons explained by others in
the comments.

My point was that Vue doesn't need to be huge. It's fine the way it is and its
current size has some benefits.

------
tyrw
Having used all three, it feels like Vue.js will grow to occupy the role that
React occupies today. That, or React will (smartly) take on some of Vue's core
features like single component files with actual HTML, CSS, and JavaScript in
them. Vue is far easier to start with yet feels more powerful too. Angular 2+
is a separate animal for larger teams, so will probably remain for that use
case.

~~~
ausjke
it always amazes me how one person project such as vuejs and laravel can
compete against with the frameworks made by giants such as google and
facebook. yes there are more developers involved in vuejs and laravel now but
the two main authors are still the king to rule these two extremely popular
projects, truly amazing.

~~~
lightblade
That's also why taking on Vue is a huge risk. The project has a high bus
factor. If the main author burnt out and quit, the project is dead.

~~~
coldtea
Vue is used by huge Chinese companies, and tons of Chinese startups. It's also
adopted by Laravel, which is very popular in PHP land. It's not going anywhere
soon.

~~~
lightblade
That is the word on the street, but I have yet to see publicly visible
evidence of it. You can inspect Facebook to see React is there. You can
inspect Walmart to see React is there. You can inspect LinkedIn to find Ember
there. I have yet to see flagship product of huge companies built on Angular
or Vue. Is Alibaba.com built with Vue?

~~~
coldtea
Check [https://www.quora.com/How-popular-is-VueJS-in-the-
industry](https://www.quora.com/How-popular-is-VueJS-in-the-industry)

------
shaneos
It's a bit disingenuous to say that Facebook uses Vue for Newsfeed. It's on a
marketing site, not on a performance and business critical part of the site.

These marketing sites are very often built by contractors, not FB engineers,
and tend to be one off efforts.

Not to knock Vue, but it weakens the message when deliberately misleading info
like this is used

~~~
julianmarq
I've seen the word "disingenuous" used many, many ways over the internet.
People keep using this word, I don't think it means what most people think it
means.

Because it doesn't: "not candid or sincere, typically by pretending that one
knows less about something than one really does."

There's nothing insincere about saying that newsfeed.fb.com uses vue because
it does. It isn't pretending to know less, if it were false, it'd be
pretending to know _more_.

Disingenuous doesn't mean "I don't like that this person said x", or "I like
y, so I don't like that this person said a good thing, even if true, about x."

It's becoming a pet peeve.

~~~
shaneos
Consider me schooled, thanks :-)

------
nope123
Nope. React has 10 people in its core team, highly compensated to work on
React. There is at least one genius among those 10. Think of Fiber and how it
works. VueJS may copy that model but in this sense, as in the case with JSX,
they're a follower. They are not a thought leader. Just a sink/collector for
React haters.

~~~
scriptkiddy
Maybe you should share your opinion with Even You at the next conference you
go to and see how he takes it. Writing Vue off like this is an insult to it's
creator. Evan works really hard on maintaining and improving Vue for what
probably amounts to pennies on the dollar when compared with the money
Facebook pumps into react.

I'm not saying that you're wrong about Vue not being a "thought-leader" or
whatever, just that you really should be more appreciative of developers who
release awesome libraries under OSS licensing.

That said, being a "thought-leader" is not necessary in order to make a
difference. Software has been, is, and always will be an iterative process. We
build upon the shoulders of giants that came before us. We take the best ideas
from our predecessors and combine them to create something new and, hopefully,
better. Regardless of your opinion on the philosophical aspects of Vue, you
have to give credit to its creator and its community.

~~~
nope123
Point well taken.

------
azr79
I went Angular, because I can get a well paid job very easily, it's a very fun
Framework to work with, TypeScript is awesome, it's complete, fast and
powerful, is backed by Google and has a huge community.

Vue might be fun to work with, but it doesn't have all the advantages of
Angular (or React) I listed above.

~~~
mythz
We ship Vue.js + TypeScript + Webpack templates:
[http://docs.servicestack.net/templates-single-page-
apps](http://docs.servicestack.net/templates-single-page-apps)

Vue.js also has the nice advantage of being able to use HTML, TypeScript and
SASS within the same .vue component:

[https://github.com/ServiceStack/Templates/blob/master/src/Si...](https://github.com/ServiceStack/Templates/blob/master/src/SinglePageApps/VueApp/VueApp/src/home/Home.vue)

~~~
mythz
Vue.js is simpler and complete with integrated well-documented core components
that's much faster than Angular.

Vue being stewarded by Benevolent Dictator is why it has an elegant design
that's more pleasurable to use. Angular2+ has morphed into another design by
committee complex monstrosity requiring much more code, conceptual and
cognitive overhead to achieve the same result.

------
Tade0
Everything has already been said in the article, but there's one thing that
makes Vue stand out the most: The author(s) are really focused on _keeping_
this framework's API simple and getting rid of/deprecating stuff that doesn't
promote productivity.

~~~
k__
How is this different from React?

~~~
Tade0
React is much more verbose and thus unnecessarily complicated. Case in point:
TODO MVC done in Vuex vs Redux.

~~~
k__
Redux isn't React.

------
AngeloAnolin
Tried Angular, ReactJS and VueJS and to me, they have their own strengths, but
all are more than capable as frameworks for building large and solid
enterprise level apps. IMO, productivity and simplicity has Vue winning my
preference.

Reading the article, I was surprised at this part:

"Wait, did I just write Facebook? Check Facebook’s newsfeed."

I did checked facebook's newsfeed and certainly, the Vue Devtools lit up on my
Chrome browser, which detected VueJS being used on that page. Given that FB
has heavily leaned on React, I wonder why they would be using Vue on one of
their premiere pages? Is it because they are also trying to analyze what's
being offered by Vue and integrate it with React in the future?

~~~
shaneos
As other comments here and on the post itself point out, that page which is a
marketing site "about" news feed, not actually News feed, was built by
contractors with zero knowledge or involvement by Facebook engineering. The
reason given was that they had an engineer familiar with Vue and none with
React experience

------
colbyh
for what it's worth I will say that writing components in Vue is enjoyable in
the way that React was initially. the two are definitely more similar than
either is to Angular, but I find Vue slightly more easy to get started with
(no JSX overhead). JSX is far more powerful than simple HTML templates but I
rarely find myself needing that power.

~~~
munchor
As a reminder, you don't have to use JSX to use React. JSX is just a wrapper
that makes it more elegant but you can just use the React API to create and
declare element structures.

~~~
colbyh
totally! but the pure JS syntax is pretty rough (IMO) and I was simply
comparing their "default" templating languages, since most people will
probably start with them.

I love react and have always been super impressed with the ecosystem FB
created - just wanted to give Vue credit for being an enjoyable framework.

------
dqvsra
Facebook news feed always crashing after sometimes of scrolling on mobile
devices. The whole version of mobile web Facebook looks terrible, old fashion,
completely awful ui\ux. This is a result of working framework. Try to compare
it with another social networks like VK.com which is extrimely stable on
mobile devices (both desktop and mobile version), very fast and user friendly.

------
enkay
It's the best parts of Angular and React in one framework. I don't know why
you'd want to use anything else.

~~~
k__
What are the good parts of Angular that are in Vue?

~~~
enkay
[https://vuejs.org/v2/guide/comparison.html#AngularJS-
Angular...](https://vuejs.org/v2/guide/comparison.html#AngularJS-Angular-1)

------
luord
While I don't mind if Vue stays small (as in, just used enough to keep
momentum), I'd love it if it became more popular. It's truly a joy to work
with.

Angular was the first framework I used, and I liked working with it well
enough, even if I wasn't a big fan of many of its idiosyncrasies. But then
Google announced they were going in an entirely different direction so I
decided to try new things.

I tried liking react (gods, I tried, many, many times) but I just can't like
how the code looks when using it or the structure it ends up forming, or the
boilerplate it requires.

Vue, however, feels like doing plain JS, which I actually like[1], as each
component is rarely more than a few objects and functions. Well, that and html
templates, which I'm fine with and would have to use anyway as a backend
developer.

[1]: JS has always been my second favorite language, after python, and the new
versions are just so nice to write.

------
isaaclyman
This is a valuable discussion to me right now. At work I've been tasked with
looking into a number of front end frameworks (Angular 4, React, Vue, Aurelia
and Mithril) to see if we'd like to start writing new pages and components in
one of those as opposed to AngularJS which we currently use. AngularJS has a
few specific pain points for our web app, a complex and (unfortunately)
ambitious SPA.

I'm building a prototype of one of our actual landing pages in each framework
to get a bird's-eye view of what works and what doesn't. So far I've been
really impressed with Vue, but my team has a couple of objections from the
outset:

1) Most mid-level developers haven't heard of or used Vue, so the pool of
candidates we can hire as our company grows will be smaller if we switch from
a common denominator like AngularJS to something relatively unknown like Vue.
I personally love to learn new tech, but not everyone does and a "Vue
developer" job posting may not get a lot of hits.

Then again, if (e.g.) 15% of devs want to use Vue and only 10% of companies
use it, that's a clear advantage over 75% of devs wanting to use Angular and
80% of companies using it. I wouldn't be surprised if the numbers worked out
like that.

2) Vue is kind of a one-man band, whereas Angular and React are backed by
large cap companies. This is the weaker argument IMO, since there's no law
stating that Google and Facebook can't run up on hard times and decide to drop
support for their open source projects. And after seeing how sloppy Angular's
documentation is, I've lost a lot of confidence in the "bigger is better"
argument. However, in a rational universe, it may be fair to say that Vue
would die more easily than Angular would.

My view on the situation is that it's better to use the right tool for the job
and have less developers/support than to use the wrong tool for the job and
have more developers/support. But I'm more technically-minded than business-
minded, so I understand that I might need to be open to business concerns
outside of my normal decision-making criteria.

I'm keeping detailed notes as I compare frameworks, so I may do a write-up
when I'm done if anyone's interested. (Although the "battle of the frameworks"
genre has been done to death...)

~~~
abalashov
Re: the first point -- the counterpoint in my eyes would be that that hiring
devs for any particular framework experience might be a losing battle, given
the insane life cycles of front-end JS technology.

In web development more than anything else, the chances are higher that
whatever keyword you hire for will be sidelined in 1-2 years. Even compared to
other fast-moving tech niches, the web front-end arena is a batshit insane
ADHD chipmunk in this regard. A DBA or a networking guy's current keywords are
going to have at least five years of shelf life in some fashion. You can't
count on those kinds of lifespans in the web world anyway. Yes, I also think
that's ridiculous.

And so, "all-around competent JS developer experienced in a variety of
frameworks and tools" might be the only viable hiring selector here.

Also, the barriers to entry to Vue are much lower. The simplicity is one of
the main selling points. I'm not even a web developer by trade, but I picked
up most of the essentials in a day or two. Admittedly, I did have a [kind of
amateur] AngularJS background, which made that process much simpler, but I
gather a React background equally predisposes one to rapid assimilation of
Vue.

------
amelius
Don't forget about others, such as Preact [1]

[1] [https://github.com/developit/preact](https://github.com/developit/preact)

~~~
lioeters
I am a fan of this "small (and focused) is beautiful" approach, like yo-yo
[0], hyperHTML [1], and numerous others.

The thing that sold me on Preact is its compatibility layer with React, which
provides a kind of de facto standard API for components. One day I just
replaced React with Preact, with the only difference being a happily reduced
app size - and have been using it since. I don't plan to keep up with React's
latest developments - I'm satisfied with the rendering performance of Preact,
and want to stick to a stable API which lets me focus on actually building
things with it.

I feel the same about client-side routers, the build process with Webpack,
etc. - I'm fatigued of keeping up with breaking changes, and have started
transitioning to smaller, individual libraries that just do their modular
jobs, with minimum API surfaces that are reliable over long-term.

[0] [https://github.com/maxogden/yo-yo](https://github.com/maxogden/yo-yo) [1]
[https://github.com/WebReflection/hyperHTML](https://github.com/WebReflection/hyperHTML)

------
peter_retief
I hope so, its really easy to use, anyway it has my vote

------
nickthemagicman
The only advantage React has is a huge backer..Facebook.

So large companies are more open to using it because it's less risk and has
higher chance of being around in 5 years than a framework without a huge
backer.

That's my theory on how 'biz' people make I.T. decisions.

~~~
barrkel
Another aspect is lower ramp up time for hiring new developers, and easier
convincing developers to come on board where they'll learn / use a growing
technology rather than some oddball niche thing.

They're solid, non-arbitrary reasons. Given a choice between the most common
tech on the market and a niche offering, you need to have a good reason to
choose the niche offering, because it comes with real downsides to a
development team (as opposed to an individual developer).

~~~
abalashov
Yeah, but the simplicity of Vue is one of the main selling points.

I'm not a web developer at all by trade, but it took me only 1-2 days to pick
up the essentials of Vue. That's not because I'm brilliant, it's because the
barriers to entry really are that low. It's _simple_. They've nailed that part
well, and it's a very seductive differentiator in a JS front-end world that
just keeps getting more and more Byzantine.

Admittedly, I did have some Angular 1.x background, but it was really just
dabbling in the grand scheme of things. And I gather that a React background
is equally advantageous in picking up Vue.

More generally, given the insane ADHD pace at which front-end web technology
moves, I'm not sure hiring developers for any particular framework experience
is viable. People sometimes say that about tech hiring in general, and I don't
necessarily agree, but web front-end work is really the one area where I think
it holds true and you just have to hire competent JS developers experienced
with a variety of tools and frameworks in general. There's just no telling how
different the landscape will be in 1-2 years.

------
SilverSlash
I've not used Vue or Angular, but I love React. It feels almost object
oriented programming like - kind of like programming in Java. Correct me if
I'm wrong (I'm new to web dev).

------
davedx
Ok I'll bite. What is the equivalent of redux-form in vue.js?

~~~
cjalmeida
You don't need such thing in Vue. It has two way data binding for input
components.

(The implementation is quite clever. Very similar to React in nature but with
less boilerplate.)

------
mstijak
I feel that the biggest advantage of Vue over React is that it's
incrementally-adoptable. It's small and lightweight and fits nicely
everywhere.

Preact offers a similar experience.

------
snappyTertle
React will continue to dominate thanks to react native. Neither Angular or
Vue.js has a solution for mobile as nice as react native, at least as far as I
know.

~~~
michaelkrupp
You might want to have a look at Weex, aka "vue native":
[https://weex.incubator.apache.org/](https://weex.incubator.apache.org/)

~~~
yunyu
Also nativescript: [https://www.nativescript.org/blog/a-new-vue-for-
nativescript](https://www.nativescript.org/blog/a-new-vue-for-nativescript)

------
k__
React isn't just a web framework like Angular or Vue AND the company creating
it uses it for its main product.

So React doesn't compare to any of the others.

------
gressquel
Since when is React in the same bracket as AngularJS? Vue is on par with React
but still far to go before its as big as Angular

------
crb002
#JQuery4Ever

Webassembly needs it's own UNIX. A simple abstraction library for browser IO
that scales.

------
burntrelish1273
Statamic uses Vue.

------
abalashov
Upvote if you're still using Vue in 2017! /s

~~~
abalashov
All right, it seems HN did not appreciate my joke about the life-cycle of
front-end JS frameworks.

