Hacker News new | ask | show | jobs
by pluma 3867 days ago
> React will stick around because it's backed by Facebook and if Facebook says this is the way to go with front-end development then that is all the convincing most folks need.

Not just that. Facebook uses it for their flagship website (and as React Native for their mobile apps). So does Instagram. So does Netflix. If you have the React developer tools installed you can literally go to facebook.com or netflix.com and see them using React.

Angular in turn can't really namedrop use cases like these. Yes, Google uses it somewhere in their ad manager, YouTube uses it in their video manager, Amazon uses it for something -- these are big names too, but the use cases aren't nearly as impressive and they're not as integral to the relative companies' core business. Google (who is backing Angular) doesn't have nearly as much skin in the game as Facebook (who is backing React).

The difference between React and FRP in turn is that React simply builds on well-understood ideas that already exist in mainstream front-end programming: modular components and one-way data flow. You don't need a CS degree to understand the benefits of having your views not directly manipulate your state.

FRP isn't bad. It's just that React is good enough, which is what really matters at the end of the day.

2 comments

> Google (who is backing Angular) doesn't have nearly as much skin in the game as Facebook (who is backing React).

Excellent point. Here's another "smell" with angular: http://angularjs.org versus https://angular.io/. The former is AngularJS 2.0 and the latter is AngularJS 1.0... they maintain two websites for two versions of the same framework.

It boggles my mind.

Who thought it would be a good idea to separate versions of the framework onto two different domain names? While they're still owned by the same company? Why? Unfortunately, the only sensible answer that comes to mind is "AngularJS 1.0 was such a colossal, terrible mistake that we need to move away from it not just from a code perspective, but from a marketing perspective as well."

Normally, I avoid framework/language wars but I had ( and will soon again have ) the misfortune of developing in Angular. Consulting out-of-date documentation on their quick-and-dirty bootstrap site, fervently wishing that the devs didn't rage-delete the comments section which corrected the incorrect documentation... yuck.

We were over the moon about Angular in 2014, but it quickly showed its failings as we got a bit deeper in. 2 way data binding is just precarious. But the thing that really killed me on the whole idea is how TERRIBLE it is as a user of Doubleclick Bid Manager. It is SO impossibly slow that it is practically unusable on a laptop with 4GB Ram and an i5. For a few months we could only actually upload ads to the system if we used OPERA!! If their shining star UI that gives Google about a billion dollars in revenue a month is this bad, we asked ourselves "why we should try to emulate it?"
I feel your pain. I was making a case primarily from a marketing/community perspective, but the code and its ( lack of ) organization speaks for itself as well.
The reason is because Angular 2 merges Angular Dart and AngularJS into one framework.

Can't say I have first hand knowledge, but I have heard that Angular dominates internally at Google.

UI Bootstrap is also separate from Angular (if that is what is meant by quick-and-dirty bootstrap site) - I am currently the lead developer of the project, and not once in my tenure have I deleted any comments, and I know of no instance since I joined in March this year of anyone doing so. The documentation certainly can use work, but we are unfortunately strapped for resources with not much quality work coming from outside the team. File issues if you have problems, but otherwise, I can only say that usually the team responds correctly, and it is usually immaturity on the reporters' side that is the issue we have observed.

I think the jab at the "quick-and-dirty bootstrap site" was about the Angular docs (which seem to use bootstrap or at least look that way), not the UI Bootstrap project.
I'll engage because I'd like to get to the bottom of this.

> The reason is because Angular 2 merges Angular Dart and AngularJS into one framework.

One technical reason for a seismic marketing change does not inspire confidence. Is Angular, Angular JS 2.0? Is AngularJS, AngularJS 1.0? Incoherency at the starting gate will not win new converts.

> Can't say I have first hand knowledge, but I have heard that Angular dominates internally at Google.

Company wide usage is fine; the real test is in production outside of the company. Unfair, but if the framework wants to dominate the front-end, then that is its lot in life. FB probably realized how fast that moving goal post would be and resolved limit their scope with React.

> UI Bootstrap is also separate from Angular

It's not the Bootstrap that is bad, but how they use it. At the time in 2013 (and even now) the presentation of the Angular website is pretty ugly. Yes, there are coders who don't care for little UI flourishes. Yes, a pretty framework with bad code is still a bad framework. Yet, when comparing AngularJS's website with competitors like React or Ember or even Backbone, it seems their developers care more for making their software look good. Design as a lagging indicator of quality, perhaps.

> I am currently the lead developer of the project, and not once in my tenure have I deleted any comments

You probably joined after this debacle. Strange that you don't know about it:

http://angularjs.blogspot.com/2013/11/farewell-disqus.html

The reason for removing all the comment threads was ostensibly for easing concerns of moderation. Yet, interestingly, the documentation was not updated for several months after the comments removal. This means that, for several months, all the fixes, suggestions, and the like were no longer viewable for the current version of AngularJS. The solution put forward by the developers for this long interim was to... use Stackoverflow.

Needless to say, Angular users were less than enthused. That the devs didn't seem to engage with the community before or after regarding the sudden change, made me question a number of things about the project.

Sorry, I was mistaken on the bootstrap comment - UI Bootstrap is separate from Angular and has little affiliation with Google other than the creator of the project being a part of the core Angular team.

I can't speak to the online interactions as to the comments, but I do recall the comments being outdated and not useful in a bunch of cases.

The Angular team is very professional and pleasant to interact with in my experience though. Igor once told me that open source is hard - I was skeptical at first, but being in charge of a major project myself now, I wholeheartedly agree. It is challenging to keep development going at a good clip, manage the team, and satisfy developers using the product, who are a ruthless bunch.

> Can't say I have first hand knowledge, but I have heard that Angular dominates internally at Google.

Yes, Angular is better than Closure, the politically acceptable alternative for Google-internal.

We use UI Bootstrap heavily on roadster.com and have been very happy, albeit with some customization. I hear your pain about outside contributors to OSS but am excited you're keeping up the great work.
You just blew my mind. Thanks for the heads up about the dual websites... would never have found that in a million years.
The new Grubhub UI is built around Angular... and it shows around the edges in the types of quirkiness and bugs that show up around state/workflow. I don't fault the devs ag grubhub for this, but the types of problems I typically see around Angular are pretty typical.

Personally, I really appreciate React+Redux... it seems to be the distillation of a lot of ideas. Also, good or bad, React has actually removed features in support of a better project/application workflow. That doesn't even get into how goofy I feel that Angular's DI system is (better in 2, but not good).

React has embraced the larger JS/npm community/tools and Angular seems to be actively fighting against it.

React killed their JSX transpiler after Babel added support for JSX. Angular merely merged AtScript into TypeScript.

React had CommonJS module support from the get go. Angular1 was incredibly awkward to use with a real module system, Angular2 is only marginally better.

Ugh.