Повествование ведется от лица Джастина Тэдлока, разработчика WP.
Легко позабыть о том, каким WordPress был 10, 15 лет назад.
Мы избалованы. Мы избалованы обилием документации и руководств, огромным объемом знаний, накопленных за более чем десятилетний период. Мы испорчены нашим собственным опытом, характерным для энергичной юности, и этот опыт теперь ставит нас раком, ведь мы постарели вместе с нашей любимой платформой.
Мы превратились в вечно недовольных стариков. «Вот в наше время не было такого количества разных инструментов, чтобы писать код. Мы все создавали с нуля».
Ладно, это все шуточки. Я принадлежу к разработчикам того самого старого движка WordPress, по которому многие испытывают ностальгию. Думаю, что я имею право прикалываться над собой. Почему бы и нет. В какой-то степени те времена были проще. Но не совсем.
Я уже долгое время состою в сообществе WP. Всякий раз, когда в WordPress выходил новый функционал, на нас непременно обрушивалось цунами критики. У меня в памяти еще живы те дни, когда в WordPress практически не существовало документации ни для чего.
В последнее время все чаще поднимается вопрос о сложности вхождения в среду современной разработки WordPress. Этот аспект обсуждается уже несколько лет, но последняя вспышка произошла после недавнего твита Криса Вигмана:
«Чем глубже я погружаюсь в современную WP-разработку, тем больше я понимаю, почему новые разработчики не хотят с этим связываться. Это уже не тот проект, что был в прошлом. Кривая обучения сейчас очень крутая, причем вне зависимости от вашего прошлого опыта».
Около месяца назад я написал свой первый блочный плагин – всего за пару часов. Тогда же в статье я отметил, что входной барьер стал существенно выше, чем был в 2007. Сейчас, когда прошел месяц, я уже не так уверен в своих словах. Возможно, я глядел на прошлое сквозь розовые очки, позабыв о тех проблемах, с которыми я тогда столкнулся.
Если в PHP мои познания довольно хороши, то с JavaScript я отстал где-то на 10 лет. А сейчас JS в WP стал важнее, чем PHP.
В своей прошлой статье я жаловался на документацию. Но давайте будем честными. В WordPress никогда не было продуманной документации, которая позволила бы научить начинающего разработчика всем аспектам программирования. За свою карьеру я написал как минимум несколько сотен руководств. И практически каждый раз мне приходилось копаться в исходном коде проекта, чтобы разобраться в нем, что и позволило мне обучать других разработчиков. Другие разработчики зачастую поступали точно так же.
Со временем на WordPress.org появилась адекватная документация, но это не произошло в одночасье. Этот проект постоянно развивался.
Тогда же я решил написать свой первый блок на чистом JavaScript. Никаких инструментов для сборки. Никаких документаций по React. Просто чистый JS-код в моем редакторе. Мне пришлось сначала научиться ползать – только потом я уже научился ходить. Нужно было сделать так, чтобы моя первая итерация кода заработала, прежде чем я перейду к чему-то более сложному.
Через пару дней я переписал все это, используя современный JavaScript, и скомпилировал его с помощью webpack. Через неделю я создал второй плагин с расширенным функционалом.
Было ли это сложно? Да. Был ли входной барьер выше, чем когда я впервые разрабатывал плагины? Возможно. По правде говоря, я не так уж сильно и старался, поскольку сейчас у меня немного иной отрезок жизни. В 37 лет уже не так много драйва, да и меньше возможностей для получения новых навыков так же быстро, как это было в 20 лет. Но у меня есть прочный фундамент и достаточный опыт для преодоления некоторых препятствий, с которыми я столкнулся.
Была бы моя борьба жестче, если бы мне в 20 лет пришлось изучать JavaScript вместо PHP для WordPress? Сомневаюсь. Оба языка имеют крутую кривую обучения для новичков.
Первое знакомство с Subversion или Composer может быть таким же пугающим, как и первое погружение в webpack и npm. Для свежего ума, чистого листа, который предстоит заполнить знаниями в области WordPress, входной барьер будет таким же, как и для нас в свое время с PHP.
Для нас, старперов, мир перевернулся с ног на голову. Этого нельзя отрицать. Проект Gutenberg, который лежит в основе практически каждой новой возможности WP, развивается так быстро, что за ним невозможно угнаться, если при этом еще и совершенствовать свои навыки. Легко потонуть в этом омуте. Если такое происходит со мной, то я просто устраиваю себе передышку, разгружаю свои мысли, чтобы затем уже с новыми силами вернуться в строй.
Вклад в экосистему WordPress всегда был осложнен какими-нибудь препятствиями. Недостаток времени, нехватка знаний в PHP, отсутствие других навыков – все это оставило многих разработчиков на обочине проекта. В некоторой степени это поменялось. Некоторые участки стали более доступны для пользователей, чего раньше не наблюдалось. Проще всего это увидеть в контексте создания тем.
«Люди должны понимать, что разработка тем идет в сторону упрощения», – твитнула Каролина Наймарк. – «Входной порог для дизайнеров и новых разработчиков становится ниже. Когда разработчики кричат, что они не могут использовать свои хуки в блочной теме, они не смотрят в будущее, они отталкиваются только от того, что есть сейчас».
Я лично потратил больше времени на темы для блочного редактора, нежели на разработку плагинов. Авторам тем подсунули пустой холст. Возможно, когда блочные темы будут поддерживаться в ядре WP, все станет гораздо проще.
Конечно, я мог бы до тошноты писать о том, как разработка тем идет семимильными шагами. Но главное не это. Революционная часть системы заключается в том, что она идеальна для людей, не соприкасавшихся с ней в прошлом.
Вместе с релизом WP 5.8 на WordPress.org появилась первая итерация директории паттернов. Вскоре любой пользователь сможет добавлять свои собственные блочные паттерны, не написав ни единой строки кода. Люди будут просто создавать разметку в редакторе, после чего копировать ее и делиться ей с другими.
Когда появится редактор сайтов, правила игры опять изменятся. Пользователи смогут создавать дизайн всего фронтэнда без каких-то особых навыков в области программирования.
Если WordPress должен стать более сложным для разработчиков, чтобы дать пользователям такую мощь, то с этим я легко смирюсь.
Самый высокий входной барьер – как это всегда и было – касается вклада непосредственно в сам движок WordPress. Или вклада в блочный мир посредством Gutenberg.
Раздел «The Getting Started With Code Contribution» в Block Editor Handbook представляет собой гигантскую мешанину из примечаний и процедур по установке, которая может отпугнуть даже маститого разработчика. Практически все опции связаны со сторонними инструментами, а потому любые проблемы, с которыми вы столкнетесь при настройке своей системы, с высокой вероятностью приведут вас на форумы поддержки или в чаты за пределами WP. Даже внести свой вклад в разработку Gutenberg стало труднее.
Не хватает истории. У нас было полтора десятилетия, чтобы отточить наши механизмы для классического WordPress. Зачастую приходилось совершать достаточно жесткие, в чем-то неприглядные шаги, чтобы сделать пространство вокруг WP комфортным для разработчиков. При этом у нас было всего три года, чтобы довести WP до такого же естественного состояния.
Я остаюсь оптимистом. Надеюсь, что и через 15 лет у нас будут вестись дискуссии касательно нового стека технологий, внедренного в WordPress 10.0. А пока я с нетерпением жду улучшения нашей документации, расширения навыков нашего сообщества программистов и появления новых WordPress-разработчиков.
Что вы думаете по поводу разработки WordPress? Стала ли она сложнее? Ощущается ли дефицит «свежей крови» в этой области?
Источник: wptavern.com