Недавно я прочитал интересную статью мелиссы мкевен, в которой она пытается провести различие между React и jQuery, а также критикует фрилансеров, которые завышают цены с клиентов при использовании React (утверждая, что это премиум технология). ) и утверждает, что jQuery легче изучить, чем React. В заключение она делает смелое заявление: JQuery лучше, чем React! Ух ты!

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

ReactJS и jQuery нельзя сравнивать

Попытка сравнить эти две библиотеки похожа на сравнение двух автомобилей:

  • Один старый, построенный на пару лет раньше для почти уже не актуальных целей (jQuery)
  • и очень современный автомобиль, построенный относительно недавно, более совершенный и предназначенный для удовлетворения новых и более сложных потребностей (React)!

Давайте рассмотрим роль каждой библиотеки, чтобы лучше понять.

React и jQuery не предназначались для одних и тех же целей и поэтому не могут давать одинаковые результаты.

ReactJS был создан для создания эффективных динамических пользовательских интерфейсов.

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

  • Ваш код можно повторно использовать где угодно
  • Ваш код можно легко отладить
  • Производительность вашего приложения будет премиальной (в зависимости от уровня навыков вашего разработчика).

Еще одним важным аспектом React является архитектура кода, основанная на компонентах; это один из самых эффективных и популярных шаблонов JavaScript.

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

jQuery был создан, чтобы сделать программирование с помощью JavaScript простым и последовательным.

jQuery был создан во времена реальных проблем с веб-приложениями JavaScript. Я помню это довольно эмоционально, потому что я был там: "нужно было что-то закодировать и убедиться, что это работает для многих разных браузеров". Internet Explorer был хуже всех: «всегда пытался реализовать JavaScript, HTML и CSS по-своему»; это время было очень запутанным для разработчиков (Chrome еще даже не родился).

Это контекст, в котором появился jQuery. Разработчики могли внезапно написать одну строку JavaScript в jQuery и сделать так, чтобы она работала во всех браузерах. Это было огромным облегчением, особенно когда речь шла об обходе DOM (манипулировании элементами пользовательского интерфейса), потому что разработчикам теперь приходилось писать команды один раз в jQuery, а обход DOM был одинаковым независимо от браузера.

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

jQuery помогла унифицировать JavaScript во всех браузерах и предоставила утилитарные методы для простого выполнения задач на основе JavaScript.

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

JQuery легко освоить, потому что он решает более мелкие задачи.

Как мы только что видели, jQuery — это утилитарная библиотека, предназначенная для написания более согласованного JavaScript в разных браузерах, и попутно предлагает пару вспомогательных функций, вот и все! Использование jQuery для создания целых приложений без размышлений о структуре кода, удобстве сопровождения и возможности повторного использования приводит к синдрому спагетти-кода (ветераны разработчиков поддержат меня в этом).

React, наоборот, решает современные проблемы создания пользовательских интерфейсов, которые:

  • Как мы можем сделать его динамичным?
  • Как мы можем сделать это быстро?
  • Как мы можем упростить устранение неполадок?
  • Как мы можем сделать его легким для повторного использования?

Теперь становится более очевидным, почему React требует более высокой кривой обучения.

Чем умнее становятся браузеры, чем более совершенным становится API ядра JavaScript, тем более неуместным становится jQuery!

От jQuery до наших дней

Поскольку веб-приложения становятся все более и более сложными и продвинутыми, возникла необходимость в создании более быстрых пользовательских интерфейсов, поддерживаемых хорошо структурированной и многократно используемой кодовой базой (выходящей далеко за рамки jQuery). В то же время браузеры становились умнее, API ядра JavaScript совершенствовался (ES5, ES6), что вызывало медленный, но неуклонный спад jQuery.

Именно тогда стали преобладать одностраничные приложения с новыми фреймворками, такими как Backbone, Amber, затем Angular и гораздо позже React и Vue. Миссия этих фреймворков заключалась в том, чтобы справиться со сложностями создания пользовательского интерфейса во взаимодействии с другими заинтересованными сторонами (модели из серверов, логика в контроллерах), что jQuery никогда не намеревался и не заявлял об этом.

jQuery уже начал уходить в прошлое!

Будущее

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

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

Фреймворки пользовательского интерфейса, такие как React или Angular, будут существовать еще пару лет, но сами постепенно будут заменены полу-ИИ-фреймворками, и, конечно же, jQuery уже давно не будет.

Если jquery не изобретет себя заново, через несколько лет он вымрет, потому что проблемы, которые он решает, постепенно исчезают!

Вывод

jQuery можно сравнить только с другими служебными библиотеками, такими как Dojo или Mootools. React — это динамическая библиотека пользовательского интерфейса, и ее следует сравнивать с такими аналогами, как Backbone, Amber, затем Angular или Vue, хотя React совершенно уникален по своему стилю и сфере действия.

Поэтому я присоединяюсь к melissa mcewen, рекомендуя использовать технологию не из-за ее популярности, а потому, что она решает вашу проблему (и, пожалуйста, перестаньте брать бешеные цены ☺).

Не используйте технологию из-за ее популярности, используйте ее, потому что она решает вашу проблему!