Angular 2 Beta released
angularjs.blogspot.com
angularjs.blogspot.com
Unlike React, Google does not really treat Angular as a first-class citizen because they have such split focus and conflicting React like library for web components called Polymer. They provide some resources, but nowhere near the amount of resources that Facebook throws behind React and React Native.
Now lets talk about the fact that the Angular 2 project got off to a shaky start and I know they actually rewrote various parts from scratch more than once (hence why it took so long to reach beta, approximately 2 years). That horrible templating syntax needs to be mentioned, the decision to use square and rounded brackets for binding events/data and using things like asterisks in my opinion makes Angular 2 fall into the same trap that Angular 1 did in regards to developer accessibility.
I am really loving TypeScript these days and I think the decision to support it as a first-class citizen out-of-the-box was a good one (the partnership with Microsoft definitely paid off). But with that said, I think Rob Eisenberg (of Durandal fame) beat the Angular 2 team to the punch in the small space of a year in releasing his framework Aurelia (http://aurelia.io). It is what Angular 2 should have been in my opinion. Nice syntax, convention over configuration and a breeze to use.
The reality is that you should know Angular AND you should know React. These are not mutually exclusive.
I'm very pragmatic about frameworks. Yes, React might be technically better than Angular 2, but it has to be better at putting food on the table. It probably will be.
In the meantime, there are a lot of Angular 1 projects that will need migrating to Ang 2.
React as a term is understandably a bit polluted though.
Do you have a citation for that? I still see tons of user land projects using angular 1.
I think there are probably still more Angular devs, but I'll be interested to see how it evolves in the next few years.
And I'm sure you did fine work, but small business print shops are not exactly industry trend setters. What difference would it make in the bigger picture if you had chosen Handlebar for that project?
Sometimes you have questions on StackOverflow that compare eg Angular with React, and they usually raise a lot of good points, but they are missing several dimensions:
* the products evolve, but the SO answers often don't
* the trends change as well, so what was seen as best practice 1yr ago may not be well regarded now
* you do not have an objective representation of how many people are actually supporting each technology
I think there's definitely something to be done in that space.
I personally use React and Node.js for a lot of the stuff I work on these days (both professionally and freelance projects). I know a lot of developers who use React, so while a Google search (not exactly scientific either in my opinion) yields low use of React, just based on the circle that I frequent, there are a lot of people using React and in 2016 we will see more people using it. The last two freelance projects I worked on (for pretty large companies) were built using React, word is travelling fast.
A lot of people are using Angular 1.x, but I know for a fact that not all of them will migrate over to 2.0 when the time comes. The learning curve might be smaller, but Angular 2 still falls into the trap of being over engineered in certain parts (like template syntax).
Unfortunately, bower does not seem to collect download stats (I assume because downloads don't go through a Bower-controlled server), and I find it very likely that react usage is strongly correlated with NPM usage. React treats bower very much as a second-class citizen, even using a separate repo for its bower repository.
I say that as someone who thinks React is the future of JavaScript development and there's no chance I will ever go back to separate templates so Angular of whatever version is just automatically disqualified. It would be like going back in time and I do not want to do this.
It works really well. Including breakpoints in chrome,etc.
I really hope that React makes this more public - it makes it for quick and dirty prototyping. P.S. love ES6. Performance be damned!!
Both are meant for engineers, if by that you mean developers.
http://www.ryan-williams.net/hacker-news-hiring-trends/2015/...
I think, to a large extent, it depends on people's reaction to the word "framework".
Disclaimer: we switched to React at my company.
But checking from HN, blog postings, job announcements, team posts, new turorials (video, books), etc, React seems to be winning now.
https://www.google.com/trends/explore#q=reactjs%2C%20angular...
Obviously the Google trend search for "react" has lots of false positives, but some of the major news points it picked out include references to the right react.
Totally not inspired by Elm and traditional FRP. I mean, I use it daily and it's great, but you have to realize that a lot of what React brings to the front is bundling some well-known paradigms together.
No, it hasn't
> simplistic component based approach.
"Simplistic"
> Unlike React, Google does not really treat Angular as a first-class citizen because they have such split focus and conflicting React like library for web components called Polymer. They provide some resources, but nowhere near the amount of resources that Facebook throws behind React and React Native.
Facebook does one thing. Google does many things.
React has recently dominated headlines and in another few months, something else will. Meanwhile, people will keep using stuff from 3 years ago.
For example, OkCupid (from what I've heard) based its mobile architecture on AngularJS, but then once React matured, they basically declared all their Angular legacy and promptly shifted to doing everything in React.
Even https://www.madewithangular.com/ doesn't make clear how AngularJS is being used in the few websites it showcases. Lyft uses it for its homepage, but it does not use it anywhere else. Likewise, one the homepage for healthcare.gov, one of the websites provided: does it use a lick of "ng-" anything in its HTML.
I don't disagree that Angular solves an additional set of problems, but I think the hype behind React is real, i.e. it's an actually good framework. Also, being an AngularJS developer myself, I too really dislike feeling that I've wasted my time learning yet another piece of tech that will be outmoded in the next year or so.
Personally i love Typescript as well and i am pretty sure NG2 will get a lot of thrust behind it, now that the api is stable.
Though initially skeptical of Typescript, I've found that Angular 2 really benefits from the advantages of having a coherent object model and optional type safety. Typescript never gets in the way, you can selectively use type declarations only where you want to use them. It's often helpful to leave them out while prototyping and then add them later when you want more robustness and easier debugging while you are working on writing the glue code and application logic that connects your various components.
As other posters have noted, you're still saddled with a lot of the artificial complexity and odd terminology that is pervasive in Angular 1.x. There are also bits and pieces of the library ecosystem, particularly the routing engine, that are over-engineered and painful to work with in practice. But, in general, I find version 2 much more intuitive and easier to reason about than version 1.x. Key features like data binding are much saner and behave more predictably.
I've never particularly liked Angular or React (my personal preference right now is for Vue or Polymer), but I think Angular 2 is a solid improvement over its predecessor. More significantly, I think the improvement is substantial enough to justify the team's decision to do a clean break.
1. TypeScript - It's really nice to be able to use a typed version of JS, although it does feel like I'm writing C# sometimes! It supports lambda syntax / ES6 which is great.
2. Annotations seem a bit clunky, not really sure what the point of them is.
3. Absolutely love the functional reactive / RxJS stuff they've incorporated - it's going to make it VERY easy to write really powerful apps.
4. It's a million times easier to develop with than angular 1. $scope.apply anyone?
_.defer(scope.apply...
...re typescript, i feel like if i'm gonna use a not-script of some sort, it might as well be clojurescript or something else that's like a really-srsly-not-js rather than js-but-prettier (coffee) or js-plus-a-paradigm-grab-bag (my totally uninformed take on type)I've been loving using React. Building in components is fantastic, and it just feels like writing Javascript. That's a win in my books.
If Google was as invested in Angular as Facebook was in React, they would probably have gone with a more gradual, methodical approach to improving the framework (like the Ember team did). And until that changes, there is very little stopping them from doing another mostly incompatible rewrite in a few years.
As it stands, Angular 2 is closer to a completely new framework roughly inspired by Angular 1.x than a new version of Angular.
Google has said they have something like 10k Angular 1.x apps, so they will keep on working on Angular 1. Angular 2 happening along this support is showing that they're willing to invest in the conservative route and the "burn down the libraries" route at the same time.
The so called upgrade path they offer for Angular 1.x is a complete joke. That you can "mix Angular 2 into your existing Angular 1 application" would be a true statement with any component-oriented framework in place of Angular 2, like React, and Ember. And this was not true for Ember just a few months ago, which is living proof that gradual improvement can in fact be accomplished with any framework, but of course, throwing everything away is much easier, so the framework developers need to have strong incentives to not do so.
The point is that - despite the common misconception - Angular isn't Google's Anointed JS Framework. There's a whole bunch of Polymer and a whole bunch of GWT inside Google.
Maybe let's withhold judgement until we actually use it. Just a thought.
[0]: https://www.polymer-project.org/1.0/ [1]: https://developer.mozilla.org/en-US/docs/Web/Web_Components
react.c : Activity/Fragment :: web component : View :: web : Android
(???<_<)
So I think Google will do it. Google Fiber is ng2 already :)
I'd argue Adwords is one of the most important Google products.
What exactly is your point here?
No one is saying "oh I love writing view layers. It's way better than actually building things".
If I am trying to compare the pros and cons of flying vs sea travel, a distinction between the fact that a ship is not an airplane isn't really important.
Two vastly different approaches can attempt to solve the same problem, and they're worth considering on equal ground.
On a side note, when people mention working with React, it's safe to assume (if they're building real software) that they are using React with a framework, whether that be some implementation of Flux or Relay or something else entirely. When comparing Angular to React / Flux you've got yourself an apples to apples comparison.
Angular is the airline flight(s), React is the boat. It won't get you all the way there on its own.
Edit; Sorry i meant Conway's Law https://en.wikipedia.org/wiki/Conway%27s_law
I just finished my first non-trivial app built with Redux + ImmutableJS a few days ago, and it was pure bliss. Finally, we're able to build entire applications as a mapping of pure state transitions on top of immutable data in JS. Redux is by far the biggest reason why I haven't yet completely abandoned JS for ClojureScript.
But I've learned to like it. React encourages you to keep components very granular and small and so the amount of markup in each component doesn't really get in the way I find. I've also learned to appreciate how easy it is to reason about what React is going to spit out onto the page because the view is right next to the logic that dictates the various states of the view. Feels very concise.
I still don't like the idea of it, but in practice it works quite well.
You can replace JSX by hand-coding with React classes - take a look at the compiled jsx and mimic that. I find it as easy to work with, and less cognitive dissonance [ a personal preference ]
I actually am looking seriously at Mithril in preference to React for my next chunk of work.
I might swing the other way if React native became stellar [ and viably crossplatform ]
Q: which do you prefer - this:
ReactDOM.render(<div><p>Hello World</p></div>)
or this? ReactDOM.render(React.createElement("div", null,
React.createElement("p", null, "Hello World")
));
A: handlebars.A: mithril.js
But you never write HTML with JSX, that's the point. XML like syntax is just sugar that gets transformed into functions. This is not HTML. With angular you need to use string templates which cannot be easily validated by IDEs for instance. JSX syntax validation is straight forward because it's directly integrated in the language.
If you don't like mixing logic into HTML you're free to create dumb components that only contain as much logic as you would want to put in a template. Such a component would accept properties and output a representation of the resulting HTML. A smarter component that does not generate HTML will provide the logic required for the template to function. That approach actually encouraged and is the right way to do React.
The bonus of this whole generate-HTML-representation-with-functions thing is that you pass around native JS values instead of stringified values and magic strings. Want to provide an onClick callback? Pass a callback. Not some magic string that represents a key which holds the callback in some object defined by framework-specific convention. No, you just pass a raw javascript function that will be run on click.
This might seem like a trivial distinction, but it's the difference between writing native JS vs writing magic framework code. I vastly prefer the former.
(at least 1.x did)
At the end of the day you go one way or the other, my preference is the template not having the ability to affect logic as it is not natural to look thru templates to find what is mutating the state of your application. I liked Dojo and I think react is a step back in that direction which in my personal opinion is the right direction for large web application.
component = React.createFactory(MyReactComponentClass);
component(props, children);Edit response to person below (rate limit): there's no 'problem', just that mustache is still more familiar. Moving JSX into a different file doesn't change that.
So for example in case of parsed templates, to pass a callback to onClick you'd need to define a convention on how you're going to locate the callback by a given string (since you can't pass the function itself, you need to pass some "name" of that function). Whatever logic that will be, the result will not feel like React anymore because you're back to typical framework-specific template magic instead of using plain JS.
Putting behaviour in HTML is a bad idea. Leave it in JS, and have one place to go when the behaviour changes.
This is not what I'm doing. JSX is JS. I'm not putting any logic "in HTML". If I were able to express what I'm doing in mustache-style syntax, it would be:
Blah blah <a onclick="{{ callback }}">Click me</a> Blah
Where `callback` is a reference to a JS function (rather than a string holding it's name).What's your ideal way of registering an onclick callback?
* With React & ESLint you get basic checks to make sure you're not passing non-existent variables
* Your IDE understands what you're doing and lets you jump to callback definitions
* You understand what you're doing because you have one obvious place where you do templating and data binding.
* Your actual behaviour logic is still separated from your template, living in some other JS file.
On the other hand, if you add event listeners to HTML from JS the classic way, you get other problems:
* You're querying the DOM tree by CSS classes or some custom attributes. It's surely a familiar way of doing things, but also fragile and unintuitive.
* It requires your JS to know the structure of your DOM to some extent, and that structure is defined elsewhere. So it's basically the same problem as with mustache templates – passing around magic strings – but the other way around.
* Neither ESLint nor IDE will help you do it.
React mixes logic and structure, which causes no harm, because both are written and maintained by same developer.
It's not hard to see why. This code[0] from Angular 2 would just be a function in React:
@Pipe({
name: 'tempConvert'
})
// The work of the pipe is handled in the tranform method with our pipe's class
class TempConvertPipe implements PipeTransform {
transform(value: number, args: any[]) {
if(value && !isNaN(value) && args[0] === 'celsius') {
var temp = (value - 32) * 5/9;
var places = args[1];
return temp.toFixed(places) + ' C';
}
return;
}
}
There's also the fact that Angular is a framework, whereas React is a library. Those of us in JS land typically (but not always) prefer smaller libraries.[0] https://auth0.com/blog/2015/09/03/angular2-series-working-wi...
It was built with concepts from Angular 1 and React in mind. But it doesn't use either.
Especially this: http://qbix.com/platform/guide/tools#dom
Here is an example app built on it: https://github.com/EGreg/Overlay/blob/master/web/js/Overlay....
All in all it is fairly similar, and feels pretty good. You have to remember more syntax, because of the configuration, but it isn't as conceptually difficult as Angular 1.x
The templating syntax is "weird", and it definitely adds to the list of things you have to know specific to Angular 2.
React and JSX is nice because logic is just JS, and not special template syntax (directives).
I'd be happy to build an app with Angular 2 or React for different reasons. What's hard is looking at Angular 1 now.
[0] I've given multiple Angular 2 workshops, built large scale Angular 1 apps, and build React components daily for my business (a popular web developer video tutorial site).
No simple way around this, and no link I can see to go to .com instead. That's quite frustrating.
(Edit) No actually I spoke to soon. Even when the url doesn't redirect, the blog post is still in German for me! (Edit again) Must have been cached, it's in English now.
Previously used by google.com too, seems to be ignored now.
If that doesn't work, try a private tab so that it doesn't use any previously-set cookies:
Firefox: ctrl-shift-p
Chrome: ctrl-shift-n
It's a shame, because it does seem like both a very powerful and nice approach to building SPAs that I would love to contribute to.
Angular team is bunch of great people, real pleasure to work with. I can tell you - the initial effort to start contributing pays off _very_ fast.
Maybe I just had an experience of trying to get help at a series of slow times, but it was really hard to get help with the build setup.
TypeScript basically made JavaScript more powerful and a whole lot more fun for me. I feel so much better about slinging around parameters now that I know my IDE will catch type/parameter mismatches before I run the code, before I build it, even before I save the file! It simply alerts me in the IDE (I use VSCode which I also love). This is a huge time saver.
Another great thing is the intellisense, which allows me to keep on coding without looking at some API documentation or other files in the project. The intellisense even has the documentation in it - so this is a really fun and efficient way to learn new libraries and frameworks.
I didn't even know how much I missed enums in JavaScript until I started using them in TS. Also love the fact that you can revert to using the Any type if you have to and there is even support for generics as well.
All of this stuff can be had in various transpilers or IDEs, but TypeScript and VSCode just bring everything together in a very simple yet powerful way.
Despite all its glaring flaws, javascript is an insanely productive language due to excellent mix of features. To improve upon that Id need to go to lisp / clojure [ but it lacks wide commercial acceptance .. not a criticism at all ]
I'm actually wary of using the newer additions to javascript language - ES6, Promises and arrow notation don't seem that much of a win to me, I'm very sceptical of new being good in language design...
whereas I really love Ramda.js as a general underscore / lodash replacement.
Productivity seems more a function of how we structure our code [ eg. keep state so we can jump back into where we were in the web app, thus iterate easily - as per the Om approach ] and thinking functionally.. rather than language syntax additions.
I don't see the need for an IDE .. they tend to come into their own when Your.ColourfulAndCompleteMethodNames are so long they need auto-completion. Thats the beauty of javascript [ and lisp etc ] we should fight to keep things small and terse.
I also like cljs, mostly in a text editor.
Code quality it is the ultimate time saver. I prefer reading concise, literate source to exploring/churning APIs.
As a big fan of types myself, I hear you. Have you tried using flow with react? I wonder how they compare.
What I liked about React is that I also got type checks in JSX (compiler tells me if the types that I assign to props are correct). I don't get that kind of type checks for angular2 templates. If I assign something wrong there then it blows up at runtime.
What I disliked about React is that the ecosystem doesn't embrace typescript. For most 3rd party components that I tried there were either no type definitions available or they were broken (which is often worse - because then you can't assign props that are actually valid).
For Angular2 at least the framework is already typescript-first (so we have automatically up-to-date type definitions through the compiler), and I would hope many 3rd libraries follow that design.
On the Flow vs Typescript thing, I evaluated both for this project, and almost went with Flow primarily because at the time, I liked that Flow felt lighter weight (it is truly "opt in" unlike TS, and getting the TS setup right was quite hard work), and I was also put off by the overhead of having to write .d.ts files (now I can create an "any" definition for a library in a few seconds, but at the time found it all quite time consuming).
However, I persevered with Typescript in the end, as I felt that some of the features it offered over Flow were worth the extra effort - specifically, the editor/IDE support (Atom with Nuclide for Flow was really unstable for me and the autocomplete still didn't compare to TS) and the fact that Typescript does a full compile of your code, so will pick up on things like mis-spelled imports, which Flow didn't seem to.
Also, I found documentation for Flow (beyond the basics) to be quite lacking, and there didn't seem to be as much community around it - for example, I just couldn't work out how to get it to check React propTypes, which was a pretty important feature for me. Bit of a shame, as its type system actually seems more fully featured than Typescript's (e.g. types are non-nullable by default), but TS's type system is certainly good enough.
I'd say go Typescript at the minute if it's a reasonably large greenfield project, but Flow might suit your needs if it's something smaller (whether that's in amount of code or in team size), or if you prefer the lighter touch/opt-in approach - for example, if you want to introduce it to an existing JS code base. I would definitely say it is worth the effort to go with one or the other, I'm not looking forward to going back to writing plain JS - having the compile stage makes refactoring in particular trivial, without the overhead of having to write loads of unit tests. In TS I'll refactor constantly as I go whereas in a large JS app, it's tempting to put off refactoring as you might miss somewhere and not know until it is QA tested (or the customer spots it is broken...).
I used to love CoffeeScript but, after giving ES6 (with eslint) a shot, it no longer has a special place in my heart.
I do enjoy the terseness of it (writing it is fun) but some things are just painful (reading it after the fact).
As for TS vs ES6+ -- I would go with TS but only because Angular projects have a tendency to become very large, and having a compile-time type system hold your team's hand is very comforting.
TypeScript is doing really good.
I kind of have a feeling that by the time we actually need (and have the resources) to upgrade or even start mixing in Angular 2 on our project, native browser support for ES6 will be close enough to complete that we won't need a transpilation step. That might be a nice time to do the migration.
Looking forward to hearing what other devs end up using.
Want to give this a try :-)
Thanks
The problem I have with decorators is that they are not officially part of ES7 spec yet, even if there is a big chance they end up in the final spec, features like ES6 modules are a proof that things can be reworked to death before being standardized.
How is it going to work exactly ?
Step 1: Include the Angular 2 and ng-upgrade libraries with your existing application
Is anyone with a serious application actually considering this? It would have been nice to include only the pieces of Angular 2 that you actually use. Instead, we have to ship both libraries, our application code and an additional plugin down the wire? I don't see this upgrade path as a legitimate option for anyone who cares about page load times.
It is based on ember CLI and helps a lot scaffolding new projects.
* Templating syntax is intuitive after an hour or two
* Decorators are great! (sidenote: Warning Babel6 decided to remove them until the spec settles down)
* Typescript I'm undecided about. Its a bit of a pain to work with and tooling is still early days e.g. if you want to import a single js file/lib, you create a Type definition file (.tds) just for that. And if you don't want to document every interface in that .tds, then you can give it an "Ambient" aka "whatevs" definition. But in that case it will not be retain its semantics.
* The new component router wasn't ready for prime time 2 weeks ago. I doubt that has changed. And frankly, I feel a bit uncomfortable with how magical it is. That could change though, I know allot of effort is going into it.
* One of the best things is losing many of the hacky artifacts of Angular1 (pseudo-modules system, 9 types of component, config phases etc etc)
* IMHO the lack of opinion built into the framework will still cause allot of foot-shooting around the globe, especially compared to Ember or Aurelia.
That said, if I was going to start a large enterprise project right now, I'd SERIOUSLY consider the core being written in Angular 2 + Redux. I'd have to revisit Ember before I had that decision though, its been over two years ...
I'm looking for tools that will help me create web apps with rich client experiences. I've read the critiques of AngularJS here and it sounds like it does have some limitations, but still a very good framework for corporate web apps with moderate user base and small # of browsers.
That being said, I use both react and angular. Angular is a full library that solves all of my problems, even if the solution isn't what I would consider ideal. React forces me to do a lot more work to get something running as it is not a framework. It is a tradeoff of time versus flexibility.
I work on a rather large Angular 1.4 codebase daily and while this is good news, I'm not sure how we'd ever upgrade to be honest.
There's a great blog post by the Thoughtram team here : http://blog.thoughtram.io/angular/2015/10/24/upgrading-apps-...
You can of course learn Angular 2 from lots of disparate blogs on the internet. There's lots of good resources. But the goal of our book is that you'll be able to learn everything, in-order, in one place.
We've been keeping the book updated alongside Angular's development (though it will take us a few days to get up to the most recent beta). We've already updated the book over a dozen times, so I think you'll really like it.
I haven't started using ng2 yet, but if I do decide to learn it i'll be purchasing ng-book 2.
They seem well prepared for the demand in Angular2 training :
angular2.min.js - 568K
Version 1.4.*
angular.min.js - 148K
File size really increased (Angular1 * 4 == Angular2), if compared with first version. Something went wrong.
Angular 1 is a fully fledged framework, you can use it on it's own, but 2 seems to depend on rxjs, and it's also bigger.
To me that seems like a step backwards.
I've previously written & been part of teams for a few non-trivial 'full stack' js apps that run both on the client and server, and react's abstraction from the DOM is perfect for such things. Wondering what the 2.x approach is here.
As an aside, seems to me that the days of running JS purely in the client are coming to an end, for projects when developers can have a free hand on the tech stack.
Design doc: https://docs.google.com/document/d/1q6g9UlmEZDXgrkY88AJZ6MUr...
It still seems like a WIP
This is fair choice but it shows the background of the designers of Angular and that they in some sense really don't grok JavaScript.
Here is a blog from mr. Ruby-on-Rails explaining why DI is a stranger in the Ruby world:
http://david.heinemeierhansson.com/2012/dependency-injection...
With some parallels I think.
We've started experimenting with systemjs and really like it (though support is a bit limited right now, plus it not really liking PhantomJS/karma), and we want to modernize our Angular 1.x app packaging/loading/bundling, but don't really want to do needless work if we have to move to another solution for Angular 2.x.
I wish the success of a web framework was a bit more about the technology nature of it rather than the market adoption and hype.
Here's a chart where you can see daily download counts for react, angular, and angular2.
http://npmcharts.com/compare/angular,react,angular2
React does indeed have about 4x as many daily downloads, but (Angular 1 + 2)'s download counts are ~5x what they were a year ago. (iirc the ng-europe RIP Angular fiasco happened in October 2014)
This is how you turn the most popular javascript MVC framework to nothing.
I have a theory that many of the people who like Typescript came from a statically-typed background (Java, C#, etc) and don't like the loosely-typed world of Javascript.
More speculation: People who came to front-end development by choice are happier with Javascript than those who were transplanted from the server side and forced to convert to the One Language Of Browsers (ignoring transpilers, of course).
You also don't need to use typescript with angular 2.
Edit: by popular I didn't mean that it's merely used by more people. I've clarified that.
So these languages exist precisely because life is short. Are they the perfect/stable solution? Probably not. But it's the right way to go.
All I know is when the first angular 2.0 beta came out, it was not well received by anyone including myself because of the vast difference in syntax (simple -> complex) which is the only reason I and a lot of others picked Angular in the first place. It seems it has been tweeked a lot since then, but those problems have not been fixed. I don't think next version of angular is usable for me.
Typescript's audience is far less than Angular's audience, there should be no reason to use typescript as the official example. This kind of bundling is similar to Microsoft explorer coming with Windows.
TypeScript is pretty popular and it does work really well. Writing larger applications in a team is much easier if there is tooling to assist you. With most projects, about 80% of the work is maintenance and tooling does immensely help with that.
Angular 2, on the other hand, has so far been received very coolly.
That is some very unsound advice. I find it worthy of ridicule that it's being suggested as a possibility.
The upgrade path was very necessary to address the huge amount of breaking changes.
Right now, there is a massive cookie consent form blocking my view of the actual article.
There are even some adblock/ublock/what-have-you filters now that block those forms.