Gulp vs Webpack
В профессиональном сообществе не утихают споры, относительно того, какой инструмент использовать в работе. Сегодня речь пойдет о таких инструментах, как Gulp и Webpack.
В последнее время набирает обороты какая-то нездоровая идеализация инструментов, в отрыве от целей, задач и конечного результата. Если ты не используешь какой-то определенный инструмент, значит ты не профи. Если используешь, добро пожаловать в клуб, и не важно, что в результате у тебя получается какашка. Такого холиварного бума, далекого от сути вопроса, не было даже во времена «Photoshop vs Open Source». Складывается впечатление, что инструмент первостепенен, а не сама область, не результирующий продукт и это довольно печально. Наряду со страхом остаться без денег, у современного веб-разработчика из России и СНГ добавилась новая фобия - использовать НЕ трендовый инструмент, в страхе умереть вместе с ним. Вообще, в своих видео я не однократно обращал ваше внимание на то, что если кто-то говорит, что какой-то инструмент или технология умирает - задумайтесь об объективности таких выводов. Ближе к делу.
Итак, Gulp и Webpack. Основы. Давайте начнем с определений. Изначально, эти инструменты позиционируются создателями, как инструменты для решения несколько разных задач. Webpack позиционируется, как мощный комбайн-бандлер, предназначенный для удобной разработки JS Application и одностраничных приложений. Кроме того, он имеет множество полезных дополнений для решения повседневных задач - препроцессоры, картинки и прочее, которые являются лишь бонусами к основе. Gulp - это таск-ранер, упрощающий жизнь, благодаря автоматизации выполнения каких-то рутинных задач. В принципе, на этом можно было бы остановиться, ведь мы поняли из определений, что это разные инструменты и, в общем-то, они предназначены для разных задач, если бы не одно НО. Почему-то эти два инструмента каким-то странным образом попадают на один график в Google Trends и вызывают бурление в профессиональной среде, Webpack начинают использовать даже там, где не стоит задачи разработки приложения, в угоду трендам, а Gulp несправедливо причисляют к списку инструментов на вымирание.
Давайте разберем типичный сценарий перехода с Gulp на Webpack и формирования мнения. Начинающий разработчик, поняв мироустройство веб-разработки, как области, стоит перед выбором - уйти в дизайн или углубиться в JS разработку. Допустим, он выбирает JS, так как данная область ему ближе, начинает изучать рынок инструментов и понимает, что для профессиональной глубокой JS-разработки уже есть крутой инструмент, который позволит ему решить массу проблем одним махом. И этот инструмент, справедливо и безоговорочно - Webpack. Стандарт индустрии. Далее у нашего разработчика появляются и другие задачи - работа с изображениями, препроцессинг и так далее, и он начинает грустить и вспоминать старый добрый Gulp. Однако, его печаль продолжается недолго, ведь он узнает, что Webpack дает таки возможность, окромя работы с JS, инструменты для решения поставленных задач. Теперь есть все вопросы закрыты. Новый оппозиционер Gulp и новая боевая единица для холивара окончательно сформировалась, положительный опыт подкреплен. Теперь этот персонаж будет на право и налево пропагандировать, насколько крут его инструмент (а это, к слову, действительно так, инструмент действительно крут для своих задач), охотно ввязываясь в споры на форумах и советовать свой инструмент даже там, где он не нужен. Речь идёт о веб-дизайне и верстке. У нас эти понятия принято относить к разным областям, но по сути - это грани одной специализации.
Не стоит забывать, что мир веб-разработки не делится на черное и белое. Кроме области дизайна и области программирования в сферическом вакууме, есть и другие области. Это, в первую очередь, разработка коммерческих проектов на CMS, заказная разработка, конвейерная разработка, огромный пласт индустрии, не нуждающийся в Вебпаке, как первостепенном инструменте, ведь здесь не идет речи о создании приложений. Окромя компаний, которые занимаются созданием SPA, работающие в команде над одним единственным проектом, есть и другие области, другие рынки. И начинающие разработчики, дизайнеры, начитавшись отзывов, насмотревшись на тренды, формируют неправильное понимание рынка инструментов, начинают использовать не то, что им нужно, боясь быть не актуальными, не современными. И это ловушка. Они видят популярность инструмента, абсолютно не понимая природы такой популярности и области применения. Будьте рациональны, дорогие друзья.
Стоит заметить, что Gulp лучше всего использовать по его прямому назначению - с помощью данного инструмента оптимизировать хранилище изображений, удалять копии, выполнять компрессию, автоматизировать работу с файлами, архивировать ненужные про дате, работу с документами и их содержимым, программировать бэкап, делать таски для unix-приложений и прочая автоматизация рутины, включая работу с веб-ресурсами в рабочих проектах.
Поэтому дорогие друзья, лучше использовать те инструменты, которые вам по душе, применять их по назначению и работать в свое удовольствие. Это всего лишь инструменты.
Все эти годы забавно наблюдать, как периодически выходят новые инструменты, как вызывают массу споров, обсуждений, пророчат смерть другим технологиям. Мнения, основанные на цифрах популярности. Самое лучшее в данной ситуации – это не обращать внимание на холивары и не воспринимать всерьез позицию фанатиков. Если вам не будет хватать функционала того или иного инструмента, у вас не будет стоять вопроса о выборе другого.
Оригинал статьи