Angular core team here - unfortunately, this post ignores Angular 2+ entirely (its @angular/core on npm) - the numbers are only for AngularJS (1.x). We’ve reached out to the NPM team to get this corrected.
I did the Mars demo at a conference a while back - the first couple of minutes I was underwhelmed, but at some point, my brain "bought-in" - I noticed this when I crouched down to look under a virtual rock outcropping without a second thought.
Note this chart is actually showing AngularJS (1.x) only. NPM only started exposing stats for @scoped packages recently, so @angular/core (Angular 2+) only has a few months of history.
You'll be pleased to know that we're making Zones optional pretty soon here. This would mean taking control of change detection yourself, of course, but there's plenty of valid use cases where that's a reasonable idea.
Huh, thanks for the info! Would you happen to have any hyperlinks to the discussions where people hated on the old scheme? I'd like to read up on this more.
You can already use most simple web components in Angular without issues - as far as Angular is concerned, it's just another DOM element.
We also support native (or emulated) Shadow DOM out of the box.
It gets a little more interesting when you start interleaving Angular and WebComponents, but one of the deprecations in 4.0 (regarding Angular's use of the <template> tag) is squarely aimed at making that easier in the future.
It's unlikely we'll ever have developers write Custom Elements directly - that said, the View Engine rewrite we just did gives us the ability to (theoretically) have our compiler output Custom Elements. We're investigating some use cases on this.