10 важнейших фреймворков JavaScript последнего десятилетия

1
521
views

Перевод статьи «The 10 most important JavaScript frameworks of the past decade».

Мы и не заметили, как промелькнуло целое десятилетие, и что за десять лет это были! Когда только вышел ECMAScript 5, никто и не предполагал, что десять лет спустя мы будем обсуждать достоинства const в сравнении с let.

Мы стали свидетелями взлета и падения различных JS-фреймворков. Некоторые из них полностью изменили наш подход к разработке программ, а другие не выдержали испытания временем. Я подумал, что было бы неплохо вспомнить все фреймворки JavaScript, так или иначе повлиявшие на нас, разработчиков, за последнее десятилетие.

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

В отборе фреймворков для своей статьи я руководствовался некоторыми критериями (хотя, разумеется, во многом полагался просто на свое мнение). Итак, эти фреймворки:

  • были выпущены в период с 2010 до 2020 года;
  • все еще активно разрабатываются;
  • оказали заметное влияние на подходы к разработке ПО;
  • породили другие библиотеки (хотя и не всегда).

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

Итак, приступим. Представляю вам 10 самых важных JavaScript-фреймворков последнего десятилетия.

1. React

Я уверен, что никого не удивлю, сказав, что React это одна из самых любимых разработчиками библиотек JavaScript, имеющая многочисленное и активное сообщество. К тому же, знание этой библиотеки раскрывает значительные карьерные перспективы. Да, я в курсе, что это именно библиотека, но экосистема React так сильно разрослась, что его обычно причисляют к фреймворкам.

Впервые React увидел свет 29 мая 2013 года, а последняя версия (v16.12) была выпущена в ноябре 2019. Этот релиз содержал исправления багов, что подчеркивает надежность библиотеки.

Следует отдать должное команде React: они постоянно внедряют новые функции, чтобы сделать разработку программ с применением этой библиотеки настоящим удовольствием.

Использование алгоритма различий виртуального DOM (VDOM) и одностороннего потока данных в React, безусловно, повлияло на подходы к созданию программ, применяемые многими разработчиками.

Кроме того, что сам React массово используется в разработке и имеет обширное сообщество, он еще и породил несколько других популярных библиотек (например, Enzyme для тестирования, React Intl для форматирования международных данных) и даже фреймворков (таких как Gatsby и Next).

2. Express

Выпущенный в ноябре 2010 года, Express стал фреймворком, выбираемым по умолчанию для создания API и веб-серверов на JavaScript (благодаря Node.js). Немногим фреймворкам удалось вырасти до такого же монопольного положения.

Express сделал применение JavaScript в бэкенде гораздо более простым и удобным для больших групп разработчиков. Также он проложил путь для других, более новых фреймворков, таких как Koa.js и hapi.

За этим фреймворком стоит очень большое и активное сообщество. Также про него можно с уверенностью сказать, что он проверен временем. И хотя вы можете многого достичь, используя один лишь Express, существует огромное количество легко настраиваемого связующего ПО, которое помогает этому фреймворку проявить себя во всей красе.

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

3. Backbone.js

Хотя о Backbone постепенно забывают, в свое время это был один из ведущих фронтенд-фреймворков. Сегодня создание одностраничных приложений (SPA) это обычное дело, но до выхода Backbone в 2010 году о SPA мало кто слышал.

Настоящий пионер одностраничных приложений, Backbone просто невероятно облегчил и создание более сложных веб-приложений на одном JavaScript. Можно сказать, что Backbone был предтечей быстрых и легковесных фронтенд-фреймворков новой эры.

В работе этого фреймворка применялся императивный стиль программирования — стиль, который медленно уступает место более декларативным паттернам. Несмотря на это, можно утверждать, что Backbone популяризировал MVC-подход к созданию веб-приложений.

Backbone по-прежнему применяется в разработке (хотя показатели использования падают) и является самым надежным JavaScript-фреймворком. С учетом всего вышесказанного, становится понятно, что он просто должен быть в нашем списке.

4. React Native

До прихода React Native публикация приложения на разных платформах обычно требовала создания разных кодовых баз — с совершенно разными техническими стеками, командами и процессами. Это связано с тем, что разные платформы традиционно используют разные языки программирования и инструменты.

