Некоторое время назад мы опубликовали статью, в которой сравнили Angular 2 и React. В ней мы обсудили плюсы и минусы этих фреймворков и предположили, что стоит выбирать в 2017 году для различных конкретных целей. Но как обстоят дела в саду фронт-енда в 2018 году?
Фреймворки JavaScript развиваются очень быстрыми темпами, поэтому сегодня у нас есть часто обновляемые версии Angular и ReactJS, а также версии нового игрока на этом рынке — Vue.js.
Мы проанализировали количество открытых вакансий во всем мире, которые требуют конкретных знаний определенного фреймворка. В качестве источника мы взяли сайт Indeed.com и получили следующие данные среди более 60 000 вакансий.
Беря во внимание полученные данные, мы решили поделиться основными преимуществами и недостатками каждого фронт-енд фреймворка и, таким образом, помочь техническим специалистам или инженерам выбрать наиболее подходящий из них для своих нужд.
Плюсы и минусы Angular 5
Angular — это такой супергеройский фреймворк MVVM JavaScript, основанный в 2009 году, который идеально подходит для создания интерактивных веб-приложений.
Преимущества Angular 5:
- Новые функции, такие как улучшенный RXJS, ускоренная компиляция (менее 3 секунд) и новый лаунчер HttpClient.
- Подробная документация, которая позволяет каждому разработчику получить всю необходимую информацию без обращения за помощью к коллегам. Тем не менее, обучение требует немалого времени.
- Двусторонняя привязка данных, которая обеспечивает превосходное поведение приложения, что минимизирует риски возможных ошибок.
- MVVM (Model-View-ViewModel), которая позволяет разработчикам раздельно работать в одном разделе приложения с использованием одного и того же набора данных.
- Внедрение зависимостей функций связанных с компонентами с модулями и модульности в целом.
Недостатки Angular 5:
- Сложный синтаксис, который исходит от первой версии Angular. Тем не менее, Angular 5 использует TypeScript 2.4, который изучить не так уж сложно.
- Проблемы с миграцией, которые могут возникнуть при переходе от старой версии к новой.
Компании, которые используют Angular 5: Upwork, Freelancer, Udemy, YouTube, Paypal, Nike, Google, Telegram, Weather, iStockphoto, AWS, Crunchbase.
Плюсы и минусы ReactJS
ReactJS — это библиотека JavaScript, исходный код которой был открыт Facebook в 2013 году. Этот фреймворк отлично подходит для создания огромных веб-приложений, где данные могут меняться на регулярной основе.
Преимущества ReactJS:
- Легок в изучении. React гораздо легче учится ввиду простоты его синтаксиса. Инженеры просто должны вспомнить свои навыки написания HTML и всё на этом. Нет нужды в глубоком изучении TypeScript, как в случае с Angular.
- Высокий уровень гибкости и максимальная отзывчивость.
- Виртуальная DOM (document object model), которая позволяет упорядочивать документы форматов HTML, XHTML или XML в дерево, которое лучше всего подходит веб-браузерам для анализа различных элементов веб-приложения.
- В сочетании с ES6/7 ReactJS может легко работать при высоких нагрузках.
- Связывание данных от больших к меньшим. Это означает такой поток данных, при котором дочерние элементы не могут влиять на родительские данные.
- 100%-ая JavaScript-библиотека с открытым исходным кодом, которая получает множество ежедневных обновлений и улучшений в соответствии с отзывами разработчиков по всему миру.
- Невероятно легкий вес, так как данные, которые выполняются на стороне пользователя, могут легко быть представлены на стороне сервера в то же самое время.
- Миграция между версиями, как правило, очень проста. Также Facebook предоставляет «codemods» для автоматизации большей части этого процесса.
Недостатки ReactJS:
- Нехватка официальной документации. Сверхбыстрая разработка ReactJS не оставляет места для правильной документации, которая сейчас немного хаотична, так как многие разработчики вносят в неё индивидуальные изменения без какого-либо систематического подхода;
- React не имеет чёткой цели. Это означает, что разработчики, иногда, имеют слишком большой выбор;
- Долгое время для освоения. React JS требует глубокого понимания того, как интегрировать пользовательский интерфейс в структуру MVC.
Компании, которые используют ReactJS: Facebook, Instagram, Netflix, New York Times, Yahoo, Khan Academy, Whatsapp, Codecademy, Dropbox, Airbnb, Asana, Atlassian, Intercom, Microsoft.
Плюсы и минусы Vue.js
Vue.js — это фреймовк JavaScript, запущенный в 2013 году, который идеально подходит для создания адаптируемых пользовательских интерфейсов и сложных одностраничных приложений.
Преимущества Vue.js:
- Усиленный HTML. Это означает, что Vue.js имеет много схожих с Angular характеристик. Это может помочь оптимизировать обработку HTML-блоков с использованием разных компонентов.
- Подробная документация. Vue.js имеет очень хорошую документацию, которая может увеличить скорость обучения разработчиков и сэкономить много времени на разработку приложения с использованием базовых знаний HTML и JavaScript.
- Адаптивность. Vue.js обеспечивает быстрый период перехода от других фреймворков к Vue.js в виду его сходства с Angular и React с точки зрения дизайна и архитектуры.
- Восхитительная интеграция. Vue.js можно использовать как для создания одностраничных приложений, так и для более сложных веб-интерфейсов приложений. Самое важное, что небольшие интерактивные части можно легко интегрировать в существующую инфраструктуру, не оказывая при этом отрицательного влияния на всю систему.
- Большое масштабирование. Vue.js помогает разрабатывать довольно крупные шаблоны для многократного использования, которые можно разработать без траты огромного количества времени в виду простой структуры.
- Крошечный размер. Vue.js может весить около 20 КБ и при этом сохранять свою свою скорость и гибкость, что позволяет достичь гораздо более высокой производительности, по сравнению с другими фреймворками.
Недостатки Vue.js:
- Нехватка ресурсов. Vue.js по-прежнему имеет довольно небольшую долю рынка по сравнению с React или Angular. Это значит, что обмен знаниями в рамках фреймворка все еще формируется.
- Риск чрезмерной гибкости. Иногда у Vue.js могут возникать проблемы при интеграции в огромные проекты, а опыта о возможных решениях до сих пор нет. Но они обязательно появятся в ближайшее время.
- Отсутствие полной англоязычной документации. Это приводит к некоторым сложностям на различных этапах разработки. Тем не менее, все больше и больше материалов переводятся на английский язык.
Компании, которые используют Vue.js: Xiaomi, Alibaba, WizzAir, EuroNews, Grammarly, Gitlab and Laracasts, Adobe, Behance, Codeship, Reuters.
Итог
Для настоящего инженера нет существенной разницы в том, какой фреймворк выбрать, так как для обучения новому требуется всего немного времени. В нашей компании мы растим экспертов для работы ReactJS и Angular 2/4/5, но Vue.js также включен в нашу программу. Каждый фреймворк имеет свои плюсы и минусы. Это значит, что для каждого отдельного случая ваш выбор фреймовка может отличаться.
Перевод статьи TechMagic: ReactJS vs Angular5 vs Vue.js — What to choose in 2018?