Angular 2 VS Aurelia? 2017

Я оцениваю многие системы SPA. Я застрял со следующими двумя и не могу решить, какой из них следует использовать для моего предстоящего проекта:

  • Angular 2
  • Aurelia

Оба фреймворка promises много операций. Я действительно был в восторге от angular 2, поскольку он поддерживается Google и был адаптирован многими крупными компаниями. Поэтому я сделал сравнение моих собственных (скрестив пальцы) извинения поклонникам angular;). Я тоже фанат, но.....

Вот что я сделал:

Angular 2

  • Скачан QuickStart из https://github.com/angular/quickstart/archive/master.zip
  • Следуйте инструкциям быстрого запуска и запуска приложения, настолько хорошо
  • Теперь взгляните на вкладку "Сеть" в хром-инструментах разработчика. WOW, я вижу по крайней мере 36 запросов http и общий размер этого простого приложения около 1,4 МБ.
  • В Googled немного, и мы обнаружили, что мы можем уменьшить размер и свести к минимуму до 50k и http запросов до 10, следуя AOT, treeshaking, gzip.... alot других методов. Достаточно достаточно.
  • Наконец, сравните стиль кодирования: для отображения Hello angular нам нужно создать main.ts, app.module.ts, приложение .component.ts. Каждый файл должен включать @Component() декоратор, поэтому требуется импортировать ядро ​​ angular почти на каждый модуль. Затем импортируйте этот компонент в module.ts, а затем загрузите main.ts.

Aurelia

  • Загружено с http://aurelia.io/downloads/basic-aurelia-project.zip
  • Следуя инструкциям по быстрому запуску.
  • Добавлено два файла app.ts и main.ts с миром приветствия в нем.
  • Запустить приложение, с которым оно работало до сих пор, настолько хорошо.
  • проверила вкладку сети в инструментах разработчика, она отображает 0.9MB и 9 запросов http.
  • После выполнения одной и той же процедуры, чтобы минимизировать размер с помощью gzip и bundling, он достигает примерно 170kb с 5 запросами HTTP.

Наконец, сравнил стиль кодирования обеих фреймворков. Ясно, что Aurelia имеет понятный код, который легко понять.

Единственный недостаток, который я вижу в Aurelia, - это довольно новый и почти неизвестный многим разработчикам JS и до сих пор имеет бедное сообщество.

Я вижу их как Microsoft Windows (Angular 2) и Apple (Aurelia). Apple более стабильна и имеет определенный диапазон пользователей, с другой стороны, Microsoft Windows практически везде.

Что мне делать? Пожалуйста, помогите.

Спасибо

Ответы

Ответ 1

Возможно, для вас полезна следующая AMA, хотя сейчас она немного старше: AMA с командой Aurelia

Наиболее важные вопросы Q & для вас следующие (только цитируемые):

Считаете ли вы, что Angular 2.0 отклоняется от стандартов? Aurelia стремится быть стандартом и независимым?

В этом случае это не вопрос веры, а факт. Если вы посмотрите на спецификацию HTML и посмотрите на Angular 2, вы увидите, что они не гармоничны.

Более года назад команда Angular 2 представила свой символический синтаксис привязки. Хотя это был стандарт, совместимый с технически стандартами, сообщество отметило, что это не соответствует SVG (я сам этого не подтвердил). Хотя члены сообщества указали на это, команда Angular 2 не внесла никаких изменений в свой дизайн. Начиная с Beta 2, они фактически приняли дополнительный синтаксис атрибута/элемента, который включает ограничения чувствительности к регистру. HTML не чувствителен к регистру, и, таким образом, это нарушает спецификацию. В результате на самом деле невозможно получить Angular 2 для работы с парсером браузера, API DOMParser или даже innerHTML, потому что этот механизм "нормализует" корпус по-разному в зависимости от браузера и, таким образом, t быть "доверенным". Это означает, что если Angular 2 зависит от обсадной колонны (т.е. NgFor и ngModel attrs), браузер не сможет справиться с этим. Для решения этой проблемы я понимаю, что команде Angular 2 пришлось реализовать собственный собственный парсер разметки. Итог: я не уверен, что они называют своим языком просмотра, но это не HTML.

Для Aurelia соблюдение стандартов очень важно. Мы упорно трудились, чтобы согласовать с существующими и новыми стандартами и ничего, что противоречило бы с ними или нарушать их не делать. Мы должны добавить дополнительные возможности, которые еще не охвачены (например, привязка данных), но мы сделали это таким образом, который соответствует существующим и появляющимся веб-стандартам. Мы планируем продолжать эту модель на неопределенный срок, потому что хотим, чтобы разработчики Aurelia были хорошими веб-разработчиками.


