hwdtech blog
Лучшие фреймворки JavaScript и другие платформы
для изучения в 2020 году
Знание каких фреймворков и технологий поможет вам получить хорошую работу в новом году и десятилетии.
09-04-2020
перевод, JavaScript, frameworks
Время чтения: 7 минут
Сегодня переводим для вас статью Эрика Эллиотта, редактора таких блогов на Medium, как JavaScript Scene и The Challenge, а также топового автора в разделе «Технологии».
Эрик Эллиотт помимо статей написал книги «Создание программного обеспечения» и «Программирование приложений JavaScript». Еще он является соучредителем EricElliottJS.com и DevAnywhere.io. и обучает основным навыкам разработки программного обеспечения.
Этот материал пригодится вам, если вы хотите в ближайшем будущем получить должность JavaScript-разработчика, а также познакомиться с трендовыми технологиями 2020 года и нового десятилетия. В первой части вы увидите перевод всего, что касается фреймворков, немного затрагивая TypeScript, Data Management, back-end, тестирование и функциональные инструменты.

Цель данного поста не в том, чтобы указать вам на то, какие стеки технологий и структуры являются «лучшими», «самыми любимыми» или «самыми популярными», а в том, чтобы пролить свет на то, какие из них дадут вам наилучшие шансы получить отличную работу в 2020 году и далее. Тем более что не существует такого понятия, как «лучший для всех», зато довольно легко объективно описать, что даст вам возможность достичь конкретной цели: получить job offer.
Ни одна из этих метрик не является 100%-но показательной, но для наших целей наибольшее значение имеют количество загрузок npm и количество вакансий.

Когда мы смотрим на все данные в совокупности, они дают четкую и непротиворечивую картину состояния и трендов JS-технологий. С их помощью мы изучим коэффициент окупаемости (очевидно, речь идет об окупаемости изучения той или иной технологии – прим.переводчика) для программистов, ищущих работу – это делает задачу намного проще, чем если бы мы пытались выявить «лучший фреймворк».

Давайте посмотрим на некоторые данные, но сперва…
Сначала изучите JavaScript
Прежде чем слишком уж беспокоиться о технических стеках, изучите сам JavaScript и то, как создавать программное обеспечение на его основе. Казалось бы, это очевидно, но если вы не можете объяснить, что такое композиция функций, объектов и модулей - начните с этого. Вся разработка программного обеспечения строится на композиции: мы берем большую, сложную проблему и разбиваем ее на более мелкие, которые можно решить с помощью строительных блоков программирования: функций, объектов, модулей и так далее. Мы сочетаем эти решения для формирования наших приложений. Начните 2020 год с глубокого погружения в JavaScript и software composition.
React был трендом 2019 года и, вероятно, останется им в 2020
Автору статьи нравится использовать загрузки npm как метрику, потому что они дают довольно хорошее представление о том, насколько активно используются фреймворки. Те, что обычно применяются в индустрии, будут иметь необычайно высокие показатели загрузки, так как пользователи запускают npm install на своих локальных компьютерах.
Примечание: jQuery исключен из представленного выше рейтинга, поскольку многие проекты на нем являются устаревшими, и в них не используется npm. По этой причине при любых показателях он будет сильно недооценен. Svelte же добавлен для того, чтобы дать некоторое представление о его относительном положении на рынке и объяснить его отсутствие в остальных графиках - данных для Svelte пока недостаточно, чтобы сделать значимое отображение. Например, он еще не доступен в Google Search Trends.
Агрегированные объявления о работе
В этой таблице представлена статистика по открытым вакансиям с указанием конкретного фреймворка.*
React усилил свое лидерство по сравнению с результатами прошлого года, в то время как Angular и jQuery «подвинулись», чтобы уступить место для Vue. Вот круговая диаграмма, показывающая, какова доля рынка труда для каждой платформы.
Top Framework Job Market Share
Средняя зарплата разработчиков JavaScript снова выросла в 2019 году: от 111 тысяч долларов/ год до 114 тысяч долларов/год, но это данные по Соединенным Штатам (Смотреть в источнике).
* Методология: На предмет вакансий автор исследовал сайт Indeed.com. Чтобы отсеять ложные срабатывания при поиске, он задал ключевые слова «программное обеспечение», тем самым повысив вероятность релевантности, а затем умножил результат на ~ 1,5 (приблизительная разница между списками вакансий для программистов со словами «программное обеспечение» и без них). Все результаты поиска были отсортированы по дате и проверены на предмет релевантности. Полученные значения не являются точными на 100%, но они достаточно хороши для относительных приближений, используемых в этой статье.
Google Search Trends
Как и следовало ожидать, поисковый интерес * соотносится с долей рынка труда, но есть кое-какие любопытные отличия. Мы отчетливо видим снижение интереса к jQuery в период с 2017 года по сегодняшний день, а также значительный рост интереса к Vue.js. Взгляните на диаграмму:
Как и в случае с объявлениями о вакансиях, React предстает перед нами сильным лидером, на него приходится 36% от общего поискового объема для front-end фреймворков. За ним следует Angular с его 27% и JQuery с 25%. Поисковый интерес к Vue.js значительно выше, чем его позиция на рынке труда. Но, в целом, сведения действительно согласуются с данными, представленными в предыдущем разделе. Можем предположить, что у нас есть успешное подтверждение полученной ранее информации.
* Методология: Для всех позиций данные собираются по темам, а не по условиям поиска, чтобы отсеять ложные срабатывания при нерелевантных совпадениях ключевых слов.
Фреймворки:
взгляд в будущее
Компании ищут сотрудников с навыками разработки на React гораздо активнее, чем со знанием любой другой популярной, но менее широко используемой платформы, такой как Svelte или Vue (обе имеют очень высокие оценки удовлетворенности, но сравнительно более низкое внедрение в отрасли).
Возможно, изучать Svelte или Vue – это круто, но если ваша цель - получить работу, у вас будет больше шансов, если вы сначала изучите React.
Тем не менее, Svelte и Vue получили очень высокие оценки в рейтинге удовлетворенности пользователей, согласно опросу State of JavaScript 2019. В прошлом подобные показатели стали для React предсказанием быстрого роста по сравнению с Angular, который доминировал в то время, но имел сравнительно низкие оценки удовлетворенности. Как мы видим, оно сбылось.

