<story><title>Angular 2 Final Released</title><url>https://angular.io/</url></story><parent_chain><item><author>Nemcue</author><text>Cons:&lt;p&gt;1. Typescript. If your team isn&amp;#x27;t familiar with it it&amp;#x27;s not trivial to get everyone on board. The up-front cost can absolutely be worth it in the long run, but there&amp;#x27;s some friction in the day-to-day work with managing type definition files and looking up esoteric lint-errors from the Typescript compiler.&lt;p&gt;2. RXJS. Canonical NG2 should use Observables, and rxjs is not a trivial library to learn the ins and outs of. Add to that that there&amp;#x27;s no clean way of doing testing with Observables at the moment (integrating with the rxjs testing schedulers is very finicky). This is doubly true if you&amp;#x27;re using ngrx (which you probably should).&lt;p&gt;3. Template language. I&amp;#x27;m one of those who don&amp;#x27;t think it&amp;#x27;s a very good idea to bring a new DSL into html. I&amp;#x27;d much rather do it the React-way of bringing HTML into JS instead of relying on a very complex compiler to do magic behind the scenes.
This becomes a bit better with the template pre-compilation, but it&amp;#x27;s still new syntax that you need to learn and keep in mind. Some of which is not intuitive nor well documented (i.e. how pipes and parentheses work together).&lt;p&gt;4. It feels unfinished. This is to be expected since it&amp;#x27;s just on it&amp;#x27;s initial release, but the sharp edges do show up quite a lot. For example we very often have to do manual subscription and unsubscription of Observables in Components.
This feeling also goes for quite a few of the community addons, such as the browser-extension. While I absolutely applaud their efforts, it&amp;#x27;s far from reaching the quality of e.g. the Ember-Inspector.&lt;p&gt;5. Sub-par debugging experience. When you get any errors there&amp;#x27;s a mile long stack trace filled with rxjs and zone.js garble, making it very hard to actually figure out what&amp;#x27;s going on.
When there actually are custom error-messages they are not very informative, with you having to fundamentally grok how parts of NG2 works to even come close to understanding why it&amp;#x27;s not working (getting this a lot with the change detection).&lt;p&gt;6. Lack of documentation. I tried to stay very far away from Angular 1 since I found its documentation to be very low quality (probably a symptom of Angular 1 being poorly engineered as well). The NG2 docs are definitely better, but I feel like my mental model for reasoning about how things work was still very weak when I had finished going through the docs. There&amp;#x27;s some really huge gaps in there (testing) and a lot of the really complicated stuff that you will stumble over is only really documented in semi-old blog posts.</text></item><item><author>NhanH</author><text>Any chance you can do a quick cons review too? Specifically comparing to the weakness of Angular 1 like bloated complexities, issue with custom directives or scope life-cycle.</text></item><item><author>EugeneOZ</author><text>I use Angular 2 in production since November 19, 2015 (alpha.46). Currently I&amp;#x27;ve built 3 web apps (40, 60 and 20 components each), 3 mobile apps (with Ionic 2) and my employer  have plans for more apps.&lt;p&gt;Breaking changes during alpha stage were expected, so I didn&amp;#x27;t have issues with it.&lt;p&gt;Most positive things I want to highlight:&lt;p&gt;1. Components are encapsulated and truly reusable (and without dependencies hell).&lt;p&gt;2. You don&amp;#x27;t need any &amp;quot;bridges&amp;quot; anymore to use 3-rd party JS libraries inside your Angular app. Nothing need to be &amp;quot;angularized&amp;quot; - twbs, D3, all just works out of the box. Maybe it&amp;#x27;s even most important part for me.&lt;p&gt;3. Idea of `(events)` and `[attributes]` is awesome, works really effective and makes code much more easy to read.&lt;p&gt;4. Performance is great.&lt;p&gt;5. Community is friendly and have a lot of fun and patience, even to newbies.&lt;p&gt;6. TypeScript gives a lot of bonuses with zero price - you don&amp;#x27;t need to learn anything (you can just rename js to ts and it will work) and additions to JS are simple and powerful.&lt;p&gt;7. Cool abilities like AOT-compilation, server-side rendering and tree-shaking.&lt;p&gt;Congrats to the all devs who are using Angular, congrats to the Angular team! :)</text></item></parent_chain><comment><author>emodendroket</author><text>&amp;gt; 5. Sub-par debugging experience. When you get any errors there&amp;#x27;s a mile long stack trace filled with rxjs and zone.js garble, making it very hard to actually figure out what&amp;#x27;s going on. When there actually are custom error-messages they are not very informative,&lt;p&gt;And they said your angular 1 experience wouldn&amp;#x27;t carry over.</text></comment>
<story><title>Angular 2 Final Released</title><url>https://angular.io/</url></story><parent_chain><item><author>Nemcue</author><text>Cons:&lt;p&gt;1. Typescript. If your team isn&amp;#x27;t familiar with it it&amp;#x27;s not trivial to get everyone on board. The up-front cost can absolutely be worth it in the long run, but there&amp;#x27;s some friction in the day-to-day work with managing type definition files and looking up esoteric lint-errors from the Typescript compiler.&lt;p&gt;2. RXJS. Canonical NG2 should use Observables, and rxjs is not a trivial library to learn the ins and outs of. Add to that that there&amp;#x27;s no clean way of doing testing with Observables at the moment (integrating with the rxjs testing schedulers is very finicky). This is doubly true if you&amp;#x27;re using ngrx (which you probably should).&lt;p&gt;3. Template language. I&amp;#x27;m one of those who don&amp;#x27;t think it&amp;#x27;s a very good idea to bring a new DSL into html. I&amp;#x27;d much rather do it the React-way of bringing HTML into JS instead of relying on a very complex compiler to do magic behind the scenes.
This becomes a bit better with the template pre-compilation, but it&amp;#x27;s still new syntax that you need to learn and keep in mind. Some of which is not intuitive nor well documented (i.e. how pipes and parentheses work together).&lt;p&gt;4. It feels unfinished. This is to be expected since it&amp;#x27;s just on it&amp;#x27;s initial release, but the sharp edges do show up quite a lot. For example we very often have to do manual subscription and unsubscription of Observables in Components.
This feeling also goes for quite a few of the community addons, such as the browser-extension. While I absolutely applaud their efforts, it&amp;#x27;s far from reaching the quality of e.g. the Ember-Inspector.&lt;p&gt;5. Sub-par debugging experience. When you get any errors there&amp;#x27;s a mile long stack trace filled with rxjs and zone.js garble, making it very hard to actually figure out what&amp;#x27;s going on.
When there actually are custom error-messages they are not very informative, with you having to fundamentally grok how parts of NG2 works to even come close to understanding why it&amp;#x27;s not working (getting this a lot with the change detection).&lt;p&gt;6. Lack of documentation. I tried to stay very far away from Angular 1 since I found its documentation to be very low quality (probably a symptom of Angular 1 being poorly engineered as well). The NG2 docs are definitely better, but I feel like my mental model for reasoning about how things work was still very weak when I had finished going through the docs. There&amp;#x27;s some really huge gaps in there (testing) and a lot of the really complicated stuff that you will stumble over is only really documented in semi-old blog posts.</text></item><item><author>NhanH</author><text>Any chance you can do a quick cons review too? Specifically comparing to the weakness of Angular 1 like bloated complexities, issue with custom directives or scope life-cycle.</text></item><item><author>EugeneOZ</author><text>I use Angular 2 in production since November 19, 2015 (alpha.46). Currently I&amp;#x27;ve built 3 web apps (40, 60 and 20 components each), 3 mobile apps (with Ionic 2) and my employer  have plans for more apps.&lt;p&gt;Breaking changes during alpha stage were expected, so I didn&amp;#x27;t have issues with it.&lt;p&gt;Most positive things I want to highlight:&lt;p&gt;1. Components are encapsulated and truly reusable (and without dependencies hell).&lt;p&gt;2. You don&amp;#x27;t need any &amp;quot;bridges&amp;quot; anymore to use 3-rd party JS libraries inside your Angular app. Nothing need to be &amp;quot;angularized&amp;quot; - twbs, D3, all just works out of the box. Maybe it&amp;#x27;s even most important part for me.&lt;p&gt;3. Idea of `(events)` and `[attributes]` is awesome, works really effective and makes code much more easy to read.&lt;p&gt;4. Performance is great.&lt;p&gt;5. Community is friendly and have a lot of fun and patience, even to newbies.&lt;p&gt;6. TypeScript gives a lot of bonuses with zero price - you don&amp;#x27;t need to learn anything (you can just rename js to ts and it will work) and additions to JS are simple and powerful.&lt;p&gt;7. Cool abilities like AOT-compilation, server-side rendering and tree-shaking.&lt;p&gt;Congrats to the all devs who are using Angular, congrats to the Angular team! :)</text></item></parent_chain><comment><author>nkassis</author><text>On 3. I&amp;#x27;ve found Aurelia templates to be much better in that regard. Their templates are valid HTML and compile well. I&amp;#x27;m not a huge fan of embedding html within the JS (even with JSX) been easier to work with separate template files and keep as much JS out of them as possible. This has helped reduce harder to debug errors that crop up when the JS inside templates fails.</text></comment>