6 ms·
I realize a lot of companies flocked to Angular and it's used in a lot of places, but from the outside it seems to be fighting on two fronts. 1. Companies curr
by jalami 10y ago
I realize a lot of companies flocked to Angular and it's used in a lot of places, but from the outside it seems to be fighting on two fronts.
1. Companies currently implementing it not wanting it to change or for there to be a quick and painless migration from 1.x to 2.x. So, less change, more hand-holding. The web changed a lot though, so its change is understandable.
2. Trendsetters and upcoming companies looking for something new fresh and solid: Framework competition from React and the like. Maybe that second group is a lot louder in certain circles, startup-y hackernews being one, but it sounds like Angular will eventually reside in the shadow of React if it stays that way for long. Google pulling the plug on things fairly commonly doesn't help with the uncertainty.
Just seems like anytime Angular comes up in conversation, React isn't far behind. This post is no exception I guess, I just can't see Google maintaining Angular if it becomes Dojo in the eyes of developers.
- ihsw 10y agoAs someone that works for a #1 company, I am living that anxiety. We all know it will be inevitable, and we all know it will be hell rewriting it. If it's more than copy-pasta then I doubt it will be received well. And #2 is spot on -- React is eating Angular's lunch. I'd love to use it at work but I can't, and I don't think I'm the only one.
- qaq 10y agoJust out of curiosity what exactly can you do with React that you can't with Angular 2?
- andrewflnr 10y agoReact lets you summarize your framework in a single sentence: make your UI a pure function of your model, but keep performance. OTOH, I still don't understand what the deal with Angular is.
- qaq 10y agoThat's sounds great but it does not really play out in a real world if you need to animate transitions to make UI look nice for example.
- apsurd 10y agoI disagree. CSS animations work very well and offer better performance. You can maintain the animation lifecycle by the React lifecycle callbacks and use of setTimeout
- qaq 10y agoCSS animations do not work when you need to morph distinct components in complex coordinated manner. They are significantly slower then velocity js. Doing things available with quality solutions such as Ember liquid-fire are simply not possible.
- madeofpalk 10y agoAnimations work really well with React! The Animated library (originally from React Native) gives you some pretty basic but powerful primitives to build whatever animation you need.
- qaq 10y agoOn route transition you want to animate morphing unrelated components between before transition components and after transition components. You will not be able to do this in functional manner. You will not be able to do this with CSS animations. Example of how this is done with Ember liquid fire. https://www.youtube.com/watch?v=vq_BcIFM8Rc https://www.youtube.com/watch?v=vq_BcIFM8Rc
- narrator 10y agoAngular is an ORM for the DOM. With an ORM it's: "here's my model, figure out what to do to the database". With Angular it's "here's my model, figure out what to do to the DOM". Some people hate ORMs because there's too much magic, other's like them because they let one think about other parts of the app more.
- mateuszf 10y agoReact with redux allows to write most of the code in a purely functional / no side effects manner, which makes testing code almost a joy.
- qaq 10y agoYou can use Redux with almost anything including Angular 2. The purely functional manner is only an option if you Ok with providing subpar user experience (need to provide quality cross component animated transition that no side effects functional thing goes out of the window really fast). Given modern tooling the testing point is also a bit overstated.
- mateuszf 10y agoWhat exactly do you mean? What is better then having a reliable, easy to write unit tests which cover most of the logic and run very fast?
- crucialfelix 10y agoI've used flux and redux in angular for years. You can write purely functional directives. Angular is much more than just a view library. I've built quite a bit in both react and angular.
- jbergens 10y agoThat's nice but then you don't have the "angular is the standard and I don't have to choose anything" advantage anymore.
- crucialfelix 10y agoBut my code is more flexible, less dependent on the framework it's deployed in. So I can more easily survive things like "migrate to ng2"
- jaequery 10y agoAnd there will be something that will eat React's lunch soon too, just a matter of time.
- rk06 10y agoReact is not the only competitor either. Aurelia and Vue are there to make up for react's problems.
- executesorder66 10y agoMithril is also a pretty good competitor. http://mithril.js.org/ http://mithril.js.org/
- admnor 10y agoReact is not "eating Angular's lunch". The only reason it seems that way is that it is impossible to have a conversation about Angular on the internet without a horde of React zealots turning up and banging on about it. Recommending React to somebody who's considering Angular is like recommending tyres to somebody who's shopping for a car.
- k__ 10y agoI have the feeling they're both just for a different crowd.
- zxcvcxz 10y agoReact is eating Angulars lunch when you look at the amount of large enterprises that choose react over Angular. Part of the problem with Angular that no one seems to care about is that Angular 2 was such a big change from Angular 1 it forced companies that depended on Angular 1 to do a complete re-write. I was an Angular 1 dev and Angular 2 caused me to abandon Angular altogether. Angular also adds more abstractions on top of JS which is unnecessary and can cause unexpected behavior when transpiled.
- Bahamut 10y agoAngular is still a lot more prevalent than React in most of the world. A lot of the big companies using React also use Angular - it's not so simple. Most companies are doing the responsible thing and holding off on worrying about migration until Angular 2 stabilizes more. Even if one wanted to do a complete rewrite due to poor Angular 1 app code, one can then evaluate all options from scratch and choose the best option for their app. Every library adds abstractions on top of JS - React is no different with your complaint of unexpected behavior. This reads as an overly emotional post without applying engineering - "this sounds too hard so I'll just run away to another solution" is the vibe I get.
- zkhalique 10y agoReact is just about dirty-checking the view, while Angular dirty-checks the model. I mean, seriously, that's the main difference conceptually. You just modify some data structure and both frameworks will update some view.
- kansface 10y agoAngular embraces two way data binding while React does everything humanly possible to avoid it. I will also point out that Angular essentially re-implements JavaScript in the form of extensions to html. EG, if you want to iterate over something in React, you use map while Angular makes use of ng-repeat.
- cowkingdeluxe 10y agoI've found that using :: to disable two-way binding where needed and using 'track by $index' in ng-repeat removes both of those performance concerns (in my usage).
- zxv 10y agoI was surprised to find that Angular has a limited duration time window during which changes will update the view. In my case, symptoms were observed only after deployment, for user who had a high latency connection between their browser and the server. One could mitigate this by calling $scope.$apply() after every change. But if you have to apply() all changes, then what's the point of having angular handle synchronization?
- zkhalique 10y agoIn our platform, we just let the developer call a function manually after updating the state of a tool. So it is event-driven reactive changes. Yes, shockingly, we don't save those keystrokes, but we also don't have the elaborate dirty checking. The developer of a component is extremely likely to make sure during development that the update to a state has updated the view. Of course, you could just hook up React or VDOM or mirthril and it's totally complementary to what we do.
- deleted 10y ago[deleted]
- craigvn 10y agoIt is the million dollar question. If you are building a large product with an expected life of 10+ years, can you trust Angular to still be maintained?
- aplummer 10y agoCan you trust the web as we know it to exist in 10+ years?
- randiantech 10y agoI cant recall a single UI library / framework (with the solely exception of Jquery) to be mantained that much. In less than 5 years VR, AR will probably be mainstream, and UI technologies will probably to be revisited from ground up again.
- rk06 10y agoshort answer: "No". Explanation: In js land, Long term Support means "6 months". so your best bet is to have a framework which makes migrations easy and does not introduce changes. With angular being backed by google, there is no guarantee if angular will be maintained 4 years down the line. PS: feel free to keep your million dollar.
- huskyr 10y ago> With angular being backed by google, there is > no guarantee if angular will be maintained 4 years > down the line. It's interesting to see that the reason why many companies choose Angular (Google backs it) now seems one of it's biggest disadvantages.
- robwormald 10y agoAngular 1.x has been around since 2009 - 7 years - that predates pretty much every framework in use today, before modules (commonJS, let alone ES6) were widely in use, etc. At some point, we had to make a decision to be forward looking towards the future of the language. Support for 1.x won't disappear for some time. Angular 1.5 had a number of big upgrades - a focus will be easing the transition to 2.x over time ( .component(), lifecycle hooks, etc...)
- viraptor 10y ago> looking for something new fresh and solid Don't we all? I wonder if it's really worth it most of the time... That's assuming that new can be solid to begin with.
- mattetti 10y agoWe've been slowly migrating https://splice.com https://splice.com from Angular 1 to Angular 2, so far it's been great. We switched to TypeScript, we cleaned up our code organization. We are writing new components in ng2 and migrating old code we we go. The betas have been somewhat painful with bugs and breaking changes, but that's the price to pay. When it comes to performance and consistency, ng2 is a big winner. Why not React you might ask? React is great, but having to figure out/argue for each piece of the frontend stack isn't something we were willing to do. ng2 has its quarks bug at least it comes as a whole and that's super useful for us at this moment.
- wiradikusuma 10y agoRe: switching to TypeScript, manual rewrite or transpilation? My codebase is CoffeeScript, so I'm also interested to hear if you have any experience with that (with Angular 2).
- admnor 10y agoMy advice would be to compile your CoffeeScript to JS, then start from there. That's assuming that CoffeeScript still produces readable, idiomatic JavaScript...? As of TypeScript 1.8(?) you can set an "allowJs: true" flag in tsconfig.json, which tells TypeScript to include JS files in your build. Then you can just manually add type annotations and ES2015/2016 goodness to your code and change the suffix to '.ts' on a file-by-file approach. I'm doing this at the moment with a fairly large AngularJS 1.5 project, using Webpack with awesome-typescript-loader as the build system, and it's working perfectly so far.
- georgefrick 10y agoI'm using ts-loader, have you tried both and found awesome-typescript-loader to be better? I'm trying to decide if I should switch to it..
- lucisferre 10y agoThis is exactly what we're doig.
- rubber_duck 10y agoReact and Angular are two very different experiences. Using Angular 2 with TypeScript is almost like using WPF and C# on the desktop - it has that enterprise framework feeling - hierarchical DI everywhere, everything out of the box (DI, routing, events, forms, etc.), classes and OO are the foundation, decorators, even "functional" parts adopts RX from .NET. Using Dart gets you even more stuff working "out of the box" with a functional package manager and build system but it seems like that language might be a dead end so TS is a safer bet. Tooling provided powered by TS is top notch. React is much more of a JS approach - sure the core library is smaller but in the end you throw in a bunch of libraries to compose your own framework and you're stuck with good old JS decision hell (should I use redux, which routing lib, etc.) - this may be an advantage if you you have a bunch of front end devs that like to sink time in to exploring the ecosystem and chasing the latest fads to keep up to date with what's being supported - but if you need a library to give to your corporate C#/Java devs angular would be my go-to. Coding styles are classic JS mix-and-match pseudo functional + pseudo OO. Angular 2 feels slightly over-engineered but at the same time I'm more comfortable with this approach - even after using clojure full-time for 2 years - react feels too messy both from a functional/OO and ecosystem standpoint.
- spdy 10y agoReact is much more of a JS approach - sure the core library is smaller but in the end you throw in a bunch of libraries to compose your own framework Thats the reason i decided against React. After so many years of programming i really like opinionated its so time consuming to figure out which major library component (*flux) will be maintained down the road and have enough momentum behind it. And the combination of Angular2 with Typescript it really nice
- blowski 10y agoI have done some small personal projects with React, Angular 1 and 2 just for learning, and I agree with your assessment. If I were building a production system with a small team of intermediate non-specialists, I would use Angular every time. For a front end dev, it's like comparing SASS (React) to Bootstrap (Angular). They're both good at what they do, but they have different sweetspots in terms of the problems they're good at solving.
- iSnow 10y agoI knew it before opening the threat. What would the highest ranking post be, someone discussing the merits of Angular 2 or someone doing the usual "yeah nice, BUT REACT!"? There are lots and lots of shops that - for one reason or another - don't care about React. And frankly for someone who works with Angular 1.x, React might just not be that interesting.
- jalami 10y agoI was really trying to make a post before the post about React because I too saw it coming. More about the fact that I saw it coming though. I didn't intend on it to come off as "React is better, lets look this way instead", but a "I feel like this is unfortunately looming over Angular's head, here's what I think Angular's predicament is". Tomatoes potatoes, but I think it's an important distinction. I think angular2 is a lot more interesting than angular 1.x and has a lot of merit, especially for a company wanting a "batteries included" framework, opinionated syntax or Typescript throughout. A lot of developers seem to hear angular and still think inefficient 2-way binding or 'enterprise-y' when that's not the case. The roll-out took awhile, bad timing happened, and there was initial confusion over migration. In the meantime 'some' developers found the next shiny thing without considering angular2 anymore. They're obviously very different approaches and ecosystems so an AB comparison doesn't do it justice and the comment section of HN isn't a good place for that. I'm just commenting on the developer smell around the framework as I smell it today. Sorry if I came off as 'that guy'.
- deleted 10y ago[deleted]