В 2019 году React занял первое место по уровню удовлетворенности пользователей: 89% опрошенных остались им довольны. Второе место заняли Svelte (88%) и Vue.js (87% - по сравнению с 91% в прошлом году). Маловероятно, что Svelte или Vue «украдут» достаточно пользователей React, чтобы нанести ощутимый «удар» по нему. При этом все еще существует достаточно программистов, предпочитающих Angular и jQuery, которые могут перейти на Svelte или Vue, что приведет к дальнейшему сильному росту обеих платформ в 2020 году.
И все же автор уверен, что именно владение React увеличит ваши шансы найти и сохранить отличную работу.
TypeScript против JavaScript
Нет сомнений, что TypeScript активно развивался в течение последних нескольких лет. Согласно опросу State of JavaScript, 89% пользователей TypeScript будут использовать его снова, а 66% респондентов либо работают с ним прямо сейчас, либо хотели бы попробовать в будущем (это немного меньше, чем в прошлом году – тогда этот показатель был на уровне 71%).

Но, притом, что интерес к TypeScript, безусловно, очень высокий и его использование, кажется, быстро набирает обороты, опыт работы с этой технологией пока не пользуется большим спросом на рынке труда.

Всего лишь около 7% вакансий JavaScript-разработчиков упоминают TypeScript в описании работы (Ссылка на источник). При этом, считает автор, HR-менеджеры несколько недооценивают сложность TypeScript и считают, что программист в случае чего сможет освоить его «по ходу дела», а потому, возможно, не считают нужным указывать его при публикации вакансий.
Кроме того, по мнению автора, TypeScript может иметь низкий или даже отрицательный возврат инвестиций. Он скорее может нарушить, нежели подкрепить вашу продуктивность и, если вы используете другие техники предотвращения ошибок, такие как TDD, code review и design review, то разработка на TypeScript вряд ли даст вам большое преимущество при поиске багов.

Тем не менее, есть много причин любить TypeScript, и вам, определенно, не следует его бояться или отказываться от предложений работы, если компания использует его вместо JavaScript. Поскольку TypeScript - это надстройка JavaScript, переход от JS к TS не так сложен, как изучение нового языка.

