GitHub удаляет jQuery. Почему?


В результате почти сверхчеловеческих усилий GitHub удалил все следы jQuery из своего кода fontend. Это интересно, но главный вопрос — почему? Самый очевидный ответ заключается в том, что программирование подвержено тем же капризам моды, что и другие технические дисциплины — возможно, даже в большей степени, потому что изменения в основном происходят легко.

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

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

Так и сейчас с негативной реакцией на jQuery.

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

GitHub удаляет jQuery

jQuery не только сгладил ситуацию, но и предоставил более продвинутые возможности и целый стиль программирования на JavaScript. Вы можете поблагодарить jQuery и его создателей за то, что они сделали популярной беглую цепочку функций и множество других идиом JavaScript. Вы могли и все еще можете узнать много нового о JavaScript, читая код jQuery. Фактически, способность легко понять его является хорошим доказательством того, что вы программист JavaScript, а не программист «какого-то другого языка», притворяющийся, что знает JavaScript.

Со временем, однако, то, что делал jQuery, казалось все более неактуальным. Когда появился HTML 5, и браузеры начали приводить свои действия в некоторое соответствие, сглаживание jQuery уже не казалось таким важным. Кроме того, в CSS появились селекторы, которые предоставлял jQuery, и через некоторое время jQuery даже принял родные CSS-селекторы в свой движок sizzle selector и добавил предупреждения о том, что использование неродных селекторов будет медленнее.

Значит ли это, что jQuery излишен?

Ряд статей в блогах и даже веб-сайты, например

https://youmightnotneedjquery.com/

конечно, казалось, что они продвигают точку зрения, что если вы используете jQuery для выполнения работы, которую вы могли бы сделать с помощью HTML/CSS или обычного JavaScript, то вы, так или иначе, не очень хороший программист. Медленно, но верно умные парни стали говорить тупым парням, что jQuery — это старая школа и устаревшая версия, и вы тоже, если используете ее.

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

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

Однако GitHub поступил иначе — мы используем его код, но мы не используем его код повторно (в большинстве случаев).

Эти пункты очень интересны. Давайте рассмотрим их по очереди.

  • querySelectorAll — это CSS-селектор, который jQuery использует, если он доступен. Использование jQuery для выполнения одной и той же работы является более последовательным в разных браузерах и позволяет использовать беглые вызовы функций для упрощения кода.
  • Fetch для ajax доступен не во всех браузерах, но jQuery ajax — это сложная переработка традиционных вызовов ajax, которая работает во всех. Проще говоря, jQuery делает гораздо больше.
  • Делегированные события — jQuery воссоздает обработку событий DOM более логичным и сложным способом, и это, вероятно, его наименее известное преимущество.
  • Полифилы для стандартных вещей DOM — сейчас, в этот момент, вы должны смеяться до упаду. Итак, вы заменяете хорошо созданные, хорошо протестированные полифилы в jQuery на созданные вручную пользовательские полифилы.
  • Пользовательские элементы на подъеме. Что это значит? Принятие современных вещей, таких как теневой DOM, веб-компоненты? Это правда, что у jQuery нет хорошего способа делать пользовательские элементы пользовательского интерфейса, jQueryUI в порядке, но он упускает современные возможности, но все еще нет 100% согласованного способа делать эту работу.

Хотя это правда, что jQuery уже не так жизненно важен, как раньше, он по-прежнему актуален и чрезвычайно полезен.

Так почему же возникла обратная реакция GitHub?

Во-первых, это обычная переменчивая мода. То, что когда-то было самым новым и горячим, быстро становится самым презираемым. Очернив технологию существующей когорты разработчиков, следующие утверждают свое превосходство — даже если у них нет ничего лучше.

Другая причина — глубокое непонимание того, что такое jQuery и что он делает. Если вы воспринимаете его просто как длинный способ написания querySelctorAll, то, конечно, вы думаете, что он вам не нужен. Слишком многие программисты JavaScript настолько поверхностны, насколько это можно предположить.

Помните, что в следующий раз, когда вы услышите, как кто-то говорит, что ему не нужен jQuery, он просто показывает, как мало он знает о jQuery.

Есть еще много нетехнических причин для нынешнего отказа от очень разумной технологии, я уверен, что вы можете придумать свои собственные. Заметьте, я не критикую навыки инженеров GitHub. Я уверен, что они проделали хорошую работу по удалению jQuery, и то, чем они его заменили, вероятно, имеет преимущества — это в природе переделки вещей. Я критикую политическое решение сделать эту работу вообще.

Если ничего не сломалось, не надо чинить.

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

Чистая кодовая база — это захватывающая кодовая база.


Добавить комментарий