My Conclusion and Opinion about Angular 2
After messing about a little bit with Angular 2, I’decided I like it.
I was never a big fan of Javascript or front-end development before, or front end development before. In my experience Javascript, and it’s dynamic nature is more often misused than not, resulting in “maintenance difficulties” when the code base grows.
Angular 2 uses ES6, the latest Javascript specification, and/or typescript. Personally I prefer using typescript, it paves way for more structured code and let’s you use decorators (similar to Java annotations) to configure Angular 2.
So what does Angular 2 do for us?
It is my opinion that it provides a very powerful framework for front end applications. Dependency injection let’s you use patterns that have been common place in most backend frameworks like Spring. You can separate your services/business logic away from your components and views.
And components makes it a lot simpler to write large scale front end apps while retaining maintainability. It lets you organize your code and break it down to a very granular level.
And from a designer perspective the only thing that changes is the initial load times for the Angular 2 application files, libraries etc. Everything else remains the same, you can use html and css to deliver anything you want, just as you would in a normal web site.
As a user, after the application has loaded, we will get very quick load times.
Put all of this together and you get something as powerful as the popular Spring framework into the front end. The only problem I see is in the initial load time, but this is something tha can be solved by some creative web designing.
Angular 2 also aims to be cross-platform, which is a good thing if they can pull it off successfully. I believe as the platform mature we will end up with a thriving dev eco system.
While I’d still rather much worry about ways to shave a couple of milliseconds away from my backend service, I think I’ve lost a lot of aversion I had to front-end development after working with Angular 2 a bit.