Несмотря на то, что вам не нужно изучать язык TypeScript, дабы получить преимущество на рынке труда в 2020 году, но движок TS весьма полезен даже для стандартного JS. Автор пишет,что использует его постоянно при разработке автодополнения кода(intellisense) в Visual Studio Code в том числе для javascipt. Это intellisense может быть даже улучшено с помощью JSDoc (который понимает механизм TypeScript и интерпретирует его так, как он будет интерпретировать аннотации типов) или внешних файлов d.ts, и VS Code автоматически получит определения TypeScript для используемых вами модулей.
Примечание: Уже несколько лет автор пользуется подобными преимуществами, используя TernJS и Atom, но эта комбинация нуждается в техподдержке и поддержке сообщества TypeScript engine + VS Code.
Если вы еще не пробовали разработку в Visual Studio Code, вы, быть может, захотите начать с этого. Кстати, VS Code доминирует на рынке JavaScript IDE согласно данным опроса State of JS: ей досталась доля рынка в 57%, а за ней с большим отрывом следует WebStorm с долей рынка 14%.
Data Management
Redux по-прежнему занимает лидирующие позиции в гонке менеджеров состояний, но удовлетворение и интерес к GraphQL и Apollo также растут. Мы можем ожидать продолжение развития GraphQL в 2020 году.
Тем не менее, автор считает, что есть серьезные основания выбирать Redux для управления состояниями, даже если вы уже используете GraphQL. По его мнению, вы останетесь в выигрыше от изучения Redux, даже если вы не используете фреймворки.

GraphQL - это язык запросов, который стал популярным в последние годы. У него простой синтаксис, но, поскольку он используется для full stack разработки, работа с ним влечет за собой изучение того, как подключить его к вашему data storage layer. Его интеграция может быть пугающей, но оно того стоит.

GraphQL не собирается полностью заменить собой API-интерфейсы JSON REST в ближайшее время, но в 2019 году рост его популярности ускорился, и автор полагает, что эта тенденция сохранится и в 2020 году.
Back End
Express является главенствующим фреймворком Node с очень высоким уровнем удовлетворенности и отсутствием серьезных соперников на старте 2020 года. Но с ростом числа серверов можно ожидать того, что доминирование Express в дальнейшем ослабнет.
Next.js - это full stack фреймворк для React, изначально созданный на основе Express. Но с тех пор, как он отошел от Express в сторону безсерверной и статической оптимизации, его популярность стала бешено расти.

По словам автора статьи, когда они перевели EricElliottJS.com с Express на безсерверный Next.js, это позволило сократить расходы на хостинг на 90% и ускорить загрузку страниц. Сложно представить рекомендацию лучше! Сейчас команда использует Next.js и хостинг Zeit для всех своих приложений.
Тестирование
Jest и Cypress наиболее популярны для модульного и функционального тестирования, соответственно, но автор, определенно, предпочитает RITEWay и TestCafe. RITEWay это дзен в мире модульного тестирования: фреймворк, который всегда отвечает на пять вопросов, на которые должен ответить каждый юнит-тест.

TestCafe - это функциональный инструмент тестирования, который, как и Cypress, не требует от вас «борьбы» с Selenium, но его кроссбраузерная поддержка лучше, а еще есть классный тестовый рекордер/IDE. (Примечание переводчика: возможно, это уже не так! Вот, что мы писали про Cypress совсем недавно: https://hwdtech.ru/blog/cypress). Тем временем автор настоятельно рекомендует командам QA познакомиться с TestCafe.
Функциональные инструменты
Lodash, Ramda, Immer, Redux и RxJS - это функциональные инструменты, которые автор часто использует.
Популярность Ramda сильно выросла в 2019 году, теперь платформа предлагает некоторые инструменты, которых нет в Lodash, включая lenses и transducers. RxJS предлагает функциональный стиль с конвейерными операторами.

Immer облегчает работу с объектами JavaScript, не изменяя их. Redux - это менеджер состояний (как мы уже писали выше – прим. переводчика).

Спасибо всем, кто дочитал! Надеемся, информация о JS-фреймворках и некоторых других платформах в 2020 году будет вам полезна. Во второй части данного перевода автор расскажет нам о состоянии технологий в 2020 году, включая ИИ, виртуальную реальность, криптовалюту, дроны и другие, которые будут оказывать существенное влияние на жизнь человека в течение следующего десятилетия.
Раз в месяц мы делаем рассылку с анонсом новых кейсов и статей, опубликованных на сайте.
Подпишитесь на обновления.
Гарантируем - никакого спама. Нажимая на кнопку, вы даете согласие на обработку персональных данных и соглашаетесь c политикой в отношении обработки персональных данных.