Я родом из angular, почему я должен использовать aurelia, а не Angular 2? Мое преимущество в том, что я уже знаю Angular и что существует огромное сообщество. Спасибо.

Во-первых, я считаю важным исправить это предположение. Предполагается, что Angular 2 является просто инкрементным или эволюционным изменением в Angular 1. Это неверно. Единственное, что между Angular 1 и Angular 2 - это буквы A, N, GU, L, A и R. Это две совершенно разные структуры, написанные на разных языках программирования, с разными архитектурами, разные концепции, различные методологии развития, различные возможности, разные сообщества... разные все.

Я нахожусь на моем мыльнике здесь... но я думаю, что было немного обманчиво называть эту фреймворк Angular чем угодно. Это совершенно новая и разная библиотека, не имеющая связей со старым. Это должно было дать новое имя. Тем не менее, они дали одно и то же имя именно по причинам, которые вы упомянули. Они хотят, чтобы вы не думали о принятии Angular 2, потому что считаете, что это просто инкрементное или эволюционное изменение, а не нечто совершенно иное.

Портирование с Angular 1 до Angular 2 - это огромная работа, даже с их инструментами "миграции", которые вообще не являются инструментами миграции. Это стратегии интеграции. Миграция на самом деле требует большой работы. Вы должны полностью переписать и передумать, как написать свое приложение. Некоторое приложение Angular 1 не может быть достигнуто в Angular 2 из-за того, что Angular 2 заблокировал или удалил некоторые возможности, связанные с динамической компоновкой пользовательского интерфейса и наблюдения выражений привязки.

Интересно, что на самом деле проще переносить приложение Angular 1 в Aurelia. У нас есть масса людей в сообществе, которые сделали это и были очень довольны опытом. Вот краткий список преимуществ, которые Aurelia имеет над Angular 2:

  • Aurelia - намного меньшая библиотека. Angular 2 имеет размер 750 кбит и не включает маршрутизатор, анимацию или клиент http. Это не то, о чем когда-либо приходилось думать о том, чтобы когда-либо появляться на производстве. Aurela составляет 350 тыс., И это включает маршрутизатор, анимацию и клиент-клиент. Если вы ориентируетесь на современные браузеры и вам не нужны все полиполки, которые мы предоставляем, вы можете даже уменьшить этот размер до 100 000.
  • В независимом тестировании рендеринга рендеринга dbmonster Aurelia работает так же быстро и быстрее, чем Angular 2. С нашим плагином ui-virtualization он почти в 2 раза быстрее, чем Angular 2.
  • Aurelia соответствует стандартам; Angular 2 нет. Подробнее см. В другом ответе AMA.
  • Aurelia лучше поддерживает разделенные шаблоны презентаций, такие как MVVM. MVC и MVP. В Аурелии существует четкое разделение между видами и видами взглядов; все обязанности находятся на своем месте. В Angular 2 вы должны настроить свою модель представления с внутренними деталями реализации представления, тем самым нарушая инкапсуляцию и затрудняя или невозможное повторное использование моделей или представлений. Это также значительно увеличивает затраты на обслуживание и затрудняет работу команд разработчиков на компонентах.
  • Аурелия очень ненавязчива. По большей части вы пишете простой код ES 2016 или TypeScript. Вы не видите рамки очень или совсем не в вашем JavaScript-коде. Он остается в стороне. Это чрезвычайно важно для долговечности и обслуживания вашего кода, а также для обучения и удобочитаемости. Angular 2, напротив, должен быть импортирован повсюду, а его метаданные требуются во всем коде. Это очень тяжелая конфигурация, равно как и Angular 1, только конфигурация выглядит по-другому.
  • Aurelia более совместима с другими библиотеками, чем Angular 2, потому что мы не используем дайджест или абстрактно DOM ненужно. Чем ближе рамки к стандартам и чем больше он будет оставаться, тем более интероперабельным будет.
  • Наконец, Aurelia поддерживается Durandal Inc. Единственная цель компании - построить Aurelia, ее экосистему и поддержать ее. С другой стороны, Angular 2 является одним из шести конкурирующих интерфейсов пользовательского интерфейса внутри Google. Каждый хочет сделать себя похожим на "благословенный стек Google", но ни один из них не является. На самом деле официальный представитель Google не поддерживает и не поддерживает ни одну из этих библиотек. Это побочные проекты с открытым исходным кодом различных команд, которые их создают. В случае Angular 2 он создан командой Green Tea, чья настоящая работа заключается в создании внутреннего CRM-приложения.

Есть много других причин... но это немного.