jQuery умер, да здравствует jQuery.
Говорят, что jQuery умер. Но на днях анонсировали jQuery 4.0.0 Beta. То есть он жив и активно развивается. В связи с этим событием моё мнение по поводу этой библиотеки и отношения к ней. Мнение может не совпадать с мнением большинства.
В сообществе многие очень негативно относятся к jQuery и агрессивно топят за какой-либо фреймворк. Я этого не понимаю. Это выдаёт неопытность, непонимание индустрии и замкнутость в технологическом пузыре. Такие люди освоили фреймворк и используют его везде, как серебряную пулю. Но таких пуль не бывает и каждый инструмент для своей задачи.
Прежде всего, jQuery - это библиотека. Сравнивать её с фреймворками не корректно. Да, React тоже библиотека, но в реальном мире к нему прикручивают много обвязки и используют как фреймворк. А фреймворки дают каркас приложения, подход к разработке, добавляют ограничения и снижают уровень проектных знаний. Хорошо про это рассказал Илья Климов в одном из видео на примере Vue. Фреймворки нужны для разработки приложений с большим количеством интеракции и бизнес-логикой на клиенте.
Но не все разработают такие приложения. Более того, таких приложений достаточно мало. По данным Web Almanac 2022, React используется на 8% сайтов, Vue на 3%, Angular на 2%, в то время как jQuery на 81%. Помимо больших проектов на фреймворках, есть огромное количество небольших сайтов и приложений, которые разрабатывают веб-студии, диджитал агентства, маленькие аутсорсинговые компании, фрилансеры и т.д. Большое количество проектов в интернете сделаны по классической модели с рендерингом разметки на сервере, и небольшим количеством JavaScript для интерактивности на клиенте.
Для таких проектов jQuery все ещё подходит. Он прост, легко осваивается новичками, упрощает работу с DOM, событиями и предлагает много сахара. Ещё одной крутой особенностью jQuery является экосистема. За десятилетия существования, сообщество создало огромное количество плагинов для решения самых разнообразных задач.
При этом jQuery - это всего лишь библиотека JavaScript. Никто не запрещает использовать современные фичи: модули, Promise, async/await, шаблонные литералы, классы, современные Web API и сторонние пакеты с npm. Да даже @vue/reactivity туда можно засунуть, если хочется реактивности. Код на jQuery можно писать красиво, структурировать, разделять на модули и раскладывать по папкам, но для этого нужен опыт. А если проект "сделал и забыл", как это бывает на фрилансе и в студиях, то и какая разница?
Есть две проблемы с jQuery: спагетти-код и размер бандла. Спагетти-код тянется со времен, когда фронтенда, как направления, не было, а сам JavaScript много чего не умел, не было никаких сборщиков и пакетных менеджеров. Никто не задумывался об архитектуре, просто брали и писали какую-то логику. Размер бандла же может стать проблемой, если стоит задача иметь хорошие метрики производительности. jQuery весит порядка 30кб min+gzip. Но такая ли это проблема в мире, где мы грузим столько же рантайма фреймворка и ещё пол мегабайта логики на нем? В 4й версии jQuery переписали на ESM, а значит можно будет делать tree shaking и code splitting.
Выводы. jQuery все ещё норм для небольших проектов, где надо быстро или "сделал и забыл". Его можно применить для прототипирования, проверки гипотез, MVP. На jQuery можно писать нормальный структурированный код и использовать современные фичи JavaScript. Не все проекты в мире пишутся на фреймворках, есть много популярных решений с jQuery под капотом, В определённых ситуациях он все ещё может быть неплохим выбором.
Post #61
461
- 👍 8
- ❤ 3
- 🔥 3
- 🤔 1
- 🌚 1
- 🙈 1