Автор оригинала: Chris Cordle.
TL; DR – Angularjs – достойная идея в 2012 году, но в 2017 году экосистема JS вышел из угловых углов в зрелости, гибкости и производительности. Благодаря WebPack, NPM на внешнем конце, а зрелая экосистема инструментов и библиотек, довольно легко поддерживать большой, гибкий, хорошо спроектированный спа с реагированием, Vue или другими легкими библиотеками JS, Даже на предприятии компании с большими командами Отказ
Кроме того, беспокойный 3-летний 3-летний цикл развития 3/4 и девматическими архитектурными решениями должен предоставить любую паузу компании, прежде чем рассмотреть вопрос о принятии этой новой структуры.
—
Это 2017 год. Вы хотите построить или переписать свою переднюю архитектуру. Вы много слышали о реакции против угловых и как они контрастируют и сравнивают. Дебаты проживали на протяжении многих лет. Многие люди скажут вам, что это кокс против споров Pepsi, рамки против библиотеки, компромиссы, плюсы/минусы и т. Д. Но в 2017 году легко увидеть, что угловой 2/4 никогда не достигнет вершины Статус статуса его популярных Angularjs предшественника.
2012 год: почему Angularjs получил популярную
Angularjs стал очень популярным благодаря его легкому двустороннему связыванию данных, архитектуре MVC, встроенной модульной системе, инъекции зависимости и пакета маршрутизации. Первоначально построено в качестве проекта хобби, Misko Hevery в 2009 году, структура начала взлететь вскоре после выпуска 2012 1.0. Это быстро стало самым популярным спа-каркасом для спецоперации развития.
В 2012 году экосистема JavaScript была очень разным местом. Нокаута, Backbone, Ember, Angular, и, возможно, некоторые другие были сокрушительными для доли рынка JS Framework. ES6 еще не было. NPM не использовался для переднего кода. Библиотеки и рамки не были зрелыми. Стив Сандерсон, из славы нокаута, дал большую оценку фронтального пейзажа в то время, следуя за конференцией « Throne of JS ».
Angularjs решил много проблем для веб-разработчиков из коробки. Для простых спа-салонов он ударил сладкое место продуктивности. Приспособление начала расти, пользовательские библиотеки директивных директив были выпущены, а платформа очень быстро выросла.
Однако, как разработчики начали строить профессиональные, богатые, полноценные приложения в рамках с большими командами в течение длительных периодов времени, его ограничения начали показывать. Двусторонние передачи данных, наблюдатели, переменные в $ $, государственное управление, запутанные и повторяющиеся абстракции, такие как фабрика/сервис, а также Многие другие проблемы ингибировали Angularjs в производстве.
На пике популярности угловых углов в 2014 году команда за угловой, объявила, что они будут создавать совершенно новые несовместимые рамки. Они будут смущенно, возможно, даже обманывать, этикетки эти новые рамки угловые 2.
Angular 2.0 Объявление Ballfires – Jaxenter _Following недавнее объявление о угловом 2.0, разработчики затопили форумы и комментарии разделы с angry … _jaxenter.com
Это противоречивое объявление было встречено с множеством скептицизма и критики в сообществе разработчика. Поскольку ни один путь обновления не будет предоставлен, каждое приложение, построенное с Angularjs, необходимо переписать с нуля. Сообщество раскололось, и хотя некоторые будут придерживаться, чтобы увидеть, если угловые 2 будут соответствовать своим обещаниям, другие решили искать в другом месте для развития в первом месте.
2013 год: как реагировать революционизированное развитие передней части
На вершине JavaScript усталость В 2013 году Facebook Reach Open-Porty React после использовании его в производстве более двух лет. Реагируйте себя как V в MVC (моделей-контроллер). Он полностью встряхнул передне-конечное сообщество JS с односторонним потоком данных и ее мертвой модели функциональной компоненты.
В 2013 году угловые и все другие JS Framework представляли собой двустороннюю связывание данных в качестве функции. Реагируют и сказали нам, что это была плохая идея. Двусторонние передачи данных отлично подходят для простых приложений, но в производстве, в масштабе, с большим количеством государства Это может легко стать спагетти. Многие непредсказуемые побочные эффекты могут быть вызваны. Двухсторонняя связывание данных была Особенность В 2013 году и Facebook сказали, что это был ошибка. Оказывается, они были правильно Отказ Эмбер, угловой, Vue, и другие позже будут принять одностороннюю модель.
Тем не менее, Facebook не было оказано о государственном управлении. Вместо этого он предложил «поток» в качестве решения, который был более рисунком, чем фактическая библиотека или структура. Вскоре после объявления React в 2013 году … Дюжины реализации FLUX прибыли на сцену, включая Flummox , Alt , FluxXor , Martyjs , Mcfly и т. Д., И т. Д. И т. Д.
Мы достигли пика «усталость поток», когда, 2 июня 2015 года, Дэн Абрамов выпустил Redux Отказ Вдохновлен Elm Язык, redux принес предсказуемое, функциональное, поддерживаемое управление государством для JavaScript. Redux представил действия и редукторы, которые следуют на шаблоне, который разделяет сходства с Событие Sourcing , который является обычным шаблоном архитектуры программного обеспечения в задневших серверных технологиях. Откровенные декларативные декларативные модели управления данными разрешены для удаления состояния легко и масштабироваться с приложением.
Это позволило супер-питание Функциональные функции, такие как отладки для времени, перезагрузка горячего модуля и простые и простые возможности отменить/повторению. Он также поощрял функциональный рисунок дизайна, который позволяет легко реализовать свой код и легко рассуждать.
Понимание redux (или, как я влюбился в контейнер состояния JavaScript) _Introduction При исследовании какого реализации потока использовать для окончательного проекта нашей команды в Hack Reactor, мой друг … _www.youhavetolarncomputers.com
6 уроков, извлеченные от производства с React-redux _A несколько месяцев назад я опубликовал блог о том, как мы начали двигаться в Bizzabo из Backbone + TreeJS + руль … _Medium.com
Redux взял во внимание сообщество React Shower. Два года в цикл Hype Redux мы все еще видим энтузиазм. Он используется во многих компаниях по программножевым компаниям предприятия, такими как PayPal, Mozilla и Airbnb, и он формирует основу для популярной клиентской библиотеки GraphQL Аполлон Отказ Это даже принято как решение государственного управления В других рамках Отказ Сегодня это де-факто государственное управленческое решение для ввоза с реагированным.
Между тем другие инновации в ландшафте React React продолжали преобразовать интерфейс …
Серверный рендеринг
Из-за функциональной ui ui реагирования он может работать в любой среде. Многие начали осознавать это в первые дни реагирования и начали сопряжать его с Node.js, чтобы предоставить рендеринг сервера. Реагировать уже чрезвычайно быстры, но в паре с рендерингом на стороне сервера все данные загружаются в представление и отображаются на сам узел перед загруженной веб-страницей. Это позволило приложениям для одной страницы быть дружественной системой.
Март 2015: реагировать родные запуска
В марте 2015 года Facebook объявил React Reaction для iOS. Ориентируемое объявление оказало, что функциональная интерфейс ACT Regacty Ablection может быть использован, чтобы впервые написать нативные мобильные приложения.
Вместо того, чтобы многообещающие, «пишите один раз, беги куда угодно», что часто выгружается как «писать один раз, отладки везде», Facebook разбил «Узнайте один раз, пишите повсюду» как философию. Присуще этой философии заключается в том, что в то время как можно поделиться большой частью кода между платформами, часто существует много нюансов между платформами, которые должны быть однозначно адресованы. React Nature предоставляет интерфейс для устранения этих различий на платформе.
В течение 6 месяцев они будут включаться, чтобы запустить поддержку Android. Выручки производительности были удивительными, позволяя разработчикам поделиться на 90% или более кодексах по мобильным платформам с по-настоящему родным исполнением рендеринга.
Позже Microsoft будет выпустить реагировать нативные библиотеки для построения приложений Windows: https://github.com/microsoft/reaCt-native-windows Отказ
Сегодня реагируйте на родные силы Instagram, Facebook, Wal-Mart, Baidu, Skype, DiscoD и MELW других профессиональных приложений.
Сравнение производительности между родным IOS (SWIFT) и реактивным React-Nature – это гибридная мобильная каркас, которая позволяет создавать приложения, используя только JavaScript. Однако в отличие от других гибридов … _medium.com
Мы можем быть почти уверены, что реагирующие и реагирующие являются конкурентными преимуществами. Мы можем видеть доказательства в том, как Facebower одновременно запустил Snapchat, подобные «историям» в четырех приложениях (WhatsApp, Messenger, Facebook и Instagram) в его товаре.
Facebook скопировал Snapchat в четвертый раз, и теперь все его приложения выглядят одинаково _Facebook не оказывается заинтересованным, предоставляя каждому из своих основных услуг уникальной идентификацией ._www.recode.net
Эффективно блокируя рост Snapchat:
Copycats Facebook, кажется, сокрушитель пользовательских номеров Snapchat _Facebook выпустил некоторую информацию о пользователе в среду – и кажется, что, по крайней мере, некоторые из его Snapchat-конкурентов … _WWW.CNBC.com
Объединение своей кодовой базы вокруг реакции явно вносит вклад в скорость Facebook в качестве организации.
NPM, ES2015, Babel, & WebPack
В то время как Facebook быстро инновационировал на последствиях реагирования, несколько ключевых событий произошли параллельно в интерфейне JavaScript.
JavaScript давно пострадал из-за отсутствия определенных языковых функций. В частности, классы, модули и лямбдас были пропущены. ES2015 представила множество новых языковых функций, включая эти три и Многие, много, больше Отказ Одной из долгосрочных проблем с JS является поддержка кросс-браузера для новых языковых функций. Бабел дал нам возможность использовать все эти новые языковые функции, прежде чем IE, Chrome, Firefox, iOS и другие могут высказать поддержку, составив ES2015 в соответствии с SES5-совместимым JS.
С WebPack Мы получили фантастический инструмент для легко подключения CSS, JS, HTML и других проектных активов. WebPack загружен мощными функциями, которые не были возможны всего несколько лет назад. Минификация, ленивая загрузка, дрожание деревьев и целая множество функций оптимизации теперь в любом веб-разработчике.
Система соединения WebPack включила другую мощную функцию: NPM для интерфейса. В качестве управляющего пакета по умолчанию для Node.js и как в мире крупнейший в мире программный реестр, NPM – это практически для каждой публичной библиотеки JS в существовании. Это в основном приложение для JavaScript.
В 2013 году было трудно собрать библиотеки js и зависимости и создавать фронт-код в пригодной форме. В 2017 году довольно легко благодаря мощности этих инструментов.
Сентябрь 2016: Angular 2 Наконец прибывает … Март 2017: Угловая версия 4
После большого задержанного и проблемного цикла развития, включая отъезд двух архитекторов, которые вы и Роб, Эйзенберг из Google, который продолжал создавать свои собственные рамки Vue и Aurelia соответственно … угловые 2, наконец, прибыл на сцену.
В промежуточное время между сентябрем и март угловая закрепила свои разбитые CLI и ввела несколько более нарушений изменений. Команда запустила угловые 4 как просто угловые и теперь привержена новым выпускам каждые 6 месяцев.
Угловая 2/4 и поднятие совершенно отличается, поскольку команда впервые упоминала в 2014 году. Она построена на Tymdscript и RXJS, которые являются двумя 3-го вечеринка для типов, декораторов и реактивного, наблюдаемого государственного управления.
Angular 2/4 приносит совершенно новую компонентную систему, которая сильно опирается на Thmyscripts Decorators, SystemsJS Modules, Rxjs наблюдается, а также на заказ HTML-синтаксис Angular.
Компонентная система является ядром современного развития UI. Реагируйте решающие компоненты так хорошо, что веб-компонент W3C стандартный никогда не взлетел Отказ
Синтаксис компонентов угловых углов одинаково более глубоко, чем реагировать. Он может занять 10x как много кода в угловой и более проводке и церемонии, чтобы описать тот же выход. Вместо того, чтобы обнимать первую философию JS, угловые компоненты вместо этого размещают логику внутри HTML, что делает компоненты труднее тестировать, сложнее для рассуждения, и ограничивает вас к функциональности Custom DSL Angular, вместо Turging javaScript XML (JSX) Отказ Примечания по выпуску Angular 4 даже пошли до тех пор, чтобы «еще» с * NGIF как новая особенность Отказ
Angular 4 прибывает на сцену в 2017 году в совершенно другом мире, чем в 2012 году, чем ангулярные. Он приносит более многословный синтаксис, чем реагировать, тяжелый вес набора инструментов, которые многие имеют Вопросы с производством и без различимых достижений в производительности или ремонтопригодности по реакции.
Преимущество первого движения Rect на MELW технологий, от нативных приложений к VR Для рендеринга на стороне сервера к горячему модулю перезагружается к модулям CSS, чтобы эскиз интеграции означает, что угловые 4 борются догонять. Это никоим образом не реагировали на него. В 2017 году он довольно далеко за экосистемой Rection в возможностях и зрелости.
Реагировать намного проще
Угловые 2/4 вводит более 500 концепций API верхнего уровня, которые созревают для постоянных нарушений изменений в будущих версиях угловых.
Угловые 2/4 производит тяжелый код с раздутым размерами файлов. Использование предпортирующего компилятора Angular создает файлы, которые являются 3-5x больше, чем источник Даже после закрытия компиляции.
Реакция имеет лучшую производительность
Тесты для реагирования последовательно показывают свою превосходную производительность на угловых 2/4: https://auth0.com/blog/more-benchmarks-virtual-dom-vs-angular-12-vs-mithril-js-vs-the-rest/ Отказ
Сомнительное утверждение: «Угловой лучше для больших команд»
Часто утверждается, что угла лучше для предприятия, и это предполагаемое сладкое сладное место этой рамки. Однако это требование не подкреплено фактическими результатами производства или самой истории. Есть несколько предприятий, угловые 2/4 приводит к производству сегодня. Видеть, как это менее 9 месяцев из бета, это должно быть не удивительно.
Не существует примеров некоторых компаний, перемещая большую кодовую базу из React/Redux для угловых 2/4 и видения производительности, пригодности или повышения производительности.
Даже после 3 лет в развитии с постоянным, болезненным, нарушением изменений … Ранние отзывы смешаны :
Технологический радар | Тенденции развивающихся технологий на 2017 год | Мыслительные работы _ Что происходит на языках и каркасных квадрантах разумных технологических радаров? Узнайте, что нового или … _www.thogeworks.com
Я бы поставил, что на этом этапе он на угловой 2/4 к Доказать То, что он достигает превосходных результатов и опыта пользователей в производстве в масштабе предприятия. Это еще предстоит увидеть, несмотря на годы обещаний и тонн шумиха.
Для чего нужно оптимизировать предприятие? Он должен стремиться для ремонтопригодных на строительстве, программное обеспечение, построенное с боевыми тестами, зрелой оснащением.
Дополнительные рамки должны иметь: устойчивость, активность, экосистема, сообщество, кривую обучения, навыки на рынке труда, а также облегчает миграцию.
React имеет 6 лет срока погашения и проверенной ремонтопригодности в масштабе Facebook, и он включает в себя некоторые из самых сложных корпоративных систем в мире на таких компаниях, как Twitter , Слабый , Атласский , Netflix , Salesforce , Microsoft , Яблоко , Клип , Wal-Mart , WordPress , Nytimes , и много других. Люди видят очень реальные, очень четкие производственные преимущества на предприятии. И пользовательский опыт, создаваемый этими системами, следует больше говорить о результатах, которые достижимы с реагированными.
Реагирование было гораздо более устойчивым, чем угловые. Когда это изменяется, Facebook выпускает код моды, которые Автоматически обновлять основу вашего кода Отказ
Раскошенная экосистема угловой
Важно отметить, что поскольку угловые 2/4 & Ionic 2/3 были полностью переписаны несовместимым образом, все директивы и модули, которые были написаны для Angularjs, полностью недействительны для этих новых структур. Это означает, что когда вы начинаете с угловых 4 и Ionic 3 в 2017 году, богатая экосистема Angularjs настраиваемых настраиваемых не доступна для вас.
Сообщество JS переместилось на легкие рамки, такие как Vue и реагируют на порядок на угловых 2/4:
Количество пакетов NPM Реагировать: 31 654 Реагировать на нативных: 5,521 Vue: 4,657 Угловой 2: 4,510 Угловые 4: 527 Ionic 2: 207 Ionic 3: 31
Когда вы начинаете приложение в 2017 году, сколько пользовательских работ вы хотите сделать? Хотите катить свое собственное и надейтесь, что экосистема растет с вами или воспользуется богатой, зрелой экосистемой компонентов, которые были открытыми благодаря талантам фронта мирового класса от таких как Airbnb , Facebook, PayPal, Microsoft, Apple, Yahoo, Lyft и многое другое?
Facebook тяжело реагирует в производство; Google не так много
Многие люди выбирают угловой, потому что они слышат, что это инструмент, созданный Google. Поэтому они предполагают, что из-за того, что это Google, поэтому он должен быть основой, который преимущественно используется в Google для предельных приложений. Следовательно, он должен быть тестирован и проверен в Google-Scale в производстве. Они были бы неправы в этом предположении. По правде говоря, Google доверяет закрытие для большинства приложений, которые вы знаете и любят, включая поиск, новости, Gmail и т. Д.
Библиотека закрытия |. Разработчики Google _Create мощный и эффективный javascript._developers.google.com
И они используют SPF для YouTube:
SPF. _AA LESTEREWAY JS Framework для быстрой навигации и обновлений страниц от YouTube_youtube.github.io
Угловой используется минимально в производстве в Google. Мы можем предположить, что с его проблемным циклом развития, большим размером пучка и тяжелой весовой природой, не усердно видеть, почему: веб-сайты Google зависят от быстрой загрузки и выполнения, и это что-то угловое не сияет.
Битва закончилась: реагировать
Угловая команда моргнула, и вся экосистема JavaScript прошел мимо их. Теперь довольно легко выбрать из буфета вариантов для создания веб-приложения предприятия, используя библиотеки, тестируемые библиотеки, которые используются в производстве на крупномасштабных компаниях.
В 2017 году React стало доминирующим выбором предельной разработки. В настоящее время он находится на 4-м самым ролике репозитория на Github, что делает его самым популярным хранилищем JavaScript Framework.
С 4,4 миллиона загрузки в месяц на NPM реагировать более чем у тройки использования нынешних 1,4 млн. Загрузки в месяц, и он растет в тройной скорости.
Оспределить 9000 разработчиков JS было проведено в 2016 году, и нашел реакцию, имел степень удерживания разработчиков на 92% по сравнению с уровнем удержания на 64% угловых 2%. Благодаря реагированию 3 раза более популярным, растущим при 3x скорость и угловой, удалось только сохранить чуть менее 2/3 своей основы разработчиков … легко увидеть, что реакция уже выиграла.
Состояние опроса JS 2016
Реагирование и его экосистема создала электростанцию, продуктивную интерфейсную стопку, которая поддается молнию быстрого, ремонторуемого развития, которое не построено на выступлении, но и результатов производства.
Facebook/реагирует _react – декларативная, эффективная и гибкая библиотека JavaScript для построения пользовательских интерфейсов ._Github.com
Будущее развития пользовательского интерфейса принадлежит реагированию и другим легким формам JS, как Vue. Угловая 2/4 слишком мало (возможно, слишком много), слишком поздно.