6 ms·
Why is Angular so less popular than React?
by qwerty456127 7y ago
Why is Angular so less popular than React?
- vips7L 7y agoProbably because its a larger learning curve and its a lot more "framework".
- treeman79 7y agoSaw a 2 man team that got features done in a couple of weeks on jquery move to angular and turn into a 15 man team that took months on each feature. Management was very happy with how modern the stack felt Sales came to a halt for 2 years since features came to a halt. Turns out Angular is freaky hard to do right.
- runawaybottle 7y agoI can believe this
- 1123581321 7y agoA family member works at a software company that’s worth ~100MM less than it should be right now because they let Angular get into too much of their app before they settled on Vue.
- jcheng 7y agoWas this AngularJS (i.e. Angular 1) or Angular 2+? I could believe it either way, just curious.
- treeman79 7y agoAngular 5-7
- rtpg 7y agoon the other side, we went from jquery messes with a bunch of state machine issues to being able to comfortably add client-side interactivity with a lot less worries when moving to Angular 1.x There were definitely Angular-related issues, but they were replacing a lot of "my state machine is out of sync" issues that just scopes and watching mostly solve (except for the prototype inheritence gotcha)
- blahyawnblah 7y agoMy old company did the jquery to angular conversion when angular was still alpha. Initial curve was steep because no one was used to doing things that way. After that we were just as quick if not a little quicker. I did a pretty big angular 2 e-commerce site from scratch by myself in 6 months shortly after angular 2 came out. Just use the framework how it's supposed to be used and it all works fine.
- vips7L 7y agoMy company is in the process of jQuery to React transition. It feels like it's taking a little longer as well.
- fxtentacle 7y agoI rebuilt my company's homepage and SaaS customer area from scratch in half a year, after the old 20 people jQuery team had been stuck for months implementing framework-like features with no useful progress. I guess whether or not you'll be productive with Angular depends a lot on your experience and expectations. I come from the C++ world and Angular felt like MFC, so oddly familiar.
- turbostyler 7y agoBecause of the whole debacle between Angular 1 and 2. During that time, React gained a huge foothold, and the momentum has continued to today.
- ng12 7y agoThat's part of it but to be honest if they hadn't Angular would have died completely.
- drspacemonkey 7y agoMy guess is that the whole AngularJS/Angular2 fiasco really soured a lot of people on going anywhere near anything named Angular for a long time.
- deleted 7y ago[deleted]
- waylandsmithers 7y agoFor me, I was first getting into web development before Angular 2 was out. I thought it was super cool that I could make an incrementing counter and a to do list but just couldn't figure it all out. I then tried React and it just kind of made sense. Since then from the sidelines I've heard Angular has gotten much better but personally don't see any reason to use anything other than React at this point in time.
- city41 7y agoI’m also starting to feel like if anything will dethrone React, it’ll probably be Vue or Svelte.
- deleted 7y ago[deleted]
- plopz 7y agoI think Vue's reactivity system just fundamentally doesn't work which is why Vue 3 is basically an entirely new paradigm/framework trying to masquerade as an update. I have a feeling its going to split the community and end the way angular did. I haven't used Svelte at all but it looks very interesting.
- pacala 7y agoAngular: Learn about property binding, event binding, pipes, templates, views, metadata, attribute directives, structural directives, services, modules, components, injectors. React: Write a function that generates a piece of HTML. Use standard event handlers to manage user interactions. Update state via setState methods. Ship it.
- hokumguru 7y agoAnd honestly, if misused you can really tank performance quite easily. The learning curve can make it incredibly difficult to introduce to a team of developers with variable skillsets.
- fmakunbound 7y agoHaving suffered on a large Angular code based on Angular 7 and then Angular 8 for a couple of years, I just wish Angular would fucking die. Every small thing is a giant shit-pile of services, components and HTML templates that are all accidental complexity.
- deleted 7y ago[deleted]
- ng12 7y agoThe first time I saw this in Angular's material implementation I was completely floored: https://material.angular.io/components/dialog/overview#sharing-data-with-the-dialog-component- https://material.angular.io/components/dialog/overview#shari... The method for passing data to a dialog component is to import a magic constant and inject a data field into it's constructor? It's a completely over-engineered, nonsensical solution for a problem that doesn't even exist in React. There's so much stuff you have to be familiar with in Angular just to build the simplest features.
- EugeneOZ 7y agoDon't use this library as an example of Angular code. I've written dozens of Angular apps and none of them were so over-engineered. AngularMaterial is a good example how to not design API. I'm sorry if it insults some people - we all make mistakes, it's ok, I'm sure you'll next library will be better and I understand it's too late to change API in a project, when some huge Google apps are using it.
- kroltan 7y agoI am in no way the whole crowd, but having used both legacy AngularJS, React, and Angular 4+ in production for medium-sized apps, this is my main takeaway: The mental model for React is much simpler than Angular's. In React, There are two concepts one needs to understand: Components, and Hooks. JSX too, but as a web dev the HTML-like syntax was already familiar. In Angular, you need to understand: the binding syntax; Components; Templates; Factories; Modules and Services. And learning bindings also means learning RxJS (which I love as a standalone lib, but is a big cognitive load when coupled with the rest of ng). Even just comparing the "Fundamentals" page of Angular versus the "Main Concepts" of React (which, isn't exactly the best measure of complexity, of course, but it's A measure), you can see Angular spends 8 of its 10 sub-sections explaining essentially-required concepts, while in React it uses 6 out of 12 sub-sections. React is much more concise in terms of concepts, and instead just has a bunch of common patterns that are sufficiently approachable and memorable, but most importantly can be "rediscovered"/"derived" on your own, rather than relying on framework-provided "black box" concepts.
- brailsafe 7y agoI think that's pretty well correct, but my preference has been the opposite in terms of more concepts vs cognitive complexity. I find that to do the same stuff with react and redux and so on, you end up decoupling and abstracting in such a way that the 5 or concepts in something like Angular or Vue end up being a more manageable mental model. In the sense that the main purpose of React is lost in the weeds of trying to managing the modularity of your app.
- kroltan 7y agoI have found good success with React + RxJS, in fact. They have some overlap, but with the benefit of interop outside React, and Rx is excellent at both message-passing-style events, as well as general-purpose "data binding". And the total load is still in my perspective smaller than Angular. I have never even casually used Vue (I've since switched to gamedev as a profession), so I cannot comment on it, but from a cursory on its docs, it seems like a leaner Angular, which is good.
- fallensatan 7y agoI think learning curve for Angular is steep compared to React. For React, all I need to know is javascript and I can start writing components but for Angular, I must go through some documentation to get basic idea of jargon it preaches before I can do anything substantial. Not saying one is better than other but in my opinion, entry barrier for React is lower than Angular which may be an important factor for React's popularity.
- flukus 7y ago9 major versions in ~7 years indicates that it's not remotely stable enough to be taken seriously, particularly for corporate stuff that will likely never get an upgrade. Even the "LTS" releases are only supported for 18 months. React seems a bit better, but they don't seem to support older releases at all.
- deleted 7y ago[deleted]
- hmcdona1 7y agoThis couldn't be more wrong. The team does a great job handling upgrade paths post 2.0. First off, Angular versions post 2.0 are nothing like AngularJS/1.x -> Angular/2.0. They are much more incremental and even the two times the entire renderer has been re-written it was an incredibly gradual process over multiple major versions with seemingly few changes to component and template APIs. Second, upgrading between Angular versions couldn't be easier thanks to angular schematics. The process takes seconds and for specific rarer exceptions the team maintains this fantastic guide here: https://update.angular.io/ https://update.angular.io/
- flukus 7y ago> This couldn't be more wrong. The team does a great job handling upgrade paths post 2.0. The problem isn't how it's handled or how incremental it is, it's that there are so many upgrades with breaking changes, at least that's what they're communicating to me with their version numbers. There's also the lack of any real LTS versions I mentioned, 18 months doesn't cut it. > They are much more incremental and even the two times the entire renderer has been re-written Telling me that they've rewritten major components that frequently isn't exactly convincing me of the stability, its validates my previous belief that it isn't stable enough. When they've got versions that are supported for 5+ years post release I'd consider it stable. It doesn't matter how good your upgrade guide is when you run into a bug or limitation with the current version and realize that you have to upgrade the entire framework and deal with all the breaking changes to get around it. Compare that to react where you've got at least 3 years (assuming they follow semver) between breaking changes.
- grok22 7y agoI am working on creating a web app now and for some reason decided to learn Dart and AngularDart at the same and do it with these technologies and it's close to being nightmarish. There are way too many concepts and things that tie together sort-of magically -- all to get a few form fields on a screen. I wonder how people come back to fix issues or add features in their Angular app after a few months away from it. That said, I think, for bigger groups/companies working on a complex product, I can see that Angular ensures a certain level of "architecture" and code organized correctly instead of being coded to each dev's personal style. But way too complex for single-person apps or for simple SPAs. All that to say Angular is less popular because it is too complex to learn and use quickly.
- qwerty456127 7y ago> decided to learn Dart and AngularDart Why use anything but Flutter if you choose Dart?
- grok22 7y agoFlutter is not yet approved for web application development, isn't it? In any case, just experimenting and learning new things.
- ChicagoDave 7y agoOpinionated (professionally engineered structure) vs. Simple template system. There’s no good or bad. As in any architectural adoption, it should’ve based on your team’s capabilities and support capabilities. Experience matters too. There are good reasons to use either platform.
- qwerty456127 7y agoDoesn't opinionated and professionally engineered structure mean "better"? Clearly most of the JS coders don't have expertise sufficient to engineer their structures professionally on their own - isn't it better to embrace a professionally engineered structure done for you for free?
- mateuszf 7y ago> Doesn't opinionated and professionally engineered structure mean "better"? No, if it's overengineered.
- ChicagoDave 7y agoIf you have a corporate web app the connects to dozens of secure services, an opinionated framework specifically designed to manage that well is not “over engineered”. Conversely, if your web app has one api to call, you may find an opinionated framework to be a rocket engine where only a lawn mower engine is required.
- ChicagoDave 7y agoNo. It means suitable to larger complex systems. Possibly unnecessary for smaller projects.
- strangescript 7y agoIts just a lot more complicated and opinionated than it needs to be when there are plenty of alternatives that do the same thing much easier.
- kabes 7y agoI've used both for non-trivial apps. I find angular heavily over-engineered. The problem is not just the learning curve, but the fact it becomes almost impossible to do anything the framework authors didn't envisage. React is just plain functions so you can do whatever you want, it never got in my way. Now, if angular would prove substantially better in terms of performance or maintainability or so, that might've been ok. But they're not. Performance is on par, I find refactorings actually harder because of the heaps of boilerplate angular requires, etc. They invented way too complex solutions to solve problems that either don't exist, or other frameworks solved better.
- kumarvvr 7y agoI am curious. I have never used Angular or React seriously. But I have an upcoming project where I have to use an external HTML Canvas library. Would you suggest I go with Angular or React? It's a fairly complex project, involving user based label designs, data manipulation, etc. I am API based server and a heavyweight front-end.
- jb300 7y agoHave used Angular2 since alpha for a big project. Switched to React + Typescript for the next project. In my opinion React + Typescript is the way to go, especially if you'll use external libraries.
- kabes 7y agoReact and angular basically both do the same thing: render a component tree to (usually) the DOM. You use a framework to make this easier for you and I think react does that way better. But if it's all about raw data manipulation and using that canvas lib, you may not need either? Never used it myself, but the guys from Flipboard made this react canvas renderer which might be useful for you: https://github.com/Flipboard/react-canvas https://github.com/Flipboard/react-canvas
- zaphirplane 7y agoThat is an unfair comparison a fairer one is react + redux + hooks + middleware thunk + routing vs angular. You are still probably right in what is simpler. Just angular is kind of the kitchen sink option
- pjmlp 7y agoDepends on which circles you move on. Enterprise Java and .NET shops usually reach out for Angular first. And I have no intentions to ever advise React with its FP approach with a myriad of endless libraries, to devs that just want to get stuff done.
- mattlondon 7y agoI have not done much react apart from a "hello world", but I have been using Angular2+ for years, having previously used AngularJS. Here are a few thoughts: The learning curve is steep I agree. There does feel like there is a lot of ceremony and boilerplate required for even the more basic "hello world". Also if you are not familiar with RxJS before learning Angular then that is a second learning curve that you need to know too and it is a challenge. The docs are also very frustrating: - the API reference is usually just auto-generated with perhaps a single sentence saying "The FooBarDooDad does foo to bar" with zero other content, e.g. https://angular.io/api/core/Query https://angular.io/api/core/Query - the tutorial guides are absolutely huge epic documents, scrolling screen after screen after screen after screen and are far too long and far too convoluted to be useful in my opinion. It feels like they are several entire chapters lifted from a printed book or something, rather than something useful for a developer trying to implement something. E.g. https://angular.io/tutorial/toh-pt6 https://angular.io/tutorial/toh-pt6 (and that is just part 6!) I've been doing this for years and I still hate having to go back to those docs. - the tutorials are all talking about some "Heros" app that I have no idea what it is or what it is doing. I wish they just had examples for the simplest-possible case in stackblitz-widgets that does not need me to know the ins-and-outs of their sample app. That said, once you are up and running with Angular I have found it is very easy to use, and RxJS is really nice once you get your head around it. Everything works largely as expected, and you can more or less forget about Angular and concentrate on the logic. As far as boilerplate goes, I have found that once you have done the boilerplate once, you just copy-paste from one file to another then do a search-replace for the name etc - takes perhaps 10 seconds etc before you are writing logic. I would like the Angular team to add some sort of "official" state management feature though in the future. In my view, it is the biggest missing gap in the library and you either have to use NgRX as a separate library, or have to botch a global app state by using either a Service or a convoluted @Input/@Output chain
- qwerty456127 7y ago> Also if you are not familiar with RxJS before learning Angular then that is a second learning curve that you need to know too and it is a challenge. You are not the only one mentioning this here. Do you believe it's wise to start with learning RxJS before you even approach Angular if you are a VanillaJS/JQuery "dinosaur" looking forward to learn Angular?
- tablethnuser 7y agoBecause a bunch of college kids and bootcampers only learned React and are afraid of the job market spotlight moving on from where they're standing. Popularity is not a useful metric when evaluating frameworks. Community engagement and core team motivation are, and some people may use popularity as a proxy for those measurements.