Angular 2.0: Why I am not impressed?
So recently Angular made an announcement that they will be using Typescript as the mechanism for building the Angular source. A friend of mine asked me what I thought about this and Angular 2.0 in general. Here is what I told him.
Let me begin with the fact that I've been working with Angular 1.x for a while now and for the most part I really like it. There have definitely been some warts that were difficult to overcome, but once a solution was discovered and caveats learned I felt that Angular was a net positive. I came from a background in Backbone and while there is still a place in my heart for the config-ability of Backbone, I've found that the power and convention provided by Angular (despite its problems) are worth the sacrifice. Now, Angular 2.0 is coming along and will introduce a number of breaking changes and paradigm shifts from 1.x. I won't go into the details here, as you can read more in depth articles in a number of places. The fact that things are breaking isn't normally enough to discourage me away from a technology. I'd be lying if I said that I was super excited about having to unlearn all the
$scope fun from 1.x but all things considered, if you're going to give me a better tool I am all for change. THAT however is what remains to be decided: Is the new Angular 2.0 significantly better and almost more importantly, is Angular headed in the direction that I want it to go?
Lets discuss the latter first: Is Angular headed in the direction I want it to go. This for me is where I am running into the most dissonance. To say it again, I like Angular. BUT a big part of me is concerned that Angular has gone off course. Google is now an older company and as such struggles a little with remaining "hip" and relevant. Last thing that I want Google to do is join forces with Microsoft. Microsoft (a very "old" company) is currently having an identity crisis and is desperately working to become relevant. Things like the big Windows 8 and now 10 push, making .net open source, sponsoring NodeJS and now this. I wont be naive and say that there isn't any value to Microsoft, but they have reaped what they've sown as far as I am concerned. Once you earn the title of 800lb gorilla, it's difficult to shake. This move to partner with Google just seems wrong and a desperate attempt to get in with the cool kids. Trouble is that 1) I am not sure that Microsoft has anything valuable to add to Angular and 2) where will they be steering it (what is their personal agenda in being involved?)
So now onto the idea: Is Angular getting better? Again I am not convinced. I think that Angular had a lot of potential when it came out and also a lot of momentum. Obviously this was something that resonated with people and Angular scratched that itch. That being said, it didn't take very long to find the seams with angular and what's worse, when you found them it was difficult to find solution for them. Today Angular is a bit of a beast. It doesn't seem as agile and elegant as it once did and I think with other lighter-weight options like React making a big splash we are going to see more and more "Angular Devs" migrate to new frameworks.
Finally a bit on Typescript. I will admit that I've only glanced at the docs for typescript but what I see doesn't wow me. I still dont understand why people are so excited to add classes to JS (this isn't unique to Typescript however). Or how about type checking? I've been developing several years now and again, I don't see the big hoo haw over type checking either. These are just a few examples of course. My thought: use JS as it was designed. It is a tool and learning how to use the core tool effectively is so much better than all these shims and jigs.
So in closing, I am not excited for Angular 2.0. I think that not only is it going to be work to learn, but I question the value of that work and also where the direction of the project is headed overall. Will I keep an open mind about it? Sure. But don't be surprised if migration happens.