AngularJs vs EmberJs


I would like to kick off this series of articles by defining what exactly we will be comparing, when comparing AngularJs to EmberJs.

The space that these two operate in - JavaScript frameworks used to develop single-page applications - is a rather complex one. It is complex because of the number of different issues, concepts, and even philosophies, that SPAs touch. Furthermore, this area is a moving target, because SPAs are a fairly new thing, and still going through the initial stages of rapid development.

Thus, the only certainty here is that there is no definitive answer. We shall try, nonetheless.

Why criteria are necessary

Without facts, opinions will have their day in the park. We want to make this as objective as possible.

Also it helps you, the reader, know if this series of articles is going to be worth your time reading.

If - and I know this is a silly example - the better logo is of utmost importance, and you wish to choose your framework based on that; then these articles are not for you, because you will not see this being listed as one of the criteria below.

That being said, if I have missed out on something out below, and you think it would benefit the discussion, let me know, or submit a pull request.

What the criteria are

  • Learning curve
  • Models
  • Views
  • Controllers
  • Router
  • Templating
  • Components
  • Dependency management
  • Build tooling
  • Opinionation
  • Development tooling
  • Dependencies
  • Community
  • Track record
  • Contributions
  • Maturity
  • Level of abstraction/ structure
  • Testability

There we have it, all the criteria that this series of articles will cover!

A note on fairness and polarisation

Which one is better at what?

One framework is going to better than the other on some things, and the other way around on the others.

It is worth pointing out here that this a fairly polarised topic, with the communities of developers using each of these frameworks, firmly believing that their framework of choice is the best thing since sliced bread (or at least way better than the other).

Thus I feel that it is necessary to do a little bit of a disclaimer here, and state that I belong to neither camp. I have worked with jQuery mobile, and BackboneJs before; and have also been keeping abreast with both AngularJs and EmberJs, but have not developed anything more complex than a Todo application.

tl;dr= I am going to be fair and unbiased.