Долго откладывал, но всё-таки добрался до разбора интервью с Taylor Otwell (далее по тексту T - для сокращения) на YouTube-канале ThePrimeTime. Признаюсь, формат интервью с разработчиками мне казался скучным. Редко когда узнаю что-то полезное, но всё-таки у меня канал и комьюнити посвящены Laravel и просто обязан знать все новости, а также планы T. И я не пожалел - несмотря на то что брали интервью его фанаты, и каверзных вопросов не было, интервью было интересным и очень важным. T дал понять, куда движется развитие Laravel и почему был выбран именно этот маршрут. Забегу вперёд - хейтеры Laravel будут очень довольны 😉.
Сразу скажу, что местами при чтении моего обзора будет складываться впечатление что и я хейтер Laravel, но друзья это не так, просто выбрал стиль небольшого (но вредного) критика, чтобы читать было интереснее. На самом деле я уважаю T, его фундаментальный продукт - Laravel, а также труд и вклад в PHP сообщество. Знакомство с миром Laravel сильно изменило мою жизнь к лучшему. Конечно, у меня есть мнение (как наверняка и у вас), как надо сейчас поступать T. Но об этом поговорим как-нибудь в другой раз.
Too dumb for React
Вопрос к T почему изначально выбор пал на Vue в экосистеме Laravel, а не React - на мой взгляд стал "гвоздём программы".
"Too dumb for React, enjoying Vue" - ответил T.
Приятная самоирония меня улыбнула, но это фраза — основа ответов на многие вопросы. Не смог T понять React и выбрал Vue - потому что Vue проще.
Далее T признаётся, что Laravel Cloud использует стек Inertia + React. В этом проекте React отлично вписался, так как имеет больший набор готовых компонентов. T всё ещё с React не смог разобраться, но уже достаточно зарабатывает и может позволить себе нанять разработчиков, которые хорошо разбираются в React. Про команду Laravel и то насколько T им доверяет мы ещё обсудим.
Много знать плохо
T делится своим отношением к Inertia. Считает что большое преимущество Inertia в том, что она не требует изучения чего-то нового, и является просто мостом между хорошо известными инструментами, и при этом позволяет в разы экономить время на разработку.
Полностью согласен с T. Кстати говоря все проекты из экосистемы CutCode написаны на Laravel + Vue + Inertia и на данный момент приносит только позитивные эмоции. На днях же выйдет Inertia v2, а я давно ничего не снимал по ней на канал. Может пора сделать новый видеогайд по Inertia?!
Собственно здесь и ответ на вопрос, почему T не применяет Livewire или Hotwire😉. T за простоту - чем меньше фреймворков, в которые нужно вникать, тем лучше.
Мы играем хиты для фанатов
Далее был интересный вопрос о хейте Laravel, и, в частности, о основных направлениях ненависти, а именно ORM и Queue.
T сказал, что фанаты любят ORM в том виде, в каком он есть и то же самое про очереди. T прислушивается к фанатам и работает именно для них. Философия Laravel — низкий порог входа и охват большинства. Как вывод - основные хиты рок-группа "Laravel" играет для фанатов, а хейтеров даже не пускают на концерт!
Напомню, что ежегодно T проводит опрос в Laravel комьюнити - stateoflaravel.com, где больше 80% респондентов согласны/полностью согласны, что Laravel Framework движется в правильном направлении.
Кстати, ORM переписывали три раза и мнение T, что сейчас она идеальна. Нам приходится ему верить. 😅
Да T считает, что их система очередей очень умная, ведь она умеет сериализовать и гидрировать модели, это прям революция 😉. Но мне показалось немного странным, что сравнивает он её с реализациями в JS фреймворках, а не с той же Symfony или хотя бы Битриксом. 😅
Дормамму* ты не пройдёшь!
*могущественный персонаж-плохиш вселенной Marvel
Важная часть интервью с ответом на многие вопросы началась, когда T рассказывал о том, как он поддерживает исходный код Laravel и каков его вклад в ревью пулл реквестов.
Каждый Pull Request лично проверяет T и именно он жмёт кнопку смержить или же закрыть PR. Каждая строчка кода должна быть в стиле Laravel! Для T важно, чтобы исходный код не превратился в кашу стилей от разных разработчиков со своим бэкграундом и поэтому он лично всё перепроверяет. И даже если код работает и выполняет свои задачи, но по стилю и красоте не нравится T, то он его может даже закрыть и сделать самостоятельно, но так как видит именно он.
Тут же можно вспомнить начало интервью, про "too dumb" и получается, что если T не понимает или ещё не знаком с чем-то новым (а как мы уже поняли, изучать новое он не очень любит), то высока вероятность отказа. Так что забудьте о более глубокой интеграции с Longrunning и выходом в этом вопросе за пределы HTTP, то же самое касается и очередей, где выбрана нативная PHP сериализация, имеющая множество хейта.
Да и в целом T присматривается к автору PR, ему может показаться, что вы не фанат и язвите и потому вам с Laravel не по пути - закроет PR и попросит Nuno Maduro написать то же самое.🤣
Но я считаю очень круто, что T настолько сильно вовлечён, продолжая уже много лет каждый день даже в отпуске заходить на GitHub и не прекращая развивать код. Хотя на T ещё куча дел по управлению проектом!
Команда как ключевой фактор успеха
T большое внимание уделяет команде (снова вспоминается фраза про "too dumb"). Работой над Laravel занимается команда суперпрофессионалов. Например, T даже не приходится давать правки по дизайну, так как он полностью полагается на опыт и знания своих сотрудников. Но код всё равно оставил за собой! 😉
Интуиция — это ключ
Важный компонент успеха, собственно на что всегда полагался T - это интуиция. Не нужно быть самым умным в здании, главное — иметь чутьё. Прокачать мышцу под названием интуиция способа нет, но зато нужно всегда окружать себя более умными людьми и двигаться к своей цели (T знаком со стариной Уорреном Баффеттом).
«Всегда окружайте себя людьми, которые умнее и лучше вас»
Ну и T намекает - хотите попасть в мою команду? Развивайтесь, смотрите курсы Laracasts и CutCode 😉.
Мне также здесь понравилась мысль от T - чтобы достичь результата не надо бояться или быть слишком гордым, чтобы просить помощь. Не обязательно знать всё и всегда есть люди рядом с нами, которые лучше разбираются в каком-то вопросе. Соглашусь, особенно с опытом и определённым успехом помощь просить сложно, но истинная сила человека заключается не только в физической мощи или власти, но и в способности преодолевать свои эгоистичные чувства и гордость.
История создания Laravel, Forge и Herd
Тут наверное история, которую мы слышим от любого автора open source проекта — то, что сделано было сделано для себя и под свои задачи. Было много боли и рутины на работе и хотелось всё упростить и добиться красивых решений, и вот такие откровения поведал нам и T в этом интервью.
T сделал Forge (интуиция подсказала), который почти сразу на старте начал приносить ему денег в несколько раз больше, чем на основной работе. Но T подождал ещё 6 месяцев после запуска Forge, так как боялся рисковать, но в итоге ушёл с основной работы и считает, что сделал правильно. Грех не согласится, что выбор правильный, иначе бы у него интервью не брали 😉.
Зачем Laravel масштабироваться?
Из интервью мы узнали, что за год количество сотрудников выросло с 10 до 40 и, соответственно, вопрос - зачем если и так всё хорошо? Оказывается, у T уже давно глобальные цели и ему не хватает ресурсов, чтобы их выполнить. Одна из ближайших целей — это Cloud, который недавно релизнули. Вообще цели это ответ на вопрос, куда движется Laravel?
В целом T считает, что работа над Laravel ещё не закончена и что там есть плохой код, который мешает ему спать🤣.
T: "Откуда в Laravel плохой код скажете вы?!🤣 Да и в целом я думаю ещё надо хотя бы типизацией заняться, но пока ресурсов нет😁"
Мы поняли, что код Laravel идеален и это так, потому что он открыт для всех и это лицо T. А вот в его закрытых коммерческих проектах T сознался, что с кодом уже не так радужно, но главное, что работает и деньги приносит. В общем, там можно и похулиганить.
Из этого вопроса я понял, что T уже устал от работы над Laravel и ему необходимы новые вызовы. Таким вызовом и является проект Cloud, на создание которого он привлёк инвестиции и расширяет команду.
Говоря о будущем, T поставил чёткую цель - сделать порог входа ещё ниже, чтобы web-разработчик ещё не имея особых знаний купил ноут, в пару кликов поднял систему для разработки на любой платформе и начал писать проекты. Ну и также просто их деплоил, конечно же через Cloud (или через onFriday, но про это T почему-то не сказал). В целом T вспоминает, каким простым был PHP, в те старые добрые времена, когда достаточно по FTP залить один файл и всё готово. И насколько сложно деплоить сейчас. Фреймворки всякие с миграциями, гиты, зависимости, очереди.
Собственно цель T сделать PHP снова популярным - чтобы любая обезьянка могла написать сайт и задеплоить его в пару кликов. Кстати говорят, что в Laravel придумали новый вид тестирования, где обезьяны в течение 5 минут должны сделать блог на Laravel, и совсем недавно тест был провален на несколько минут, поэтому вышел Laravel 11 с slim скелетом 😅
То, ради чего мы здесь собрались — итоги
Фокус на массовом разработчике.
T не конкурирует с Symfony и с какими-либо Enterprise решениями и не собирается конкурировать. Его путь — работа с массовым потребителем, упор на так называемых junior и middle разработчиков и средние проекты.
Философия простоты.
Laravel не будет усложняться, так как то, что T не понимает - фреймворку не нужно. Порог вхождения будет дальше уменьшаться. Если требуется без особых знаний ворваться в web-разработку, то Laravel идеален. Песочница или любой не претендующий на хайлоад проект не найдёт лучше решения, чем Laravel. Сам T следует этой философии, делая проекты для экосистемы Laravel (полезные сервисы для упрощения жизни разрабам) - ничего мегасложного.
T держит руку на пульсе и будет продолжать развивать Laravel.
T сильно вовлечён в написание кода и занимается код-ревью всех PR в Laravel. Большие планы подтверждают значительные инвестиции, которые удалось привлечь T - https://laravel-news.com/laravel-raises-57-million-series-a. Laravel это работа всей его жизни и его величайшее профессиональное достижение. T намерен продолжать делать его потрясающимХейт Laravel оправдан?
Сложил мысли T и своё мнение по результатам нескольких лет работы с Laravel и другими PHP фреймворками - хейт Laravel не имеет смысла. У каждого решения есть недостатки, они могут быть явными, или их можно придумать, если есть желание. Это как хейтить Tesla за то, что она не делает тягачи! Действительно, их тачки не способны возить большой груз на дальние расстояния. Но факт в том что самому владельцу Tesla эти недостатки не интересны. Ну если же он купил Tesla для грузоперевозок и его не устраивают возможности авто, то, скорее всего, дурак он, а не Маск.
Laravel отличный инструмент для определенного набора задач. Но он не универсален на 100% и имеет свои недостатки.
Ну а T я шлю респект от CutCode! Laravel развивается, хоть и не всем нравится, как это развитие происходит. Slim skeleton только начало, типизацию и уход от нативной сериализации в очередях не ждите, но скоро будет атрибут, который сразу реализует аутентификацию или максимум вынос очередей в пакет 😉
Всем мир ✌️
Данил Щуцкий, CutCode