Возможность создавать приложения для всех платформ, используя один язык (и часто — одну команду), снижает стоимость разработки и уменьшает нагрузку на менеджмент. Это довольно существенная причина сегодняшней популярности React Native.

Хотя гибридные приложения, созданные таким образом, обычно менее производительны и оптимизированы, чем их нативные конкуренты, чаще всего они все же достаточно хороши для выполнения нужных работ. Знание React Native это плюс в поисках работы: фреймворк упоминается во многих объявлениях о вакансиях. Также стоит отметить, что за React Native стоит огромное сообщество.

Если посмотреть на сферу разработки до прихода React Native, становится понятно, насколько сильно этот фреймворк повлиял на наш подход к созданию программ. К тому же, не заметно никаких признаков замедления разработки самого фреймворка: в него по-прежнему добавляется новый функционал.

5. Ionic

Это еще один фреймворк, сделавший возможной кроссплатформенную разработку приложений. Благодаря ему очень многие разработчики смогли сделать свои приложения не только кроссплатформенными, но и высокопроизводительными.

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

Со времен первого релиза в ноябре 2013 года, Ionic постоянно растет и развивается как платформа. Благодаря его опенсорсной природе, он очень широко применяется в сообществе разработчиков, что вполне демонстрируют 40 тыс. звезд на GitHub.

Этот фреймворк, определенно, не из числа самых популярных в нашем списке, но столь же определенно можно сказать, что он оказал большое влияние на разработку кроссплатформенных приложений. К тому же, он все еще растет.

6. Vue.js

Будучи одним из JavaScript-фреймворков, наиболее любимых разработчиками, Vue.js ошибочно считается аутсайдером среди фронтенд-фреймворков. Возможно, это связано с тем фактом, что за ним не стоит крупная технологическая компания, как за React и Angular.

Хотя этот факт имеет свои достоинства и недостатки, нельзя отрицать, что Vue очень сильно повлиял на JavaScript-разработчиков. В настоящее время этот фреймворк имеет больше звезд на GitHub, чем все остальные JavaScript-фреймворки, а также идет вторым в списке самых любимых разработчиками фреймворков (опрос StackOverflow за 2019 год).

Vue имеет очень живое сообщество, его легко использовать при создании программ, он легковесный и он все еще активно разрабатывается — все это говорит о том, что этот фреймворк ожидает только подъем.

7. AngularJS/Angular

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

AngularJS впервые был выпущен в 2010 году. Это был один из первых настоящих MVC-фреймворков JavaScript. Тот факт, что он был одним из первых, означает, что он был далек от совершенства, хотя определенно был революционным в свое время.

Работать с этим фреймворком было гораздо труднее, чем с другими (например, с Backbone и Ember), к тому же его пакет был довольно большим, что сказывалось на производительности. Также стоит отметить, что этот фреймворк был нацелен на коммерческое ПО, так что начинающим разработчикам овладеть им было немного сложнее.

Эти и другие факторы привели к разработке Angular.

Angular унаследовал многие особенности своего предшественника, такие как MVC-архитектура и декларативный подход к созданию UI, но имел и многие отличия, например, переход на TypeScript в разработке и модернизированный подход к модульности.

В настоящее время Angular это один из самых популярных фронтенд-фреймворков. Вместе с React и Vue он составляет «святую троицу» фронтенд-технологий.

8. GatsbyJS

Фреймворк Gatsby принадлежит к числу более новых технологий, чем другие в нашем списке, но это не умаляет его важности. Этот трендовый отпрыск React и GraphQL быстро становится любимым фреймворком многих разработчиков. Он растет так быстро, что меньше, чем за три года, сумел собрать больше 40 тысяч звезд на GitHub.

Конечно, звезды на GitHub не являются официальным показателем важности фреймворка, но они служат хорошим индикатором интереса к технологии. Для сравнения можно взять jQuery — одну из самых популярных библиотек всех времен. Она на 11 лет старше и в настоящее время имеет около 50 тысяч звезд. И если вы посмотрите, насколько сильно разработчики любят Gatsby и огромное количество плагинов в его экосистеме, вы поймете, что это не просто бабочка-однодневка.

