AngularJs vs EmberJs

Questions

For each of the criteria, here are the main questions that we will be taking a look at:

Learning curve

  • How fast can you get going and get productive with the framework?
  • Can you get by with Google and Stackoverflow?
  • Do you need to take a course to learn it?
  • How does this change as the application gets more complex?

Models

  • What syntax is used to express models?
  • What additional libraries do you need to use models?
  • How easy is it to get/ sync models between client and server?

Views

  • What syntax is used to express views?
  • How do they interact with the controllers, models, and router?

Controllers

  • What syntax is used to express controllers?
  • Declarative or imperative?
  • Support for two-way data binding, between the models and views?

Router

  • What syntax is used to express a router?
  • Does the router support flat or hierarchical routes?
  • What additional libraries do you need to use the router?

Templating

  • What is the templating syntax?
  • Declarative or imperative?
  • What additional libraries are used?
  • Are the templates string based or DOM based?
  • Are the templates easy to work with for designers who are not developers?

Components

  • What syntax is used to express a component?
  • What level of abstraction do these components sit at?
  • How well do these components align with the current draft specification for web components?

Dependency management

  • What syntax or convention is used to express that one module depends upon another?
  • Does the framework encourage modular development to begin with?
  • How robust is this means of managing dependencies between modules?

Build tooling

  • What build tools exist to build an application using each framework?
  • What limitations do the current build tools have, and what are they good at?
  • What future build tools are in the pipeline?

Opinionation

  • How opinionated is the framework with regards to how to develop an application?
  • How does this opinionation benefit and detract from the framework?

Development tooling

  • What tools exist to allow easy debugging of the application?

Dependencies

  • What external libraries does each framework depend upon?

Community

  • Who develops the framework, and who backs it?
  • What is the size of active users of the framework?

Track record

  • Who currently has applications in production built with each framework?
  • What is the profile of the applications developed with each framework?

Contributions

  • What is the nature of the open source contributions to each framework?

Maturity

  • How long has each framework been around?
  • How stable is each framework?

Level of abstraction/ structure

  • What levels of abstraction around the concept of single-page application does each framework provide?
  • What implications do these levels of abstraction have on the development process?

Testability

  • How can one go about unit testing an application built using each framework?
  • How can one go about end-to-end testing an application built using each framework?
  • How testable are applications built using each framework?
  • What is the level of importance accorded to testability by the authors of each framework?