Angular vs Ember

Анализируя какой фреймворк взять для проекта сделал небольшой сравнительный анализ AngularJS и Ember.js на основе статей, видео конференций и собственного опыта.

То что получилось кратко-тезисно:

Преимущества AngularJS

  • Применение патерна Dependency Injection, что делает каждый модуль более независимым, а приложение более гибким в целом
  • декларативность – использует расширенный html и не требует дополнительных модулей работы с шаблонами
  • REST-дружелюбный (а в случае с restAngular – REST-ориентированный)
  • намного меньше строк кода (15k < 35k)
  • большое open sourse сообщество
  • google
  • есть набор удобных фильтров (дата, валюта и т.д.)
  • полностью покрывается юнит-тестами, возможность модульного тестирования “из коробки”
  • быстрый старт 

Преимущества Ember.js

  • структурный подход
  • четкое MVC разделение
  • URL-ориентированная разработка

Недостатки AngularJS

  • области видимости $scope не совсем прозрачны, отсутствие строгого контроля со стороны фремворка позволяет не опытному разработчику заложить много “мин замедленного действия”
  • строго html-ориентированный
  • система маршрутизации ($routeProvider) требует серьезных доработок
  • отсутствует возможность отложенной загрузки модулей (lazy-loading)
  • отчеты об ошибках
  • монолитность, невозможность использовать компоненты отдельно

Недостатки Ember

  • структура перегружена
  • высокий порог входа
  • app-oriented
  • tests
  • зависимость от шаблонизатора
Понравилась фраза разработчика Ember.js: “Сравнение в данном случае не уместно, потому что Ember.js – это фреймворк, а AngularJS – это инструмент для создания фреймворков“.
P.S.: если есть что еще добавить – пишите – с радостью дополню пост