Часто в разговорах можно услышать фразу «знающих программистов» о том что WordPress это просто, оно для школьников, чайников, домохозяек (нужное подчеркнуть). А вот «крутым программистам» на таком работать позор.

В этих словах есть доля правды, как и целый пласт заблуждений 🙂

Давайте начнем с правды. WordPress отличается от других платформ тем что имеет двойственную природу. С одной стороны он может работать как коробка и облако, позволяя относительно просто сделать сайт без программирования. Условно назовем это «режим LEGO». Но у него есть и второй режим — фреймворка. Вот тут не все так просто как говорят, а если вдуматься то сильно сложнее чем на многих аналогах.

В режиме LEGO

Тут все просто. Берем кубики (плагины, темы), собираем то что хотим. Для 80% задач этого более чем хватает. На этом уровне действительно может справиться школьник  или домохозяйка. В этом причина его популярности и простоты. Где-то можем попросить начинающего программиста подправить стили или какие то простые правки по инструкции внести.

В режиме фреймворка

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

Определение очень простое:

Фреймворк (неологизм от англ. framework — каркас, структура) — программная платформа, определяющая структуру программной системы; программное обеспечение, облегчающее разработку и объединение разных компонентов большого программного проекта.

В соответствии с этим определением WordPress это фреймворк. Есть целые книги на эту тему (например тут).

Причем в категории фреймворков это очень сложный уровень. Большинству программистов не под силу его освоить даже на среднем уровне (Middle WordPress Developer). Не говоря уже про уровень Senior WordPress Developer.

Многие программисты страдают синдромом утенка. Они сначала собирали костыли на php, потом где то на Хабре прочитали про MVC для соглашений и ORM для работы с данными — решили что вот она матерь всех веб-программистов. Единственная добрая, умная, красивая, пушистая, родная и правильная. А все что не похоже на это то не мама и значит плохо.

И тут WordPress далеко не похож на их идеалы. Вместо ORM у него EAV (Entity Attribute Value), а вместо MVC у него EDA (Event Driven Architecture).

У этих технологий нет идеального решения. У каждого есть свои плюсы и минусы. Например EAV существенно гибче чем ORM, но сложнее в понимании и в некоторых случаях может оказаться медленнее, особенно если программисты малоопытные. При этом EAV & ORM медленней чем SQL и в обоих случаях на некоторых задачах требующих тонкой работы с данными приходится переходить на SQL. Похожая ситуация с EDA — оно сильно гибче чем MVC, позволяет создавать системы гораздо больше, защищая от энтропии хаоса, но их чуть сложнее отлаживать, плюс это гиперскачок в мышлении относительно чистого php.

Далее возьмем современного фаворита типа Laravel. Программисты его любят, птм что он модный, у него есть MVC и ORM. Но вот только у него очень тонкая архитектура (100-200 основных методов) против WordPress (1000-2000 основных методов). Что проще выучить 100 методов или 1000 методов?

Когнитивный диссонанс

В результате двойственной природы WordPress мы получаем забавный сценарий. Некому типичному программисту дают задачу «сделай вот такую штуку для WordPress». Тот будучи уверен что это простая игрушка для школьников, то он сейчас сядет и сделает. Там только начать и кончить. Садится, начинает разбираться и понимает что ничего не понимает. Вообще все не так. Не понятно. Чтобы решить какую то задачу нужно сначала вникнуть в толстенную архитектуру, тк тут одна часть цепляется за другую. Для решения нужно иметь в голове кучу знаний о том как все устроено, что на что влияет и как изменить одну часть не сломав другую. Это не просто.

У программиста возникает когнитивнный диссонанс «Я че тупее школьника? Это же позор! Конец моей репутации умного мальчика/девочки! Да мне проще на голом php написать. И вообще ваш вордпресс говно!».

Так и образуется репутация WordPress в России что это для школьников, и вообще говно, а настоящие программисты программируют на голом php или laravel.

А то что надо осваивать EAV & EDA — вызывает синдром утенка, тк оно ниразу не походит на хорошо знакомое ORM & MVC. И вместо того чтобы признать свои пробелы в знаниях, гораздо проще сказать что инструмент фигня. Получаем ситуацию которая звучит как «Плохому танцору — яица мешают».

Резюме

WordPress это платформа №1 в мире. Но у нее двойственная природа. Которую нужно хорошо понимать. Нужно понимать что в режиме Лего с ней справится даже школьник. А вот в режиме фреймворка нужны очень матерые и дорогие программисты. Иначе эмоционально не зрелые специалисты без богатого опыта очень быстро сдадутся, и большинство найдет крайнего — WordPress.

Автор не против Laravel или даже чистого php. Если нужно написать некое API к существующей большой БД то вероятно лучше взять Laravel или node.js. Но если мы делаем контентный ресурсы, будь то сайт, блог, каталог, магазин или что-то из категории ECM (Enterprise Content Management), то вероятно лучше брать платформу (фреймворк), у которого больше методов для работы с контентом.

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

Так и живем 🙂

Источник: https://wpcraft.ru/2017/wordpress-eto-prosto/