Укр Рус
Какой фреймворк выбрать начинающему Front-end разработчику

Какой фреймворк выбрать начинающему Front-end разработчику

  • 10 декабря, 2021
  • читать 7 мин
Сергей Журавель
Сергей Журавель Lead Front-end Developer в Temy, Преподаватель Компьютерной школы Hillel.

Для многих людей IT — это отдельный мир, в который многие хотят попасть и сделать карьеру.

В этом мире существует много стран, в которых говорят на разных языках — языках программирования. Одна из таких стран — это веб разработка. Веб-разработка в свою очередь делится на Front-end и Back-end.

Сегодня поговорим о Front-end разработке, а точнее о фреймворках, которые используют Front-end разработчики, и о том, какой Javascript фреймворк выбрать начинающему разработчику.

Развитие веб-приложений и JS фреймворков

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

Так и в мире IT — первая веб-страница, которая позволяла перейти на другую страницу с помощью гиперссылки, была просто чудом и небывалым событием, которое перевернуло весь мир. Сегодня для нас такая простая страница кажется такой же примитивной, как и та глиняная табличка, а веб-страницы и их разработка стали очень сложными и дорогостоящими.

Вместе с развитием веб-страниц развивались и инструменты разработки. Кажется, еще совсем недавно самым крутым и известным фреймворком был jQuery.

Что такое фреймворк? Это фактически каркас, существенно облегчающий процесс объединения определенных компонентов при создании кода.

jQuery, однако, не хватало возможностей последовательной обработки данных по разделяемым представлениям. Для решения этой проблемы была создана целая плеяда фреймворков, которые очень быстро стали популярными, например, Backbone, Knockout и Ember. События развивались быстро, и на смену этим фреймворкам пришли фреймворки другого уровня: Angular, React ,Vue.

О них и поговорим.

AngularJS и Angular 2+

AngularJS был выпущен в октябре 2010 года и очень быстро стал самым популярным MVC-фреймворком JavaScript. Он предлагал двустороннее связывание данных (two ways binding), внедрение зависимостей (dependency injection), роутинг и многое другое.

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

Команда AngularJS понимала, что «корабль идет не туда» и приняла решение полностью переделать фреймворк и назвать его Angular 2. Кстати, это переименование принесло немало путаницы, многие разработчики до сих пор не всегда понимают разницу в названиях. Новый фреймворк называется Angular (в сообществе его часто называют Angular 2+), а старый — AngularJS.

К сожалению, эта новая версия была абсолютно несовместима с AngularJS. Не было возможности для миграции с AngularJS на Angular. Это разочаровало многих разработчиков, которые использовали AngularJS, и привело к полному отказазу от этого фреймворка.

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

React

В мае 2013 года на конференции по JavaScript в США была представлена новая библиотека, которая изменила правила игры на рынке веб разработки — React.

Многие думают, что создателем или сооснователем React был Дэн Абрамов, но это не так. Создал ее Джордан Волк (Jordan Walke), инженер из Facebook. Дэн Абрамов же создал Redux двумя годами позже. Redux стал супер популярным, а Дэн Абрамов стал частью React команды.

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

Кстати, не заканчиваются споры о том, можно ли назвать React фреймворком.

С одной стороны, React действительно только UI-библиотека. В отличие от других фреймворков, для полноценной работы разработчику необходимо дополнительно установить набор других библиотек (например, Redux, React-router, Axios, и т.п.). В то же время, в Angular все это есть из коробки. Изначально некоторые библиотеки (например, роутинг) входили в состав React, но были вынесены в отдельные библиотеки для большей гибкости. Когда я называю React фреймворком, то имею в виду не только саму библиотеку React, но и всю её экосистему.

Как бы мы её не называли, но остается фактом, что на сегодняшний день React — это самая популярная JavaScript-технология. Экосистема библиотек и инструментов для React богата и разнообразна. Если вы используете React, то подобрать библиотеку, которая решит вашу проблему, обычно не составляет труда.

Vue.js

Падение подающего надежды фреймворка AngularJS привело к тому, что разработчики начали искать другие варианты. Кто-то перешел полностью на React, а кто-то продолжал поиски. Возможно, отчасти из-за этого появился новый фреймворк, который имел общие черты с Angular и React.

Vue.js вышел в феврале 2014 года и довольно быстро стал популярным. Разработал этот фреймворк Эван Ю, который работал в Google и Meteor. Если React выделяется своей гибкостью, а Angular — строгими правилам, Vue пытается придерживаться золотой середины.

Vue.js достаточно легковесный фреймворк с хорошей экосистемой.

Будущее фреймворков

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

Существовало мнение, что вот-вот появятся новые фреймворки, которые заменят React и Angular. Например, фреймворк Sapper, использующий Svelte, подавал большие надежды. Множество разработчиков пытались учить его наперед и даже уже использовать в своих проектах, ожидая что он станет новой звездой вместо того же React.

Но это пока не произошло, и скорее всего, нас ждет еще несколько лет стабильности с неизменной тройкой лидеров.

Angular vs React vs Vue

Существует мнение, что именно Angular — лучший фреймворк для новичков. Дело в том, что при использовании Angular новичку не нужно думать о структуре приложения, многие решения уже приняты, и нужно только следовать правилам, которые хорошо описаны в документации.

Единственная проблема с Angular — это так называемая кривая обучения (learning curve). Чтобы начать разрабатывать приложения на этом фреймворке, нужно много выучить в начале работы. Зато когда знания получены, то затем уже все очень просто, так как это мощный фреймворк, который содержит решения многих проблем из коробки.

Другое мнение — для новичков сегодня наилучшими фреймворками являются Vue и React. Почему не только React?

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

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

Какой фреймворк лучше выучить первым сегодня

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

Но для новичков я считаю лучшим вариантом React — он довольно простой, чтобы начать с ним работать. Если вы хорошо знаете JavaScript, то можно выучить основы React на курсе React в Hillel, например, и постепенно улучшать свои знания уже на практике, изучая все больше и больше дополнительных библиотек и архитектурных решений.

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

А вы уже учите React?)

Рекомендуем курс по теме