Этот фреймворк применяет другой подход к созданию веб-приложений; он фокусируется на генерировании статических сайтов, которые обычно бывают более быстрыми, доступными и простыми в разработке.

Gatsby породил такую огромную экосистему плагинов, что вряд ли вам придется писать что-то самостоятельно. Благодаря этому вы сможете уделять ваше время бизнес-логике; вероятно, именно по этой причине разработчики, попробовавшие работать с этим фреймворком, не хотят от него отказываться.

9. Electron

Еще один недооцененный (как мне кажется) фреймворк JavaScript, появившийся на свет по причинам, сходным с причинами появления React Native.

Electron это фреймворк для создания кроссплатформенных десктопных приложений с использованием таких веб-технологий как JavaScript, HTML и CSS. Он имеет примерно те же преимущества (и недостатки), что и React Native, в том смысле, что он позволяет командам вести разработку для разных десктопных окружений без необходимости формировать для каждого такого окружения отдельную команду.

Electron оказался таким полезным, что его начали применять для создания некоторых десктопных приложений в крупных технологических компаниях (например, в Slack, Microsoft, и Atlassian). Также он используется многими независимыми разработчиками.

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

10. Mocha

Я не мог не добавить в свой список самый популярный тестовый фреймворк JavaScript. Разработка через тестирование стала настолько популярной, что во многих компаниях такой подход теперь принят по умолчанию. Вероятно, не в последнюю очередь так случилось благодаря отличному состоянию тестовых фреймворков в JavaScript, а среди них Mocha занимает первое место по популярности.

Mocha это расширяемый тестовый фреймворк для Node.js, поставляемый со множеством функций, таких как поддержка браузера, асинхронное тестирование и возможность использования практически любой библиотеки утверждений.

Гибкость, легкость использования, прекрасная документация и массивное сообщество делают Mocha очевидным выбором для тестирования Node-программ.

Также стоит упомянуть

Этот список, конечно, ни в коей мере нельзя считать исчерпывающим. Тем не менее, еще несколько названий, не вошедших в него, точно стоит упомянуть.

Для них либо просто не хватило места в списке, либо это не фреймворки в традиционном понимании, но все же они повлияли на JavaScript-сообщество ничуть не меньше технологий, перечисленных выше.

Node.js

Node.js это скорее не фреймворк, а среда, позволяющая вам запускать JavaScript вне браузера. Это одно из самых важных изобретений в веб-разработке за последнее десятилетие (и не важно, фреймворк это или нет).

Node.js породил целую кучу фреймворков (библиотек), построенных на его основе (Express, FeathersJS). Именно благодаря ему JavaScript получил такое распространение в бэкенде.

JQuery

Еще до появления AngularJS, Backbone, Meteor и прочих у нас была jQuery. Это самая популярная JavaScript-библиотека всех времен: больше 73% из 10 миллионов самых популярных сайтов используют ее так или иначе.

Несмотря на то, что популярность этой библиотеки испаряется (спасибо, React), за ней все еще стоит многочисленное сообщество и она все еще используется при создании сайтов, даже через 13 лет после своего выпуска.

Bootstrap

Я уверен, что многие удивились, не увидев Bootstrap в моем списке, поскольку он чрезвычайно популярен и соответствует всем озвученным во вступлении критериям. Но у меня была достойная причина не включать его в «основной состав».

Во многом влияние Bootstrap можно отнести на счет HTML и CSS, а не JavaScript. Подавляющее большинство разработчиков, устанавливающих Bootstrap, делают это, чтобы получить доступ к огромной коллекции проверенных компонентов HTML и CSS, а не ради какого-то функционала JavaScript.

Вот почему я счел, что включать его в список JS-фреймворков было бы не совсем честно.

Заключение

Этот список ни в коем случае не является исчерпывающим, но если бы я попытался включить в него ВСЕ JavaScript-фреймворки, оказавшие влияние на мир разработки ПО, статья стала бы слишком длинной. По этой же причине я решил не включать в список библиотеки (React — исключение) и сосредоточился только на фреймворках.

1 КОММЕНТАРИЙ

ОСТАВЬТЕ ОТВЕТ

Please enter your comment!
Please enter your name here