Hacker News new | ask | show | jobs
by ebbv 3950 days ago
I was really hoping this was a survey to Angular 1.x developers asking how annoyed you are that Angular 2 completely changed everything.

Angular 2 should have been a new framework, IMHO.

6 comments

I'll defend ebbv

I have no intention of migrating V1 apps to V2 - it would be a waste of time and money.

And until I see real world examples of V2 performance or adoption, I'll continue to use V1 due to the incredible amount of 3rd party code that works with it - which I'm assuming, is alllll gonna need to be re-written to work with V2.

What if PHP 7 broke all backwards compatibility with PHP 5 unless hacks were used. The world would be un an uproar (if not all the Wordpress devs out there)

I was late to adopt V1 - I'll be late to adopt V2.

v2 cemented the fact that I will never willing build another angular app. I have no interest in frameworks that do not provide clear upgrade paths.
The Angular team listened to the community and has been working on an upgrade path. I found this blog post useful in convincing my team that we are not going to be wasting time as long as we continue to follow angular and JS best practices:

http://angularjs.blogspot.com/2015/08/angular-1-and-angular-...

That would be a waste of a good brand name.
A friend also asked me to think of all the recruiters and managers who just placed thousands of Angular devs over the last year. How will they look when the C-level finds out that their team consists almost entirely of people specializing in an aborted product (oh, and their product is now locked-in to some now-aborted Google product)? My friend's point was that perhaps Google is just attempting to paper over any unpleasantries by sticking the old name on a different product.
yes but the changes allowed the framework to be the fastest out of all of ones currently right now as well as making sure it's more future proof
Not an Angular user, but I'm quite interested- what about it would make Angular 2 faster than Ember or React?
All the benchmarks seem to indicate that Angular 2 is vastly faster than the other frameworks - the Angular team has achieved O(1) change detection, which large DOM node benchmarks are remarkably consistent with in terms of Angular 2's performance. For large numbers of repeated elements, it turns out that Angular 2's performance is worlds away from even libraries like React. For more normal situations of smaller # of DOM nodes, Angular 2 still manages to outperform by around 3-5 times as fast - all the benchmarks I have saw was pre-web worker support though, so it may be even better with that enabled.

I don't remember Ember's performance, but React's seems to slow down significantly in jumps at certain marks, similar to Angular 1, which seems to suggest they have some at least one place where optimization could be made. It should be noted though that Angular 2 builds on top of many rock solid principles that React introduced, and has ruthlessly optimized upon that with continuous benchmarking and careful planning.

What benchmarks? You say all the benchmarks but provide no links and I know for a matter of fact that your statement is simply not true. Also, be wary of benchmarks, they tend to optimize one framework while leaving the other ones not optimized. Also to note, I've used React for very complicated things, even having to optimize under the 50mb limit in one tab and the performance did not slow down as you claim. I've been using React on a production app > 1 year. I used Angular 1.x before that.

And the only way I see every change detection being O(1) is using something like Immutable js or serializing the "state" and comparing strings.

Just by this blog post alone, it seems the Angular community is quite split on what they want. Wouldn't it make sense to just maintain Angular 1.x and start on a new framework, which would basically be Angular's version of React and Ember, with a new name. Performance difference will be negligible.

Where's your proof that is simply not true? Every talk where people have done actual benchmarks with has shown otherwise. I have also discussed benchmarking techniques with the main Angular developer in charge of them, as I noticed some statistical issues with the original approach when they started presenting them, and they refined ruthlessly from there.

Different people have presented on them - Uri Goldshtein gave a talk within the past month at the AngularJS Mountain View meetup where he personally benchmarked React, Angular 1, Angular 2, and one other library using Meteor with all of them, and the findings were very interesting - React started struggling around two marks, including around the 20k element mark (I may remember that number slightly wrong) & 50k element mark (which is a bit of a contrived benchmark IMO), but the remarkable aspect was how linear Angular 2's performance was. React's showed a more complicated picture, at times behaving like a quadratic. Angular 1.x also shows similar patterns, which is consistent with every benchmark people have presented in talks or blog articles. At large numbers of DOM nodes in a simple flat tree, most libraries showed issues - React would take over 3.5s to render at over 100k elements, whereas Angular 2 performs amazingly at under 100ms on the same test. Unfortunately, this talk was never uploaded due to Google having had video issues, but it looks like the findings were made available here: http://info.meteor.com/blog/comparing-performance-of-blaze-r... .

The Angular team has also done presentations on Angular 1.x vs. 2 - Misko mentioned in a talk in April that Angular 2 was already 2-10 times as fast as Angular 1, and they have made massive strides since that time. Other people have reported React being roughly 2x as fast in many situations, which is strongly suggestive that it does not keep up with Angular 2.

The Angular team has adopted immutable data structures internally I believe - they have talked about it at ng-conf and numerous times afterwards, and Victor Savkin has written an article on it here: http://victorsavkin.com/post/110170125256/change-detection-i... . They using observables to handle this in Angular 2 .

Out of curiosity, what would you say your experience level is with Angular 1.x? (based on the criteria in the survey)
It's a new framework, hence the major version bump.
Seems like 2.0 is the worst of both worlds: little/no continuity from 1.0 and little/no benefits of starting from scratch.
Did you see the blog post from last week on Angular's efforts to help developers transition from 1 to 2?

http://angularjs.blogspot.com/2015/08/angular-1-and-angular-...

As for little/no benefits, that is certainly not true. Angular 2 is going to be better in almost every way from Angular 1 and there are many great apps built off Angular 1. If you haven't tried Angular 2, I suggest giving it a go once the they get to beta.

At a first glance the link you provided promotes double insanity: angular 1 mixed with angular 2 (because angular 1 was not complex enough when angular 2 decided to simplify it with new syntax and requiring typescript which seems to require node.js). Is there some documentation for angular 2 with plain javascript (no typescript) for people who want to keep it simpler ? Can you provide some links ? Thank you.
Each code sample here has an ES5 ("plain javascript") version that you can get to with the buttons on the top:

https://angular.io/docs/js/latest/guide/setup.html

if you consider a "node.js" requirement (read: a build step) too complex for your projects, you're probably correct in that you don't need any version of angular, react, ember, or anything else.
Complex or not, I don't care. I don't want to install node.js and npm and that's it. If I know the names of those two apps is already too much.