Polymer or AngularJS - what to use?

What's the difference between Polymer and AngularJS? This is an essential question, because both are rich application frameworks and both are created in Google. Well, the popularity of AngularJS is increasing dramatically! It is probably even more popular now, than the BitCoin was when it costed around $1000 per BTC. Look at the closest competitors, Backbone.js and Knockout, they not just didn't take off, but are not standing on the ground now. Also I am giving a respect to them as they were fundamental part of the web evolution!

However a disturbing thought for many Angular funs is that Google isn't using AngularJS for internal projects. Instead they recently updated Google Maps app and launched Inbox by Gmail app, which look so different from other projects so that gave a birth to conspiracy theories about Google using Polymer to build their apps.
Well, that would be great if it were.

In fact Inbox is done with Material Design which looks so neat and is used by Polymer UI. This could be a good explanation why people think Inbox is a Polymer based project. However there is a complete list of Polymer projects, which does not include Inbox app. Perhaps yet?

All right, let's compare Polymer and AngularJS.

Feature Polymer Angular
Templates Yes Yes
Web Components Yes
Material Components Yes Limited
Data Binding Yes Yes
Filters Yes Yes
Animations Yes Yes
Events Handling Yes Yes
Touch and Gestures Yes
Routing Limited Yes
AJAX / REST AJAX REST

As we can see Polymer relies on the Web Components, which are only supported by the modern browsers, while AngularJS tries to achieve similar, but simplier functionality with Angular Directives. In detail Polymer architecture looks like on following image, which I've brought from the discussion about AndularJS and Polymer.

In fact Web Components makes code much clear and reusable and I bet many developers would love it. I recommend you to watch this video by Eric Bidelman who is working on Polymer.

So answering a question we've risen earlier, I would say production application would prefer to have AngularJS because of the compatibility with older browsers. And if you are looking into a future, you should start learning WebComponents and Polymer. This is my answer!

Similar Entries