Angular 2 First App Post-Mortem
Mike Ryan
18020

Nice post based on your experiences with Angular 2!

> “Dependency Injection is Vastly Improved”

Agreed. The typed tokens are a major step up for both usability for developers and for module loading.

> “The New Router is Promising”

Indeed. It’s not quite there yet, but it has most of the major features we all ask for and a solid foundation for nesting routes, routing lifecycle hooks, and customizations.

> “… missing some critical features that I will need like handling routing errors, easily redirecting missing routes to 404 pages, and resolving data before entering a route.”

Agreed. These are things I have raised as well, and are on the list of things to look into. I’m not concerned though, these are icing. The cake is still very edible.

> “ES5, ES2015, or TypeScript?”

The experience in TypeScript is great. The docs are being written in that first, too. But the team is committed to ES6 and ES5 docs as well. Even so, the tooling experiene of TypeScript has saved my butt from many typing mistakes that never would have been found otherwise. That’s why I choose and use TypeScript.

> “When I say Angular 2 is heavy I mean it in two different ways: Angular 2 is heavy in terms of complexity, and the Angular 2 payload is large.”

Complexity … perhaps. I think that’s perspective that each user has to decide on.

The payload is very heavy right now. I co-interviewed the team last week on Adventures in Angular and they said that they have a goal to get the framework down significantly this year. I feel this is critical and I sensed that they do too.

> “Still there’s simply no denying it: Angular 2 is complex and has a steep learning curve. The development experience has its number of “gotchas”, but none too severe to warrant dismissing the framework outright. Plus, many of the shortcomings I have addressed are already being actively worked on.””

I do think there are places it could be made simpler and more streamlined. Some of those have already come. For example, early on in the alphas the binding syntax was significantly longer and we had to tell the component about every built in directive we used. That got old quick and was a quagmire for bugs. The team focused on getting it to work right first, and then made both of the much better. Now, the binding is just brackets or parens and we no longer need to tell a component about built in pipes or directives (i.e. ngFor). So I agree that while there is still friction, the team is working on it and progress is being made.