Вчера утром участники WordPress встретились для обсуждения нового JavaScript фреймворка, который в дальнейшем будет использоваться в ядре. Дискуссия на сайте Make/Core активировалась на выходных, когда к обсуждению подключилось больше сторонников Vue.js.
Адам Сильверстейн и Эндрю Дути начали прошедшее обсуждение с рассмотрения других фреймворков, таких как Preact, Angular и Ember. Однако дискуссия все равно сузилась до рассмотрения React и Vue.
Адам призвал участников помнить о том, что фреймворк предназначен для работы с планируемыми возможностями, такими как новый редактор, и что разработчики продолжат использовать Backbone там, где он применим. Адам также подчеркнул, что обсуждение касается только фреймворка для ядра, а потому разработчики вольны использовать любые фреймворки, которым им подходят, для создания плагинов и тем.
Сторонники Vue.js считают «легкость обучения» важным фактором при выборе нового фреймворка
Легкость обучения не входит в список критериев, выделенных участниками при выборе нового фреймворка, однако это один из важных факторов, как считают сторонники Vue.js.
«Vue может делать все то, что делает React, но при этом является более доступным», — говорит Джастин Копепаса. – «Vue широко распространен, и его рост вряд ли будет чем-то ограничен в дальнейшем. Некоторые из крупнейших open source фреймворков уже воспользовались Vue, им пользуются ведущие технологические компании в Китае (включая и Alibaba). Да, я согласен с тем, что React – тоже прекрасный выбор, но он не слишком доступен новым разработчикам, и к тому же за ним стоит Facebook, что может стать тревожным фактором для людей во многих отношениях (не только в техническом плане)».
Джастин Тэдлок, участник ядра, чьи учебники и советы помогли многим разработчикам, изучающим WordPress, поделился аналогичными мыслями в выходные на странице Make/Core:
«Я несколько раз пытался работать с React. Даже с десятилетним опытом в программировании, которым я обладаю, React мне показался очень сложным. Я не представляю себе, как обучить React кого-либо, кто только делает первые шаги в разработке WordPress.
Vue гораздо проще в плане изучения. Я написал крутое приложение за пару минут. За пару часов я уже создавал интересные штуки с формами, не притрагиваясь к документации.
Если бы все зависело от меня, то я бы предложил создать свой собственный JS фреймворк для WP, который бы решал проблемы, характерные для WordPress. Но если мы собираемся выбрать уже существующий фреймворк, я считаю, что мы должны взять Vue»
Матиас Вентура, технический специалист и участник проектов Calypso и Gutenberg, является сторонником принятия React в WordPress. По его мнению, выбор на основании того, что легче изучить, является неправильным в контексте определения потребностей будущих интерфейсов WordPress.
«По моему мнению, вместо ‘проще изучить’ нам нужно смотреть на проверенные парадигмы программирования и экспрессивный подход к кодированию интерфейсов», — говорит Матиас. – «Именно это следует из принципа Мэтта Мулленвега ‘изучайте JavaScript детальнее’ – WordPress становится платформой по изучению JavaScript для новых программистов, и мы должны воспринимать это со всей серьезностью, а не просто отталкиваться от удобства для нас в краткосрочной перспективе».
Матиас также отметил, что WordPress исторически не сильно преуспел в привлечении JavaScript-разработчиков, а потому за JS-интерфейсы в ядре отвечает мало участников, если сравнивать с PHP-частью.
«У нас есть возможность сделать разработку WordPress более привлекательной для нового поколения разработчиков, которые научились программированию с помощью JavaScript», — говорит Матиас. Он призвал других участников изучить типы интерфейсов, которые нужно модернизировать в WordPress, и выбрать наилучший фреймворк для них в ядре.
«Аргумент ‘проще начать работу’ кажется мне несколько ошибочным», — говорит Матиас. – «Проще для кого? Что стоит надлежащим образом изучить JavaScript? Спрос на современные интерфейсы в веб-приложениях требует более глубокого понимания используемых технологий. Этого не избежать. JavaScript больше не может рассматриваться как просто прогрессивное улучшение, поскольку это язык, на котором ‘разговаривают’ современные интерфейсы».
Участники обеспокоены тем, что React поддерживается Facebook
В данный момент React является более устоявшимся и принятым, нежели Vue, но участники обеспокоены тем, что фреймворк поддерживается и лицензируется Facebook. Помимо проблем, связанных с интерпретацией дополнительного патентного разрешения React, стоит отметить и то, что компания часто становилась источником споров касательно цензуры, сбора данных, приватности и ряда других проблем. Противники не хотят, чтобы WordPress подцепился к Facebook, используя React в ядре.
«Принятие React – это более широкий процесс, нежели обычное добавление библиотеки в ядро: это добавление культуры, бизнес-практик, а также кодовой базы от технического гиганта», — отмечает Джастин Копепаса. – «Если мы включим React в ядро, мы покажем пользователям (от простых владельцев сайтов до предприятий), что Facebook играет ключевую роль в будущем WordPress. И я не сомневаюсь, что в результате этого многие компании отложат переход к WordPress на неопределенный срок».
Тем не менее, другие участники обеспокоены перспективами Vue.js, поскольку он сильно зависит от его создателя Эвана Ю. Эван профинансировал разработку фреймворка на Patreon, однако проект не имеет какой-либо крупной корпоративной поддержки.
«Я не могу полагаться на проект, управляемый одним человеком, который в любую минуту может исчезнуть», — говорит сторонник React и участник WP REST API Райан Маккью. – «Управление корпорацией со своей долей в игре означает долгосрочную поддержку и относительную стабильность». Маккью также отметил, что React имеет «обширное сообщество с возможностями обучения и поддержки».
Многие считают, что решение выбрать React для WordPress уже формально предопределено
Несмотря на все обсуждения на встречах и в комментариях к Make/Core, многие зрители и участники сообщества считают, что выбор WordPress в пользу React уже является предрешенным. В начале обсуждения на прошлой неделе казалось, что большинство участников ядра выступают за React, но сильный контингент сторонников Vue смог несколько перемешать все карты.
Выбор React представляется единственным жизнеспособным вариантом, если оперировать такими критериями, как «проверено в контексте WordPress» и «следует в русле Calypso». Многие участники поделились мнением о том, что критерии являются предвзятыми, и они считают, что решение уже принято через свои внутренние каналы, а публичное обсуждение сделано лишь для вида. Специалист Automattic Джеймс Найлен на прошлой неделе оставил следующий комментарий в тикете к проекту Gutenberg: «в недавнем обсуждении на канале Slack команда WordPress приняла решение переходить к React».
«Если этот вопрос действительно планировалось выносить на обсуждение, то почему это произошло только сейчас?», — задался вопросом Кристофер А, WordPress-разработчик. – «Выбор фреймворка должен был произойти еще задолго до того, как написана первая строка кода Gutenberg. С самого начала было известно, что потребуется фреймворк для редактора. Мэтт хотел как можно быстрее начать разработку Gutenberg. И, естественно, лучший способ сделать это – привлечь разработчиков Automattic, которые уже имели опыт работы с React».
По итогам встречи никакой фреймворк официально не был выбран, и Эндрю Дути отметил, что он ожидает продолжения данного разговора уже на мероприятии WordCamp Europe.
«Что касается React, Vue, Angular и т.д. – мы обсуждали аргументы за и против каждого в чате, и мы намеренно не торопимся с этим процессом», — говорит Райан Маккью. – «Ключевой критерий для нас – это соответствие требованиям проекта. Calypso и другие решения являются сильным сигналом в сторону React, но они не являются окончательным аргументом (в противном случае мы бы даже не начинали обсуждения)».
Введение нового JavaScript фреймворка сделано скорее для упрощения жизни разработчиков ядра. В настоящее время разработчики ядра, трудящиеся над новыми возможностями, имеют больше знаний о React, нежели о каких-либо других фреймворках.
«В конце концов, нам нужно принять решение о том, что будет использоваться в ядре, и это решение напрямую влияет на людей, которые работают с ядром», — говорит Маккью. – «Выбор какого-либо одного фреймворка не означает, что остальные чем-то хуже, просто мы (как разработчики ядра) стараемся облегчить наш процесс разработки».
Итоги обсуждения должны быть опубликованы в ближайшее время в блоге Make/Core. Дискуссии по поводу выбора нового JS фреймворка продолжатся на следующих встречах.
>>React мне показался очень сложным
Хреновый десятилетний опыт у тебя. Третий год в команде подтверждаем обратный факт, что реакту легко обучить.