Нулевой километр (Хекслет)

«Мне нравится, куда идёт язык программирования PHP, но не нравится, куда идёт PHP-комьюнити», – сказал однажды один из наших спикеров, и мы решили подискутировать на эту тему. Действительно, PHP в последние пару лет сильно меняется, а вот как дела у тех, кто пишет на PHP код? В этом видео мы поговорим об версиях и инструментах PHP, о том, часто ли встречается код низкого качества на морально устаревших фреймворках, и PHP-комьюнити.

Полезные ссылки:
00:00:00 о спикерах из PHP-комьюнити
00:01:21 мне нравится, как развивается PHP, но не нравится, как ломают обратную совместимость
00:02:34 что такое Rector
00:04:55 есть ли необходимость поддерживать старые версии PHP
00:06:44 разработчики, которые занимаются археологией и апдейтами WordPress
00:11:39 ужасы апдейтов PHP
00:12:36 чем руководствуется core-команда PHP, когда принимает решения
00:14:57 что не хватает в PHP в 2024
00:18:18 что хорошего появилось в языке программирования PHP
00:20:16 запускают ли новые проекты на PHP
00:27:28 в PHP слабые разработчики и комьюнити?
00:36:27 почему микросервисы на PHP редко встречаются
00:40:17 почему все не хотят писать на PHP, а хотят писать на Rust
00:42:30 популярность языков зависит от страны?
00:48:03 легко ли учить PHP
00:59:30 в программирование больше не входят потому, что хотят сделать сайт?
01:07:33 самые модные фреймворки в PHP
01:11:17 стоит ли разработчику выбирать PHP, если есть другие языки с кучей фреймворков
01:19:58 хайп GraphQL прошёл?
01:21:41 комьюнити PHP

Creators & Guests

Host
Александр Усков
IT-энтузиаст
Guest
Александр Макаров
Инженер из Воронежа, один из авторов фреймворка Yii. Работал над Skyeng, wrike.com, stay.com, nnm.ru и другими
Guest
Дим Энтелис
СТО и CPO в Unitiki
Guest
Иван Поддубный
CTO Webpractik и организатор комьюнити RND PHP

What is Нулевой километр (Хекслет)?

Хекслет – лучшая школа программирования по версии пользователей Хабра. Наши выпускники уже 10 лет трудоустраиваются в топовые IT-компании. 80% выпускников находят работу в IT. Готовим разработчиков с учетом требований реальных работодателей и уверены в качестве образовательных программ, поэтому гарантируем трудоустройство.

Этот подкаст об IT, программировании, карьере и жизни разработчиков. Интервью с программистами, тимлидами, HR, вебинары об инструментах программирования, публичные собеседования, распаковки ИТ-компаний и многое другое.

Hexlet (00:00.11)
Друзья, всем привет! На связи Хекслет, это с вами Александр Усков, и сегодня у нас в гостях целый коллектив прекрасных людей, которым будем обсуждать судьбу PHP, положение в комьюнити, текущий общий статус этого языка и куда он движется.

Hexlet (00:22.51)
Друзья, привет. Расскажите о себе нашим зрителям. Да, всем привет. Я Дим, я CTO и CPO проекта UnityKeyCom и хотел с вами поговорить о том, куда движется PHP, куда движется комьюнити и так далее.

Иван. Да, всем привет. Меня зовут Иван. Я CTO в E-Practic, руководитель сообщества PHP в Ростове, программный комитет Tech Lead Conf и PHP под лобткой Крилл. И сегодня буду оппонировать, возможно, Саше и просто дискутировать на тему развития PHP. Спасибо, Александр. Да, привет. Я Саша Макаров, занимаюсь, собственно, фреймворком Yii и еще

куча всяких штук, этого уже менее известно. Ну а я, собственно, Александр Усков. Я на PHP последний раз писал лет пять назад, поэтому мне будет крайне интересно послушать вообще, что он сейчас похож. Дим, у тебя были определенные тезисы, которые мы хотели обсудить. Предлагаю начать с какого-нибудь наимения провокационного из них. Да, давайте сначала поговорим про технологии, как такое более hard skills. Я хотел рассказать, что мне очень нравится, куда движется, куда идет язык PHP.

как он развивается, ну, я думаю, тут с этим все согласятся, хотя, может быть, нет, то, что появляются атрибуты, то, что растет производительность, то, что чистятся какие-то старые там огрехи, какие-то совсем старые либо депрекейты становятся, это все классно, но мне не очень нравится то, что при этом ломают обратную совместимость, ну, там, где могли бы и не ломать, наверное. Я не думаю, что мы сейчас будем обсуждать конкретные кейсы, хотя, конечно, можем, это тяжело на слух. Ну вот, мой тезис такой. Что вы можете про это сказать?

А мне есть на самом деле что сказать. Я бы сказал, что у PHP с обратной совместимостью всё очень-очень хорошо на самом деле. И даже проекты, которые были написаны под пятёрку, под 5.3 какой-нибудь, они до сих пор с очень минимальными правками заводятся на современных версиях.

Hexlet (02:33.678)
В 2019 году был на конференции PHP Russia Томаш. Он привез тогда первый раз, показал всем Rector. С тех пор прошло время, и Rector показался как офигенная тулза. Мы настраиваем, чтобы наш код всегда был совместим с определенной версией PHP. Периодически запускаем Rector, и он за нас правит все сломанные вещи.

И обычно оно заводится с полпинка и ничего править не нужно после этого.

дополнительно. Я не очень вижу какую-то проблему, которая на данный момент супер-остро стоит с апгрейдом версии PHP. А можно мне, пожалуйста, двух словах, что это такое? Про Rector? Это инструмент. Когда-то, когда Никита Попов был ещё в core-команде,

пи-чпшкой и занимался синтаксическими деревьями. Он сделал офигенную Либу, он её до сих пор мейнтейнит, несмотря на то, что пи-чпшка отошёл в сторону LLVM. Эта штука раскладывает на синтактическое дерево исходный код. Кушает файл, получается синтактическое дерево. И вот Томаш взял и сделал тулзу. Она берёт пи-чпшный код, раскладывает её в VST.

И там есть всякие правила, что если у вас версия PHP вот такая и была и вот такая вот есть, то мигрировать надо вот так, вот такие модификации применить к KST. Ну и мы, собственно, это запускаем просто, но он правит наш код за нас. То есть это что-то аналогичное всяким броузерефа в Jalscript, который под разные версии языка могут собрать один тот же исходник, чтобы не надо было…

Hexlet (04:30.829)
Не совсем, нет. Браузерефайн делает после билда какую-то финальную версию, а эта штука лезет в тот самый исходник, который она же и читает, и его же самые правила.

Ну звучит как самом деле классный инструмент ассантизации. А скажите, а реально есть необходимость сейчас поддерживать старые версии PHP? Мне кажется, все кто хотел уже обновился, нет? Вообще, ну как бы есть, но гораздо меньше, потому что сейчас контейнеризация, Docker, вот эти все дела и апдейтится очень просто. То есть на хостовой машине у нас максимум там стоит runtime Docker или там Swarm или Kubernetes и всё, а контейнеры ну…

Это уже не такая большая проблема. Раньше это было проблемой. То есть надо на сервере кучу всего проапгрейдить, какие-то либы, пакеты, ICU, интернациализацию, стройки подтащить. Это надолго было. Плюс сервер как-то тормозить, вешеные апдейты как-то построить. Сейчас просто очень. То есть мы в контейнере все это дело проапдейтили, имидж сбилдили, накатили. Красота.

Я согласен с Сашей, проще, но я не скажу, что проблема старых версий ПХП ушла. Работая на Enterprise рынке, большое количество разных заказчиков видим, и проекты с семеркой до сих пор попадаются и далеко не большая редкость. У нас самом деле системная история, мы постоянно обновляем версии проектов наших заказчиков.

И многие приходят до сих пор, нужно несколько итераций пройти, чтобы обойти до последней версии. И с Docker тоже не всё так гладко. Опять же, во многих корпорациях бывает... Во-первых, Docker, чтобы сделать Zero Downtime не у всех есть. Там какой-нибудь кубер внутри развернут, с Docker Compose свои приколы есть. И, к сожалению, до сих пор не у всех есть Docker. Многие ещё работают на виртуалках.

Hexlet (06:35.181)
особенно там, к меру, работающие с Bittrex, к примеру, бывает очень часто Bittrex VMS выставят и продокер не думает. Хочется уточнить, если позволите, ты сказал про Enterprise, а вот что происходит, условно говоря, в потребительском сегменте? Есть вот такая неофициальная статистика, что треть всех сайтов в интернете работают на WordPress. Вот, WordPress, скорее всего, до сих пор еще на пятом PHP. Нет, нет, WordPress прекрасно работает на современных версиях и...

быстрее работает, а они очень сильно рекламируют, что апдейтитесь, вы получите на халяву 30 % скорости, и народ переходит. Ну, когда я вижу эти сайты, у меня есть сомнения, что вообще их кто-то как-то апдейтит за последние сколько-то с момента их создания. Ну, я вот вирую, конечно, понятно, что есть всякие ситуации, но в целом до сих пор полно этих так называемых сайтов для людей, которые в офисе не для людей сделанных еще в ранних 2000-х, их, наверное, тоже кто-то захочет замонтейнить. Но тут хочется, наверное, ну, может быть, попробовать…

провести какие-то корреляции с тем, кто этим занимается, если, может быть, комьюнити какое-то предпочтение в том числе и по... не знаю, какой-то контингент, который специализируется на этой археологии, а кто-то, наоборот, рвется вперед на всем свежем. А археология – штука очень важная. То есть реальный интерпресс, как Иван сказал, они руководствуются бизнес-задачами, и них бывает, что тиходолк накапливается. Это нормально. Совершенно нормально, и потом...

У них немножко начинает подгорать, что-то там перестает мейнтейниться, сопортится, и они зовут людей типа Ивана, которые за деньги им делают хорошо. Это норма, это рыночек, он хороший, и вот ребята-археологи, у них на самом деле очень интересная работа. Многие говорят, что в Легасе по колено залез, это отвратительно и всё такое, но нет, это достаточно интересно. Я, наверное, отвечу здесь как...

представитель вот этого пола интерпрайза, пола бывшего стартапа, что да, есть проблема, мы пробовали на самом деле React, и оно, скажем так, в живую, но большой кодовой базе, оно, к сожалению, не так классно, как казалось из документации. То есть я, давай так, я не буду спорить, и я верю, что штуку можно докрутить, но это точно не ни один клик, и все классно само залетело.

Hexlet (08:53.997)
То есть это надо сидеть, щупать. И еще один большой вопрос, когда большая кодовая база, а нас она прям большая, у там типа 17 больших монолитов, которые, наверное, при желании можно поделить на 300 микросервисов, вот исторически 17 больших монолитов. Ну то есть просто прогнать эту штуку, оно не взлетает. Не говоря же про то, что поскольку это там… Да, мы живем на 7.2 до сих пор, на 7.3, pardon, и минорную версию уж не помню.

И там дофига всяких зависимостей добавленных в 17-18 году. эти зависимости, вообще непонятно, что с ними делать. По-хорошему, конечно, надо них отказываться переходить на какие-то более современные либы, потому что большая часть тех давно брошена просто. Либо форкаться и допиливать их самим. То то, большой объем работы, довольно такой непонятный для бизнеса, что дает. Поэтому я когда говорил, что могли бы не ломать...

Я, наверное, хорошо отношусь к тому, что какие-то вещи объявляются депрекейдом в какой-то момент. Ну, есть это, наверное, улучшает общее качество кода, среднее по больниц, и заставляет людей хоть немножечко рифачиться. Но вот какие-то вещи, то, что изменили логику работы оператора, присваивание, приоритет. Ну блин, ну нафига. Это же это дало кому? Но при этом дало потенциально огромное количество мест, которые надо смотреть.

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

Нет, понятно, что надо в какой-то момент сесть и всё это переделать, но это какая-то добавленная работа на ровном месте. Это, неконструктивная нытья, потому что вряд ли кто-то из КорТИМ нас слышит и скажет, «Блин, Дим сказал, что это плохо, давайте так не делать». Как говорят, спасибо за участие в жизни компании, ваш звонок очень важен для нас. Но такая беда, по крайней мере, у нас есть.

Hexlet (11:13.133)
И здесь ещё эффект кумулятивный такой получился, что накопилось. есть если версия сейчас 7.3, то апдейтнуться через N вообще гигантское количество версий на самом деле. В каждой версии это менялось вообще по чуть. Вот эти вот сломы, ещё что-нибудь такое, деприкейты. Это всё плавненько было, но вот когда накопилось, это уже ой. Но это как и со всем тех долгом. Если его вовремя не отдавать, потом больно, очень больно.

Вы знаете, что касается версионирования в PHP, лично немножко как бы... Каждый апдейт я ожидал с ужасом, потому что для меня такое ощущение было, что между 4 и 5 версией отличий меньше, ну, обратно несомместимых, чем между патчами 5 версии, да, 5.2.5.3, там добавлялось столько всяких новых штук, которые надо было включать, что это по сути был новый стандарт языка. 7 я, скажу честно, даже не видел, но я полагаю, там всё сильно по-другому. 6, если я правильно понимаю, не существует, да, вообще.

природе шестой версии P-SKU. Шестой нету, да, а с Unicode она, к сожалению, не взлетела. А седьмая тоже была такая прям очень-очень мощная. То есть там, по-моему, в 7.1, в 7.2 и в 7.4 прям были изменения, ой-ой, какие страшные и ужасные. А восьмерки в этом плане, наверное, ну, чуть попроще, если мы, конечно, вот deprecated в всяких штуках не говорим. То есть они плавнее идут.

Да, в то время я видел такие изменения в члене жилисте, вот миграцию на восьмую, что мол теперь значит дефолтный уровень ошибок это еол, да? Наконец-то, спустя сколько-то лет. Это стало дефолтным уровнем, который в общем-то и так все ставили в первую очередь. Вот как вы думаете, чем движет, ну как, может быть вы знаете, а может быть вы можете предполагать, вообще чем руководствуется сообщество, которое разрабатывает сам PHP, то есть вот его кор-команда, как бы вообще на что они хотят быть похожими, к чему они стремятся? А там...

Нет такой вот core-команды, у которой есть единое мнение. У PHP в принципе. Там разработкой занимается достаточно большое количество людей. Кто-то из коммерческих компаний, кто-то из PHP Foundation, кто-то еще откуда-то. И всех немножко разное видение. И поэтому в PHP есть процесс RFC. Достаточно круто прописывается.

Hexlet (13:35.181)
предложение, его обсуждают в мэл-листах, него потом голосуют. На голосовании участвуют по-моему по 30 человек. Вот. Если оно прошло, если все согласовали, тогда его уже делают.

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

не жаловался тут, Дима Стогов. То есть они занимаются исключительным движком. вот там сидят. Есть ребята, еще со времен там Zen 2, есть оригинальный автор, то есть Дейв Зураски, они немножечко все-таки такие консервативные, и они как раз смотрят за тем, чтобы никто ничего не ломал. Их голосуют часто против очень клевых всяких вещей. Иногда у них получается все это дело остановить, иногда не получается, потому что...

перевешивает количество тех, хочет, чтобы классные штуки попали всё-таки в язык. Друзья, есть что добавить по этому поводу? Куда вы хотели бы, чтобы он двигался PHP? Мне лично нравится, куда он двигается. Пусть двигается дальше. Ну классно, что у нас подцепляются разные фишки из TypeScript, из Java. То есть по синтаксису мне нравится. Мне нравится, я в TypeScript ещё дополнительно пишу.

Мне нравится, что появились там Redon для каких-то вещей, есть там затащились автоматическим, у нас с конструктором можем свойства соссайнить. общем, много приятных классных штук, и Вектор мне в целом действительно нравится. Реально надо смотреть и обогащаться из других языков. Ну, наверное, конечно, все мы мечтаем каких-нибудь дженериков, чтобы они нативно начали поддерживаться, а не только через библиотеки. Саша, не согласен? Ну, мне дженерики не нужны. Мне и без них хорошо.

Hexlet (15:46.317)
Я обожаю дженерики. Я хочу нативный Event Loop. Очень хочу. Эх, ну это прям кажется совсем неизбыточно. Это, наверное, пункт номер два, но кажется, дженерики ближе, чем Event Loop. Пошло звалище эротических фантазий у всех. Да. Дима, тебе что не хватает в ПХП? Слушай, ты знаешь, я больше как менеджер здесь, наверное...

меня все устраивает, мне нравится какой-то идёт, мне нравится какой-то синтоксический сахар, который добавляется. Я наверное плюс один скажу про Event Loop, потому что приходится некоторые вещи писать, на PHP. Наверное, что я ещё могу тут добавить, что меня личность слегка умиляет каждый раз сравнение перформанса от версии к версии. Ну потому что, скажем так, я верю, что оно растёт на тех тестах, которые не делают.

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

Ну пазу в конце концов тупую. чё, в код PHP. Код PHP, там сколько? Ну 2-3 миллисекунды работает. Ну вот. Ну там если у тебя он... Ну если он тебя нормально описан без симфонии. И без битрикса, прости, мать. Ну битрик, кстати, тоже в первую очередь в SQL упирается, Да, и симфонии проекты отлично упираются в память. То есть ситуация, когда у нас все потоки на PHP выжраны, это вообще не...

не нонсенс какой-то. Есть же проекты, помню Badoo, по-моему, говорил, что они с выходом седьмой версии, они просто 30 серверов сэкономили себя. Да, да, да. Не, ну, когда ты Badoo, да. Верю. Ну, то есть на самом деле есть проекты, где мы упираемся именно в PHP. есть есть проект Open Source, мы взяли на Symfony, чистый запустили, вот мы там упирались не в базу данных, там прям офигенная мощность железа нам заказчик выделил.

Hexlet (18:09.133)
всё хорошо, мы упирали семена в мощность пхп? Это бывает. Сейчас немножко с этим полегче. есть на тему нативного имитлупа раньше вообще труба была, а сейчас можно взять React PHP и у меня на нём в проде бегали всякие классные штуки, которые по UDP общались. И вообще без проблем. То есть мне даже больше понравилось, чем на ноде эти вещи делать. Потому что на ноде Crash очень

неприятная вещь. Когда тебя начинает что-то крашиться, надо очень круто хендлить, чтобы тебя весь демон не свалился. А на PHP приятно получилось. Что касается инициализации symphony, этих вещей у нас теперь есть. Альтернативные рантаймы, roadrunner, swoolie.

Франкен ещё добавился и они срезают эту инициализацию очень круто. есть нас фреймворк весь инициализируется один раз, а потом всё это дело уже поднятое, отрабатывает RequestResponse вместе с походом с базу за 1-2 мс, что очень круто. Но писать надо по-другому, потому что оно вытекает в соседние потоки.

Слушайте, ну а вот там, не знаю, какая-то была лет, наверное, восемь-десять назад, всё ещё были в моде всякие так называемые обкод-кэшеры, там, EPC, вот эти там, я уж пока не назвал, ну там, начиная с Zendo и заканчивая всеми разными. Эта конструкция вообще ещё существует? Она по дефолту включена, обкэш, и работает. О, ну окей. Это уже значит хороший признак. Там, на самом деле, всё очень по-взрослому сделано. Сейчас есть джит, есть виртуальная машина, и, собственно, всё это дело отлично бегает и выполняется.

Вот, то есть плюс есть ещё и оптимизация. Оптимизация ещё есть. есть об кода они не в сыром в общем-то виде попадают в это кэш. Там ещё и оптимизатор по ним пробегает и довольно неплохо делает всякие вещи.

Hexlet (20:13.741)
Скажите вообще, а на ПХП сейчас запускают новые проекты? И насколько часто, и кто, что это за людьми интересно? Запускают. Конечно, запускают. Но с контрактом Какого характера, если не секрет? То есть, это прям какие-то мега-интерпрайс-инструменты прямо на нём пишутся? С нуля? Да. А зачем, если не секрет? Ну, то есть, всем это связано. Ну, то есть, как бы есть куча же альтернатив, которые там те же проблемы уже... Ну, они изначально просто более новые, поэтому эти проблемы...

не решали, а исключили на этапе дизайна. Ну там, не знаю, например. Ну, слушай, я, тобой тут сейчас подискутирую, потому что ГО придумали ребят, для которых действительно экономия 30 % железа – это миллионы баксов. И в таком формате это понятно. По факту вся популярность… Ну, это мое личное мнение. По факту популярность ГО на рынке обусловлена определенной такой стартаперской винчерной тусовкой.

а в первую очередь не в России, которая хочет делать как большие дяди, не очень понимая, зачем им это нужно в технологическом плане. Напишем, что нас ГОЛ, легче денег будет поднимать. Ну, действительно, в каком иногда работал. А на практике... Да, это код, который выполняется быстро, это сильно более дорогие люди, которых, добавок, сложно найти, по крайней мере, внутри России. Это, повторюсь, мое мнение. И самое главное, что...

что это код, который дольше пишется, чем тот же PHP или Python или Java. И тут вопрос такой, если тебя есть какой-нибудь маленький блочок с тяжелой математикой, переписать его на Go, наверное, оправданно. Потому что это какой-то более хороший UX будет в глобальном смысле дальше. Я привел год для примера. Пайтон. Чуть-чуть по современнее все-таки. Почему нет? Почему PHP? Ну а смотри, если у тебя с ML-кой проект...

естественно Python брать, потому что там все тулзы на Python написаны. Если у проект веб, ну а зачем Python брать? Он медленнее PHP, там… Он медленнее PHP, вот эта новость? Конечно. Python в принципе медленный язык. Интересно. Ну я на самом деле думаю, задачник зависит, но когда я представляю себе веб-сервер, мне кажется, что в фастапе там ну как бы… еще давайте так, смотря кто писал еще, да? Как бы тоже важно. Не, да понятно, что кто писал, я имею в виду, что интерпретация кода Python'а…

Hexlet (22:37.74)
в рантайме она медленная. Если мы берем там iron python, что-нибудь там может получше быть уже в рантайме, но по дефолту он медленно работает. То есть, вы говорите, что PHP производительности, он при этом все еще быстрее, python. То есть, тогда окажешь, что го, как будто бы это выход. Ну или там не знаю, что-то более экзотическое. У PHP нет проблем с производительности выполнения кода. У PHP есть проблема с… Это и круто, и некруто, что оно умирает. То есть, контекст каждый раз обновляется.

Не круто, потому что его инциализировать надо круто, потому что оно из коробки скелится офигенно. есть нам не надо заботиться о том, что наш эрот стоит дофига и мы не можем горизонтально масштабироваться. И код писать проще, принципе, когда он умирает. Это и сильно упрощает абстракцию, тебе не нужно думать о бутичках памяти так сильно, париться как в языках, о утепании каких-нибудь вещей и так далее. На самом деле, Devops админы обожают PHP, потому что берешь проект, который написан просто

каким-то отвратительными ребятами, которые не понимают, что делают, и он скейлится. Да? Да, гораздо проще. По поводу Go, я немножко не соглашусь, что это прям стартаперская тема, мне кажется, больше как раз Enterprise тема, это тема про микросервисы, он закрывает нишу микросервисов, а ниша микросервисов — это когда у нас есть маленькая команда, которая может пилить свой сервис независимо, быстро наговнокодить, быстро решить бизнес задачу сделать.

То есть как бы там нету нормального ОП, на ГО монолиты никто не будет писать, это просто смертоубийство там писать, какие-то монолиты, сложная бизнес-логика, чистая архитектура гексагональная и так далее. А вот быстро наговнокодить какую-то процедурную, в процедурщине эту бизнес-логику и запустить это ГО, это классно. Но опять же, запускать новые проекты на ГО, это кажется не рационально. Мы должны как бы там по классике архитектуры всегда лучше начинать, ну в большинстве случаев.

Лучше начинать с монолита, потому что мы не можем увидеть изначально, где правильно поделить на микросервисы. Блин, PHP это идеальный язык для того, чтобы написать хороший монолит, потому что очень легкий, отсутствие синхронности, конечно, это его минус, но это его плюс, потому что легкая абстракция, мы можем быстро просто писать хороший качественный ОП-код и прям здорово сказать и быстро протокипировать.

Hexlet (24:59.788)
По поводу того, какие проекты сейчас запускаются, нужно же говорить про ниши. До сих пор во всех других языках нет CMS, таких популярных, как в PHP. Кто-то пытается в Node.js создавать в Python, но по сравнению с такими гигантами, CMS как в PHP, они там очень-очень далеки по популярности. И зачем, если на PHP есть, хорошо работают каждого языка и свои специализации.

Если брать какие-то интерпорты, что сейчас на Битерик ПХП запускается, возьмем САП у нас из России ушел, у нас вместо САПа Битерик 24 свой. И вот все корпорации сейчас на массово, очень сильно Битерик 24 внедряют как систему управления внутренней ERP-шкой из коробки сразу кучу внутренних бизнесовых задач решают. Вот тебе пример, когда там компании на тысячи сотрудников без проблем внедряют себе новые проекты на ПХП.

BITX24 это ПХП. Я могу рассказать, что я в чем участвую, что мы запускали за последний год. Это очень-очень специализированная такая RP для управления сервисом витриных турбин.

Вот такая вот вещь. А там куча интеграций. Но основное это ядро на PHP их работает и вполне себя оправдывает. Турбины? Это прям какие-то электростанции? Да, это эти ветрики, которые вращаются, вырабатывают электричество. Прикольно. И вы там метрики собираете? На низком уровне что-то? Или вы верхний уровень, а нижний, средний касаетесь?

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

Hexlet (27:04.908)
на сами турбины, там фоточки делают, гайки раскрутились, где надо пайку сделать, еще что-нибудь такое. Где шторм прошел, там ветряки побил. Они там все это фотографируют, офлайнят на приложухе, оно потом скидывается, как они слезут, интернет поймается. Интересно. У меня просто совершенно противоположный опыт. За последние 5 лет моей работы в российских компаниях от PHP отказались все. Причем даже там, где он был, как бы сделали деприкизить.

Действительно, с горазработчиками, конечно, понятно, что тяжело, но есть уанс. Как раз почему отказались от PHP в основном? Потому что очень сложны те разработчики, которые умеют его готовить. Потому в целом их очень много, но они примерно как на JavaScript. Во-первых, язык очень обширный. есть, даже читаешь документацию, тебя там 20 способов, которые они тоже сделают. Много раз причин. Мало хороших референсов, потому что в целом очень широкая комьюнити. пытаешься от этим в интернете, тебе идут советы точно такие же неофиты, как и ты в целом. Они не просто хорошие и правильные.

Ну, общем, по этим всем разным причинам, и в общем-то, в том числе по энергосторическим причинам, сообщество очень большое, в нем очень мало людей с сильным инженерным мышлением. Вот в ГОП чему-то оно как-то побольше, в Расте там еще вообще исключительно их... исключительно они только есть практически, но соответственно их все меньше и меньше. И вот, ну, это все компании, где работали, были продуктовые, соответственно, внутренние все сервисы, ну, в основном это опихи были, да, опи-гейтвей и всякие, были на PHP, на симфоне, вот, в общем, все переписали на фастапе, на Python.

Потому что питанистов тоже полно, и тоже они такого же примерно качества, но почему-то оказалось, что это как будто в проще поддержке. А что вы думаете вообще про качество разработчиков в PHP-среде в целом? Как и везде, по-разному. Я думаю, что их можно поделить прямо на две такие категории. Одна категория такие. Ребята немножечко из прошлого, которые как раз делают сайты на Вартпрессе, которых ты вспомнил. Их на самом деле количественного очень много, и более того, есть много...

неофитов, которые PHP заходит именно вот через какие-то такие истории. Про мой любимый кейс-сайт подключен на 50 баксов. И пишут они, ну там достаточно любое на самом деле, посмотреть Q &A на хабре или там русский Stack Overflow, что люди пишут какой-то жуткий спагетик-код с какими-нибудь устаревшими любыми, кто-то до сих пор там iSkell, без i использует. Вот и так далее. А есть какая-то там...

Hexlet (29:29.1)
наоборот, прослоек, и тех, кто пишет на чем-то более современном, там, Ларавель Симфони, там, UE, и так далее. Ну, это, наверное, ребята на Битриксе стоят тут немножко обособлены, потому что Битрикс — это такая огромная экосистема и вещь себе. И тут, скилл Битриксоид, он вообще… Отдельный круг Ада, я бы сказал. Ну, и… Ну, в целом, всё так, я с таким разделением согласен. И действительно, есть… Ну, во-первых…

Как вообще растут большинство ПХП-шников? Через веб-студии. У нас в стране огромное количество веб-студий, в постоянно открыты вакансии. Я вообще считаю, что в ПХП сейчас ворваться — это одна из самых лучших вариантов ворваться в IT, потому что действительно тоже согласен, что ПХП-шников стало чуть-чуть меньше на рынке за последние годы.

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

Самый кайф любому человеку, кто хочет ворваться в IT. Те, кто врывается через WebStudio, очень часто какие-нибудь CMSки и очень часто практически полуноукод подход, потому что там даже Bit.Rix, Joomly, Drupal, Wordpress, там же половину задачи можно накликать мышкой. Они реально полуноукодеры такие, то есть они там мышкодавые, то когда там всё можно взять, накликать и так далее, а код там, там чуть-чуть шаблончики там что-нибудь натянуть или ещё что-то.

Их переучивать потом на фреймверке, на архитектуру, их немножечко сложно. Есть те, кто повезло, и кто в институте немножечко подучил фреймверки, и сразу ворвался в компанию, где есть хорошие стандарты, вот они там дальше пошли по пути симфонии, фреймверков и так далее. В целом, такая классификация есть. Тут с Димой согласен. Александр Артеевич, есть что добавить? Ну, меня, наверное, другие классификации. То есть я не особо разделяю по...

Hexlet (31:45.612)
языкам я вижу, что практически везде примерно так же. Просто есть в некоторых языках уровень входа постарошнее, типа там, не знаю, Rasta того же. И там просто срезают всех, кто хочет на Rasta делать сайты, потому что это нецелесообразно немножко, или на Go, на чем-то таком. А так хорошие инженеры, их в принципе не очень много.

Просто их немного проще найти в комьюти-раст, потому что туда по-другому и не зайдешь. Кстати, насчет того, что у ГО в принципе высшая специализация. Так блин, джунгерских вакансий на ГО практически нет. Туда все идут из Джавы, из Питона, из ПХП. То когда тебя уже багаж опыта, несколько лет программирования, и ты переходишь на ГО, понятно, что тебя получится статистически, что там и не таких вот...

более крутых ребят инженерных на ГО и их больше, но просто потому что тебе не берут после универа с нулевыми знаниями на ГО практически. есть там везде реально половина локантий – это ГО плюс что-то у тебя, есть какой-то бэкграунд должен быть. Тут, опять же, продуктовые компании, прямо состоявшиеся, там все дела, которых бюджеты большие, они себе могут позволить взять, не знаю, там 100 сеньоров и которые у них будут закрывать все задачи. Офигенно.

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

То есть с той же пичпихой, с питоном. Больше будет гораздо пространства для манёвра, ну, не знаю, когда совсем прижало взять там, нанять 10 джунов вместо одного сеньора. Вот. И чтобы они там тебе нафигачили кучу некачественного, работающего кода. Потом когда-нибудь перепишем. Я бы тобой тут немножко подискутировал, потому что мне кажется, что, ну, во-первых, я, не соглашусь в смысле, что...

Hexlet (34:09.42)
Интерпрайз-компания наймет 100 синьоров, они заткнут все задачи. Потому что, моему опыту, в том числе с Интерпрайзом, синьоры очень быстро начинают выгорать в таких компаниях от задач, которые им прилетают, и говорят, что «нет, ребята, даже жирный-жирный санспакет это все не компенсирует». И мне кажется, что то, что на ГОУ действительно все хотят синьоров, это не вопрос того, что всех денег много, это вопрос того, что…

сложился какой-то рынок, что голову разработка стоит дорого, а бизнес он все-таки деньги считать умеет. Но опять же, всегда приятнее нанять 100 менеджеров, чем 100 разработчиков. Поэтому на ГОУ начинают писать именно, когда это как-то оправдано. Либо когда есть какое-то сурово политическое решение внутри компании, но опять же, это решение должно быть как-то обосновано. Не всегда. Иногда приходит CTO, который умеет писать на ГОУ, не умеет писать на чем-нибудь попроще.

И всё, и пошло, поехали. Это и есть политический обоснован. Я ж не сказал технический обоснован, я сказал политический. Я, кстати, из российских кейсов помню, что когда «Тайгито» что-то пыталось сделать на «Гоу», я, честно говоря, уже уехал и перестал следить, чем у них это всё кончилось. Я помню, они там целые вертикали набирали. Не знаю, чем закончилось. Может, кто-то из вас расскажет. А какая компания ещё раз? «Авито».

Я помню. У них сейчас большая, большая кусок, в общем, меньше меньше ПХП, больше больше ногу они прям внедряются. Я бы не сказал, что сильно меньше на ПХП, у них другие соображения. есть, им не то, что PHP не подходит, а них в перформанс упирается. То есть, настолько весёлые задачи показать счётчик на объявлениях.

что это выделяется в отдельный микросервис, которого там какие-то 5 уровней кешей. И по-другому нельзя, потому что иначе оно не возит вообще никак. Ну, то есть эта компания, которая жестко в микросервисную архитектуру упирается, горит, царь микросервисов, тут с ним никто, пока я сильно соперничать даже не буду. Это наш сценарий, да, как раз таки. А можете, кстати, вот почему PHP до микросервисов так редко используют? Мы пытались, скажу честно, и оно даже работало, как бы не очень... Разработчики не очень к этому были готовы.

Hexlet (36:31.532)
Мы использовали нормально. Тот же Skyeng, например, весь на микросервисах, на PHP и вполне себе бегает. Ну там такое... Спорное. Они, кстати, думали... Они в какой-то момент тоже начали упираться в хэппи-разработчиков, вот у меня есть история информации, которая меня есть, просто потому что их просто не хватало на рынке для их репетитов. И они такие, блин, давайте на ГО.

А потом смотрит, а Гошников-то тоже рынок маленький на самом деле, есть у ГО-разработчиков мало не хватит, ну и опять же дороже. Я бы сказал, что их меньше раз в 10. И они начали в том числе питанистов, то есть они в итоге у стек, это в основном пхп, питон и вот немножечко по-моему ГО у них есть, это точно не помню, ну то есть вот так они себе расплодили. Есть, есть, и ГО есть, и питон, питон там был всегда, просто он был на мл.

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

мне кажется для микросеросов синхронность важна. Потому что нет event loop из коробки. Да. На самом деле. А синхронность прям не обязательно, вот event loop был бы очень кстати. Ну как бы, когда компания дорастает до микросеросов, них уже производительность важна, кажется. И опять же, без event loop мы по производительности легко быстро запротокипировать, но производительность мы не получим.

Да, в микросервисе они же по разным причинам делаются. есть производительность – только одна из возможных причин. Вторая – это как раз когда тебе надо границы и команды поделить. Самая главная причина. И вот в том же Skyeng, но вот Wavito делили, потому что перформанс не хватало, и поэтому у них там все выжимали сначала с PHP, потом уже из Go начали все выжимать, потом уже там вообще что-то там страшное и ужасное делать.

Hexlet (38:48.14)
А в том же Skyeng делили, потому что там был гигантский монолит на E2 изначально. И там куча народа, то есть у Skyeng произошел взрыв экспедициальный количества разработчиков. И началась чехарда, они просто сталкивались лбами, и них были постоянно конфликты, и какие-то очень веселые выкатки напрот.

который там один человек выкатил нормально, второй человек должен был выкатить нормально, но оно как-то сконфликтовалось с первым чуть-чуть, причем логически, и получилось напротив Биака. Вот такого было слишком много, и решили, что надо зону ответственности делить. То есть причины разные. Там в перформанс никогда практически в то время не упиралось. И поэтому там микросервисы...

не с расчетом на производительность, а не с расчетом на разделение ответственности. Поэтому они там тоже на пищпишке по большей части.

Пока мы вами общаемся, я немножечко залез в статистику посмотреть вообще что там на stackoverflow и на GitHub популярных те языков. Оказалось, что самые популярные языки для новых проектов на GitHub сейчас это Rust, TypeScript и Lua внезапно. PHP стабильно держит седьмое место в Open Source. Ну понятно, что мы говорим сейчас по основному про коммерцию, да, Open Source немножечко нерепрезентативно. Вот, а на стеке есть интересная статистика, ну, звали вопрос же в конце года, на чем вы пишете и на чем вы еще хотели бы пописать.

Так вот, по количеству людей, которые сказали, что они используют PHP, PHP там находится практически в конце. есть, он наступает плюсам, джави, го, расту, само собой, джалскриптам. Попробовать хотели примерно половина, а опять же, все хотят попробовать раст. Чего там этом расте так все намазано? Ну, там же не в качестве нахрамой козеты вообще. А раст, как такой элитный язык, получил очень крутую репутацию. У него прям вот, ну, вот...

Hexlet (40:45.836)
плюсы его в то, он не течет, то что он супер быстрый и то, что он сложный самое главное. Разработчики любят что-нибудь зубодробительное взять. Раньше брали brainfuck поиграться, но это как-то не очень прикольно, что нигде не применишь. А Rast это прям самое оно.

Раст как язык для продакшн, он немножко провалился на самом деле. есть Гоеву побил в серверной разработке, такой вот подвеб. Очень сильно. Но как язык, котором очень прикольно бы попробовать пописать, побить его мало кто может. То есть какие-то ультропроизводительные штуки на Расте, по идее, часто пишут? есть многие инструменты... Ну как часто пишут?

Прикольно было бы написать, скажем так. Во фронт-энде, кстати, да, потому что он компилируется VBASM. Вот это единственное его полезное качество для меня. PHP тоже компилируется VBASM. Вот, даже так. Но это вообще супер. Я, это не стану писать на PHP, но приятно знать. Ну да. Ну, по крайней мере, я очень много слышу, что на фронт-эндерские многие инструменты переписываются сейчас на раз. Там каждый второй инструмент чуть ли не пишется. Ну, это делается, потому что прикольно.

Потому что, блин, давай я замучу какую-нибудь классную штуку. Вот она будет на расти чисто для себя. А если получится, я еще и в AppMassor все выложу. Так родилось очень много крутых инструментов. Да, для нормальных людей там есть Assembler Script, как минимум, чтобы вот всем не заниматься. Еще интересно, есть же еще индекс TOYOBI, это типа упоминания поисковых системах, да? И там вообще PHP, ну он в десятке, как минимум, да, но на десятом месте. И он внезапно стал уступать даже Visual Basic. Вот это, удивительно.

Слушай, мне кажется, там есть такое некоторое объяснение, что, по моему опыту в эмиграции, сказать, что популярность языков, она очень привязана к конкретному региону. Тут есть такой некий замкнутый круг с тем, что учат в университете, на чем есть legacy-проекты. Ну ладно, legacy – плохое слово, на чем есть написанные проекты, которые нанимают людей, люди смотрят, на чем вакансии это учат. И это замкнутый круг, потому что точно так же менеджер проекта выбирает.

Hexlet (43:04.62)
на чем бы это делать, и при прочих равных он выбирает тот язык, котором... Вокансии будет. Извини, заговорюсь. Он выбирает при прочих равных тот язык, на котором резюме больше. В его регионе. И PHP исторически очень популярен в России. Вот как-то так сложилось. И внезапно PHP очень популярен во Франции. А, например, где-нибудь в той же долине, ну вот нет. Извините.

В Германии очень много, мне кажется, бесконечное количество PHP-шных проектов, потому что вся, мне кажется, их индустрия работает на PHP-шных решениях, так или иначе. В этой же статье, которую сейчас я цитировал, читаю еще опросники всяких разных руководителей разработки крупноканалитских компаний. В общем, уже упомянутая авитооднозначно дает в отпрощение Go, SelectL Python Go, Azone Python Go, а вот VK, как бы, да, это мека PHP-шников, продпишут, что они транслируют C++ через компилятор.

Это вообще для меня уже космос. Да, них получается на выходе бинарник размером в 1 гигабайт. И вот на нём бегает контакт. Ну это что-то такое, как сказать, это не является чем-либо полезным для всех столих, кто не работает в контакте. Не думаю я, что это. Да нет, они, кстати, релизнули. Эта штука называется KPHP.

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

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

Hexlet (45:13.068)
Но даже если у меня вызывают некий страх и отражение, предложение, переписать, то, наверное, условные ВК или Авито не перепишут это целиком просто никогда. Хотя Авито, кстати, как раз пытается, получается. Но что-то они пытаются уже, слушай, я слышал новость, что они начали переписываться на ГО, ну типа это было 6 или 7 назад, ну come on. Если до сих пор у них не сильно получилось, лишнее подтверждение моего тейса, что это не сильно реально.

Нет, там сильно получилось. того, что я знаю, у них реально очень много уже чего на ГО работает. И количество микросеросов уже на ГО у них там, чуть ли не тысячами уже измеряется. есть там прям плотненько. Пожалуйста. Вопрос просто... Давай так, когда у тебя такой масштаб, тебя просто новый проект с технической стороны, смена языка. То есть ты просто взял, сломал то, что тебя было семь лет назад, написал что-то новое. Это нормально и понятно.

Я с тобой соглашусь, что конечно рынок диктует. Действительно, по крайней мере нанимаю ПХП-шников 10 лет в Ростовской области, и рынок ВУЗов очень сильно давит. есть то, что рынок выпускает слишком много питанистов, это немножечко поддавливает рынок ПХП. То есть количество работы, на мой взгляд, из заказов вообще меньше не становится. Мы растем, масштабируемся.

и наши коллеги тоже на PHP стеке, мы видим, что растут, масштабируются именно кто там на заказах работает, заказ на разработке но именно с кадров у нас очень много питанистов, которых мы приучиваем на PHP вот такая вот данность есть а по поводу популярности, то что там я там хочу ли я PHP изначально вот я помню еще 10 лет назад там все такие, фу, зачем PHP надо на Ruby писать помните 12 год, когда вот блин, PHP я умрел

ПХП умрет, надо писать на рубя. Где тут рубя, где сейчас ПХП у нас в России? Слушайте, да. То, что PHP умрет, мне говорили еще, когда я начал писать, а это был 2005 год. И вот он уже почти 20 лет, как бы, он помирает. И все, похоже, уже никак не помрет. А то, кстати, пахнет по всем признакам. А то у вас-то падает. Пахнет не всегда хорошо, конечно. Лично у меня к битриксу много накопилось психологических травм и претензий. Вот, а так в целом, ну...

Hexlet (47:32.716)
Давайте так, если говорить про то, чему учат в вузах, в вузах учат питону, а раньше-то учили паскалю, и вообще это было совершенно ни к чему. Поэтому пусть хоть питону… До сих пор учат паскалю. Ну, в меньшей степени, да. Вот в школе, я учился, сейчас с седьмого класса питоном, представляете, ну тех, на информатике. Вот, я не знаю, что на нём там пишут, конечно, вряд ли там какие-то рестапи, но, наверное, что-то пишут. И это хоть как-то применимо. И я думаю, что, питонистом можно приучить на что угодно гораздо быстрее, чем человек, который знал только паскаль. Ну вот, что-то есть такое ощущение.

А как вы сами считаете, насколько PHP с точки зрения доступности, если я хочу учить разработку, войти, так сказать, на рынке много разных есть курсов, инструментов и всего похожего. Если с точки зрения сложности обучения, насколько PHP, учитывая огромную эту вот разрожденную базу знаний, огромной легоси саморазнородных проектов в разных версиях, насколько он доступен человеку без базы для быстрого какого-то вкатывания? По сравнению с другими языками, конечно.

Так же, и все остальное. Слушай, я не знаю, по-моему вообще...

Я не знаю, что такое быстрое вкатывание, наверное. Я приду пример, если позволишь. Вот условно, я сам не пьетонист, я недавно впервые его, так сказать, освоил, прошел на код Basic за вечер этот курс, бы пошел там что-то пандес и поставил по своим делам. И ну, мне было достаточно легко, потому что я достаточно много о чем писал. Если пойдет тот человек, вообще ничего не знает, ему Python, мне кажется, тоже покажется относительно простым. В том числе потому, что ты идешь в любой Stack Overflow, любой чай GPT, говоришь, напиши мне код, он тебе пишет код, который работает.

Катуешь PHP, ты решаешь какую-то задачу, идешь на Stack Overflow, находишь там код, а он на пятой версии у тебя просто не запускается. ты как-нибудь... Не, он запускается и работает. Чаще всего... Чаще всего запускается, работает, все как бы... Чаще всего, да. Но именно в тех ситуациях, когда он работает не так, ты ожидаешь, и ты не знаешь, куда копать, потому что, ну, как бы тебя нет вот этой базы... Ты на тот же Stack Overflow в соседней вкладке. Ну, то есть перебором. Да, да как и везде. Ну, как бы если ты ничего не понимаешь, и ты не систематически учишься вот именно вот таким способом, ну...

Hexlet (49:35.596)
нормально, но перебрал не одну вкладку, а две вкладки. Ну да, да, это так. Спайтон тоже сам. Это код, который напишет чаджи PT, он с равной вероятностью кинете какую-нибудь ошибку на абсолютно любом языке. Также эту ошибку пришлешь этому чаджи PT, может быть он ее исправит, если тебе повезет. Но может быть нет. Не знаю, мне вообще нравилось с Паскалем входить во все это дело и обучаться, потому что...

Именно с тем паскалем, который турбо паскаль старенький, где не было никакого там не ОП, ничего. Вот там вот самые основополагающие концепты на паскале объяснялись прям прекрасно. Он читается супер, пишется легко. Ну такое, чтобы взять, выучить там за две недели питон и без каких-либо знаний вообще пойти с разработать, ну мне это кажется немножко утопичным.

Нет, тут, конечно, согласен. Паскаль для обучения – прекрасный язык, просто из него довольно сложный. Ну, как бы, вот он для базы хорошо, но если ты хочешь быстро, то база как бы, оставится чуть-чуть на потом. Проблема в том, что без баз-то нельзя. То есть Паскаль, ну это он же изначально его придумали для обучения, по сути. И он хороший именно для того, учиться каким-то ну там совсем базовым вещам там в алгоритмах. Ну или там чуть менее базовым, но всё равно базовым. И вот если этого не… если это не пройти…

то ты становишься таким вот придатком к GPT, который просто код копипастит или stack overflow. И это приводит к очень печальным результатам, к сожалению. Ну разве это не основная масса людей, которые когда-либо писали на PHP в первый раз в своей жизни? Типа «мне нужен сайт, быстро, вот прямо сейчас, я из этого PHP учил». На PHP есть даже такая специальная страница, PHP на танке, которая вот таким ребятам…

объясняет какие-то совсем базовые вещи. Ой, я такую не знаю, надо посмотреть. Ну, погуглить PHP на танке она. Она периодически меняет её руль, но кто-то её там суппортит до сих пор. Ну, то есть там какие-то совсем тупые базовые вещи типа «а что такое веб-сервер?», «а почему JavaScript, написанный в PHP файле, он тебе не выполняется на сервере?» и так далее. Ну и вот то, что это востребовано, говорит о достаточно низком уровне людей, которые в первый раз всё трогают.

Hexlet (51:56.3)
Потому что... Ну, давай так. Есть, конечно, старая шутка, что Go простой, пока ты про горутины не начал думать. Но... Как сказать? Все равно языки между собой отличаются с точностью до синтаксиса и какой-то такой специфики. Если ты пишешь какой-то тупой базовый код, ты его можешь написать через день обучения, условно. Ну, плюс-минус на чему угодно. Да.

И проблема в том, что, ну как-то опять же исторически случилось, что вот на PHP приходят люди, которые не имеют вот этого базового уровня. Мотивация, да, да, да, да. Мотивация еще немножко поменялась. Да, проблема в том, что у них не всегда есть желание учиться. То есть они хотят вот сделать опляп, как бы поднять...

поднять в ВПСку какую-нибудь, прости, господи, или Charlotte Hosting и заказалить туда WordPress с кучей плагинов сторонних, которые действительно в два клика ставятся. Ну и решить свою задачу. Нормально. Быстро решить бизнес-удачу. Да, и пость картинку, что я умовом-программист. Тут, наверное, же меня может быть такое немножко когнитивное искажение, потому что я сужу со своего опыта, со своей бизнес-задачи. Ну, для кого-то, наверное, да, это нормально. Но, то есть моя личная боль, что...

Такие ребята приходят наниматься, и их начинаешь задавать какие-то тупые вопросы в стиле «напиши SQL запрос руками», они не могут. Потому что в лучшем случае они трогали какую-нибудь ОРМ. Это в лучшем случае. А в худшем готовые блоки собирали. Не думал, что когда-нибудь буду этим заниматься. Хотел повыступать таким заочным адвокатом Битрикса. Ну и принципе вообще всех этих готовых систем. Любая система,

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

Hexlet (54:12.364)
в классическом фреймворке, ну это будет больно дорого и нафиг не нужно. Проблемы начинаются, эти решения, скажем так, когда бизнес потребностей меняются так, что это бизнес решение уже не соответствует им. Не вписывается немножко. Да. У меня есть пример один, клиентская история. сидят ребята, как раз корпоративный сайт большой на битриксе, и там звонок про нагрузку, они говорят...

Ну там, от закачки сидят серьезные дяди в галстках. И вот, значит, эти ребята на Битриксе говорят, слушайте, нам вот очень нужно какие-то защиты от ДДОСа, потому что нас там нагрузка, как они выразились, сотни запросов в минуту. Это вот... Ну, то есть давай так, для меня это, наверное, звучало очень дико. Ну, потому что меня там было по тысячу в секунду, и я как бы считал, что у меня не хайло, это у меня отмало. Ну вот.

А для них это было много. Просто другое решение. Достаточно посмотреть на эти эти скелезапросы, которые Bittrex генерирует, чтобы понять, спасибо, что сотни минуты держат. Но с другой стороны, это быстрое корпоративное решение. нет? Даже на Bittrex современные сайты все-таки все меньше и меньше делают наши блонизации PHP. То есть берут Bittrex. Что классно Bittrex? Есть бизнес-логика готовая, есть админка готовая.

есть рестапишка к готовым сущностям и плюс ты можешь рестапишку свою дописывать без проблем. Свою рестапишку ты пишешь на УРМ-ке. Какие запросы ты делаешь через УРМ-ку или это уже ты сам себе... Ты можешь и плохой запрос на УРМ, и в Ларавелии, симфонии в любом месте написать. И вот эта история, когда эти старые компоненты, которые тянутся с нулевых, которые действительно плохие очень запросы, она как бы немножечко отмирает. Ну, в принципе...

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

Hexlet (56:33.996)
могу быстро написать даже сервис, ну, с готовой админкой. Вот мне админка — это моя боль. Быстро написать бизнес-логику, но я хочу к ней админку. Писать свою админку с нуля — долго. Эти конструкторы, которые все есть, тоже, большинство из них ни фига не гибкие. Они, то есть, тоже там, не...

Гипче чем в битексе, но блин, все равно шаг вправо, шаг влево, там такие велосипеды сиделаешь, и они все на большинство этих админок, еще на джеквере каком-то, в котором тебе нужно залезть и там что-то поменять, это вообще ужасно и страшно. А как же современные там Headless CMS-ки всякие вот эти штуки, они же уже… Вот Headless CMS-ки, она по хп, у нас есть хорошие Headless CMS-ки? А подождите, она же Headless, у нее нету интерфейса, надо еще к ней UI. Да-да-да, она на GS, она с REST-ом стыкуется.

на чем-то ты МРС сделаешь, ну пофигу. Не, ну Headless CMS, подразумевает, что у тебя есть админка, все-таки GUI есть, да, то есть для публичной части у тебя API, а для админки у тебя все-таки уже есть какой-то интерфейс GUI и так далее. И вот Headless CMS-ки, в Node.js, они немножечко популярности есть, я там знаю несколько решений,

А вот на других языках я не знаю headless CMS. То есть в PHP до сих пор нормальный headless CMS не делают. Но Bit.js, мы используем Bit.js как headless CMS получается, но он для этого изначально не заточен. Ну во-первых смотри, во-первых WordPress, них сейчас, начиная с Готенберга, них CMS вообще headless, то есть ее можно отлепить к чему угодно. Вот, это раз. А во-вторых, JS-ный CMS отличный, headless лепится к...

админкам на PHP. Прям очень даже. Но эти админки на PHP их тоже создавать или пить... Нет, смотри, есть проекты типа симфоневского API-платформы и вот вот штук. У них есть в комплекте CMS. Вполне сезонирует. Есть. Но они тоже нифига не гибкие. Не, API-платформа очень гибкая. просто... Ну это типа вообще свой мир такой. И симфонисты там не могут разобраться по дефолту.

Hexlet (58:39.98)
надо еще полгода потратить, чтобы понять, что это такое. Она очень специфичная. меня товарищ есть, который, что они запустили большую платформу, АПИ-платформ как раз, ссори за тавтологию, но как раз упёрлись в ее гибкости и так далее. Там шаг вправо, каких-то моментах шаг вправо, шаг влево, они стреляют себе в колено. Хотя, то есть, там, проработал он на ней больше года. У товарищ в сообществе, в нашем Ростовском, постоянно поливает ушатом.

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

И что-то я вот в последнее время смотрю и этого вообще не случается. Ни в какие языки больше не входят, чтобы сделать сайт. Берут какую-нибудь тильду и, собственно, мышкой кликают. Всё. Не соглашусь с тобой. У меня лично есть несколько клиентов, которые на Битриксе подняли сайт. Это обычные небольшие частные бизнесы. Окей, ну на Битриксе подняли сайт. есть, ну проще всего сейчас поднимают там на тильде сайты. Бывает на Вартпрессе поднимают. Бывает там Подожди, Вартпресс и Битрикс тоже бывают с АСом.

В этом смысле разницы нет, на чем ты его поднимаешь. Заходишь в админку, еще ты там конфигурируешь. А вот когда ты ставишь себе он премис, что-то, ну как бы тебе что-то нужно. И как правило это бидрекс, потому что на него, а, дофига, контор, который предлагают тебе, сейчас мы тебе за раз-раз-раз все запустили. А вопрос, а зачем они так мучились? А что им делать? Нанимать разработчиков штат?

Не, почему не тильда? Ну взяли-взяли магазинчик на тильде за магазинчик на тильде – это вообще вариант. Ну то есть если у тебя серьезный какой-то ретейл или доставка на тильде, ты упаришься, тебе нужна… Так серьезный ретейл – это уже не сайтик. Ну как? Сеть доставки роллов, как тебе, например? Это серьезный ретейл или нет? Там 12 регионов. Это достаточно серьезный ретейл, потому что backoffice там будет очень интересный. А backoffice там вообще не пихи-пихи-пишный, сам это прикол. У есть сайт на битвикс, а backoffice на айко. И вполне себе работают.

Hexlet (01:00:50.38)
Просто потому что это быстро и быстрее всего, чем… Ну, разработчиков в стат брать компании не этично не будет, очевидно. Так это всё равно не сайт PHP, это фронт к достаточно сложной штуковине, которая даёт свой API, кайки. Это часть бизнеса, остальное же просто стать, и картиночки там, сегодня выпустили новый сет, и это всё обычный функциональный ресурс. Просто это как бы всё в одном. Ну, здесь, наверное, потому что фронт уже есть на PHP, а почему бы остальное статьи не сделать на ней же.

Он себя хорошо продаёт. Bittrex себя очень хорошо зарекламировал, как будто это хороший шейн для трет магазинов. Не могу с этим согласиться, но оно как правило... Ну, хотя бы для людей, которые не погружены в мир IT, это хороший способ найти подрядчика, чтобы быстро это запустить. Маркетологи у Bittrex огонь. У них агентской ревенью огонь, а не маркетологи. Хотя маркетологи тоже. Там копейки, на самом деле. Агентство не зарабатывает практически на Bittrex-овых этих лицензиях. Практически ничего. То есть агентство зарабатывает на работе. В какой-то момент зарабатывали прилично.

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

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

Слушай, ну это как бы уже выходит за use case сайтик за вечер, с которым раньше заходили во многие простые языки, читали мануал. Поднялись стандарты. Да, раньше часть сайтик за вечер это был как бы, то, что сейчас страшно показывать. А то, что сейчас делают тильды, это минимальный уровень, который вообще люди считают съедобным. И, как правило, не устраивает бизнеса. Да, да, да. Оно на мобильниках рендерится офигенно.

Hexlet (01:03:15.756)
Там вообще много прикольных штук, прямо скажем. Но в какой-то момент инструмент, как, кстати, любой другой, не буду сказать, что тильды не исключение, любой инструмент в какой-то момент начинается его пользователей поглощать. И ты тратишь больше времени на то, чтобы работать с фишками тильды, чем на то, добиться нужного тебе, так скажем, бизнес-ценности, да? Потом ещё начинается, например, SEO-хотелки. А SEO-хотелки на тильде – это вообще боль. Не, кстати, SEO там вроде неплохо сделано. Я не знаю, почему все говорят. Ну, они много ещё сделали для того, чтобы можно было как бы не об этом не думать. Но опять же до определённого размера бизнеса, до определённых потребностей.

Смотря с кем ты конкурируешь, Если у других людей там всё хорошо и кастомно. Я хотел ещё подискутировать. Ты сказал, что на PHP не надо делать фронт. А вот я как раз тот человек, который делает фронт на PHP. И более того, не хочет от этого уходить. Потому что мне очень нравится PHP именно как шаблонизатор. В нём есть всё, что нужно. И тут опять же вопрос, что ты хочешь. То есть у нас та специфика, что...

Говоря про конкретно основной мой проект автобусный, у нас та специфика, что мы хотим, чтобы сайт рендерился очень быстро, и рендерился быстро на дешевых устройствах. Потому что основная аудитория — это люди, у которых, условно, нет денег на железную дорогу, они едут на автобусе. Нет денег на JavaScript. Да, и мы, условно, отказались от G-Quaria, потому что он тяжелый. Все, что есть там, мы начали собирать просто с нуля, и это дало какие-то сумасшедшие скоры в Lighthouse.

И действительно повысила конверсию, повысила скорость загрузки. Я не могу сейчас напудать с цифрами на память, но мы открываемся именно на живом устройстве в 3-4 раза быстрее, конкуренты. Это не единичный случай. Да. И плюс еще SEO. Важный момент. Потому что нас аудитория сайта месячная. В сезон по 2 миллиона человек. И значительная доля из них – именно SEO-канал.

И вот если тебя там все на модном джейсе собирается, так сделай, чтобы это все хорошо индексировалось, но это такая отдельная задача. Я здесь буду сильно прям спорить. есть, смотри, с точки зрения, если взять просто там отдать HTML-ку, да, это будет медленнее, чем если, например, возьмем NetJS, пример, который там даже на сервере тебе нужно там рэк запустить и так далее. есть, с точки зрения шаблонизации, чуть больше логики запускается, поэтому это чуть-чуть медленнее. Но, когда ты говоришь про Google PageSpeed, тебе нужно решать кучу задач.

Hexlet (01:05:39.5)
к примеру, тебе нужно решать задачи. Правильно отдавать под каждое разрешение картинку и правильно HTML отдавать по зависимости от устройства, эти SRC Set и это вот, остальное. Тебе нужно правильно думать о том, чтобы подгружался там JS твоего модального окна, окошечка на сайте, только в тот момент, когда ты на него кликнул. Тебе нужно, чтобы JS подгружался в тот момент, когда ты доскроллил до него. И вот таких вот много-много-много вещей... На самом деле, не обязательно.

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

Если тебя нет JS-кода, тебе не нужно его выгружать. Ну не всегда это возможно. Ну, скажем так. У меня есть живой проект, он есть. У нас есть, естественно, какой-то JS, какие-то поп-апчики и так далее. Но это какой-то минимальный код, написанный на чистом JS. Его там реально очень мало, мы просто грузим его всегда. Вопрос с картиночками мы решили тем, чтобы просто перешли на SVG. У нас всё векторное.

Все в одно файле и все? Ну то есть если у вас нет такого контента и так далее, то это прям специфика вашего проекта. Сейчас все-таки современный проект совсем без .js, оно представить совсем очень сложно. Давайте будем реалистами, большинству проектов все-таки .js нужен. Если мы говорим про SEO, ну лучше всего индексируется текст, очевидно, картинки не индексируются вообще.

картинки индексируются, смысле, картинки индексируются и они очень важны. Нет, друзья, давай, мне кажется, мы немножечко уходим от PHP в сторону, на самом деле. Вот эта вся история из СЕО, она интересная, можно понять отдельно собраться, тут есть, как бы, поделиться. Вот. К вопросу о PHP. Хотел еще вот попозвать немножечко фреймворки. Я сам пользовался, значит, симфонией, я пользовался Y, как он правильно? Y-I-I, Y-Y-Y-Y. Да, вот. Я пользовался этим самым и пользовался еще с Алексом, который кастлированный симфонией. Честно говоря, больше всего мне понравился.

Hexlet (01:07:49.036)
С Алекс, по-моему, умер. Ну, я так и подозревал, вместе с моим интересом к PHP. Вот. А что, сейчас вообще в моде, и если у вас соображение, какие из фреймворков вообще, скажем так, имеют больше будущего, другие, и интересно еще потом отдельно обсудить в сравнении с другими языками, потому что даже, собственно, фреймворки для обычных рестапишек, терроребов веб-сервисов не во всех языках так развиты, как в PHP, да? И если вообще что-то противопоставить там тому же самому...

или даже симфонию при всех её минусах очень мощный инструмент, что бы ни говорил. Да-да-да. Ну, смотри, сейчас по популярности самый топ – это Larval. По популярности, опять же, среди кого это вопрос. А инженеры по мощности, как предпочитает обычно симфония, это вот номер два. Третье место там уже снимает Yishka.

Но в разных странах, в разных нишах её теснят разные другие решения. Зент, который сейчас Ламиносом называться и так далее и так далее. Но фреймворков достаточно много. Есть маленькие. Это те, кому нравится Сайлекс. Сейчас очень понравится Slim, наверное. Slim офигенный, на самом деле. Если нужно что-нибудь опишку накидать, то Slim прикольный.

А симфони недостаточно минималистичные? Последние версии, кажется, они совсем минималистичные. Нет, я бы не сказал. Но симфони, при том, что он компонентный, что там можно кучу всего отрезать, ядро, сами его концепты, то, что контейнеры компилируются из PHP или из YAML-конфигов в PHP, накладывает свой след большой.

И из-за этого я бы не сказал, что можно его называть минималистичным, когда из него всё отрезано. Вот тот же, не знаю, slim в этом плане, он прям сильно проще. Ну, я в принципе с Сашей согласен, вся эта топ троится. Причём у нас, к примеру, когда мы чуть больше на среднем рынке работали, у нас был топ-1 Laravel, тоже внутри компании.

Hexlet (01:10:05.196)
А вот сейчас в последнее время, как бы, всё больше подгружаясь в Enterprise, всё больше заказов в Enterprise мы видим на симфоне. И в принципе мы видим культуру общую, когда чем больше нас разработчиков на симфоне. есть симфонию разработчика на Laravel гораздо проще перейти, чем Laravel разработчиков на симфоне. на мой взгляд, вот такая… Уральн-фона другой. Да. Практики другие. То есть поэтому, когда ты изучаешь симфонию… Да, он чуть сложнее, но…

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

потянуться с собой огромное количество своих зависимостей. Поэтому мы начали переориентироваться с Ларавелло на симфонию. Такая история. Здесь, опять же, от клиентов зависит. Где большой рынок, туда бизнес идет обычно.

Hexlet (01:11:18.348)
А если по сравнению с другими языками программируем... Ну опять же, я разработчик. Я хочу решать практически задачи. Мне не так сильно интересен сам язык, как инструменты, которым предоставляет. Мне не так интересно там дата саенс, но я слышал, что есть там фастап, есть там джанго, джанго все так хвалят. Сам сейчас скажу, не очень знаю почему, но допустим. Как... стоит ли мне вообще смотреть на PHP, если есть там тоже огромное количество решений готовых рынок и так далее. Вот в чем прям сила эти

Смотри, если ты идёшь как разработчик на рынок или если ты идёшь как разработчик пилить какие-то свои проекты. Это вообще разные вещи. То есть, ты идёшь на рынок, ты смотришь, популярен инструмент или нет. Если ты смотришь на Pitch Pitch'ный Larval Symphony и Yishku, то ну дофига работы. То есть, иди на рынок, не хочу, супер вообще офигенно. Если тебе веб нравится, то это вот прям топчик.

работы будет ещё десятилетиями, и точно дофигище. Если ты идёшь в МАЛ, то кроме Python ничего не будет. Да, всё так. Понятно, но я же могу веб пойти с Питоном. Ну, тебя вакансий мало.

У не так много вакансий на питоне будет именно вебе на питоне и джанка. То есть они там есть, но просто у тебя будет... В первых ты будешь с точки зрения питона конкурировать с огромным количеством людей. Сейчас ты будешь конкурировать с этими, кучей вайтишников из студентов, которые есть. С питоном проблема. Под веб его брать, потому что сейчас в вебе платят там один чего-то там, а в эмейл платят 100 чего-то там.

100 раз больше. И все, кто на питоне писал под веб, они просто сказали, да ну это все нафиг, пойду нейросети пилить. Это гораздо прибыльнее. Это аналитики данных, это все остальное. И причем именно в аналитике данных там нет такой пробки из джинов, которая сейчас есть сейчас. То есть именно иди в обработку данных на питоне, там гораздо проще, прибыльнее все остальное. А хочешь веб, это все-таки базово, иди в PHP, тебя нет пробки из джинов.

Hexlet (01:13:26.572)
потому что они настолько распяли, но тебя дофига работы в каждом городе твоей страны, есть какие-нибудь веб-студии, где на PHP тебя как джуна отлично возьмут и так далее.

Хорошо, давайте дальше вычеркивать. JavaScript для backend, как вам? Мне кажется, ты уже немного померла, нет? Нет, вообще нет. Я прямо сейчас новый продукт пишу на Node.js, наш внутренний. Давайте уточним, именно веб-сервисы, какие-то сайты, что-то похожее хоть на Django или на Symfony? что я помню, основатель Hex, Кирилл, очень много жаловался, что нет нормальных фреймборгов на Node.js, и есть даже у Hex Open Source? Не было.

Но несколько лет уже не актуально. Есть Нест, который прям офигенный, интерпризный, хороший фрейнвар в целом. У него есть проблемы, у меня есть личные нему какие-то претензии, то есть к работе его Диай, примеру, мне она не нравится, как работает. Но он один из лучших, такой. Его можно, как раз с Айлексом, со Слимом сравнивать на Пич Пихе. Это всё-таки не джанга, не Ишка, не Ларвел вообще нет.

Минималистично, да? Он не покрывает из коробки столько всего. Ну, например, чего не покрывает? Ну, не знаю, у ОРМки там в комплекте нет. Ну, у симфони тоже из комплекта этой Дортрину берёшь, а у него ты из комплекта берёшь либо Type O-RM, либо ещё... либо Prisma, либо сейчас есть очень офигенный Drizzle прям вообще в топчике. Да-да-да-да. Не, ну, я имею в виду, что, не знаю, посмотреть на тот же Джанго, то есть...

такие, он ставил фуллстек фреймворки, там было просто тулс напихан, швейцарский нож, он всё может делать. Ну тут тоже всё ты можешь делать, просто чуть более разразненная экосистема пакетов, на мой взгляд. Да, ну как бы идёшь и ищешь, какой уж пакет нормальный. Ну либо у сообщества спрашиваешь. Про экосистема пакетов. Как вообще ФПС писать этим делом? Человечество использует, и как это устроено? Последнее, что видел, этот композитор, он ставил, по-моему, чуть ли не из гитхаба.

Hexlet (01:15:36.716)
Композер офигенный. Композер это стандарт De facto и это, наверное, самый лучший пакетный менеджер, который использовал вообще за последнее время во всех языках, которые что-то делал. То есть это лучше, чем то, что есть в Go, это лучше, чем то, что есть в Nod. Ну, NPM нам нужно. Даже даже? Да, да, да.

Dependency разруливает и вот это всё, стабильно, и подсказывает, что не так, и с конфликта разруливает, он гораздо лучше. А он с GitHub ставит или есть какой-то менеджер, ну репетиторий пакетный или пьечный? Он ставит с GitHub, плюс ты можешь объявить свои репетитории. Не, он не ставит с GitHub. Ну есть вот этот… Такая возможность есть, насколько я помню. Возможность есть, да, но эта репетитория называется Packages, то есть это паблик, плюс ты можешь делать сколько угодно приват.

То есть это аналог NPM и PyPy, соответственно? А, ну и как бы GitLab поставил, там rep по дефолту есть. Ну понятно, да. Поддержка. Может туда пакет вливать. Понял. Ну окей. Про LRM-ки, соответственно, доктрина, так на мое всё ещё стандарт-дефакто, да, и есть уже что-то повеселее. Ну как бы, если мы говорим про LRWL, то у нас локвен там, конечно, котором многие его ругают. Ну, очень мало кто доктрину в LRWL тянет.

А так, в принципе, да, Doctrine? Doctrine, если прямо из совсем-совсем ORM, которые прям большие, тяжелые, и прям ORM, QRM, с крутым маппингом, да, Doctrine это сейчас единственное, осталось. Раньше еще Propel был, Propel помер, не смог выдержать конкуренции. Doctrine далеко не идеальный, вот как аналог Hibernate из Java, наверное, лучше ничего нет.

По Light-Ovi, вот и Lockwend в Ларавелле. Есть ещё Yishnaya штука. Мы её недавно отрезали, отдельно. Уже понатащили, кстати, в проду себе ребята и очень довольны. Ну, вот там с тестами Она прям УРМ-КЛУРМ-КО или просто там какой-то query-билдер? Там, смотри, в Production, в релиз вышел query-билдер. Ну, AR там с релизного тега пока нет.

Hexlet (01:17:54.988)
Самые отчаянные ребятки уже втащили себе, мы не рекомендуем, нафиг такие приключения. А что, будет Active Record, есть ближе к LOPLINT будет, да? Active Record, который в Ишке, никогда Classic Record'ом не был. Это такой датамаппер, на который сверху дефолту навешано, что он автоматически работает, и мы не показывали никому, что это датамаппер, потому что, ну, зачем?

Но ты про вторую говоришь, а про третью что-то изменилось или нет? Концептуально нет. То есть всё то же самое примерно? Ну единственное там маппинг стал больше похож на доктриновский, то есть там можно субобъекты маппить, дата-время там надо, и там PHP-шный маппиться, это вот всё, это прикольненько, да. А так концепт похож очень. Ну конечно же B3X.URM, куда без неё? У нас тоже спецфика есть.

Слушай, а Btricks ОРМ отдельно можно использовать? Нет, так же как и Lockwind, ты по сути не выпилишь его. Нет, и Lockwind можно. Есть какие-то товарищи, взяли и вот туда выдернули с корнями. Это неофициальный, типа, порт такой. Ну это... Да, то есть это такое же извращение, как если из Btricks мы вытащим это. Хотя из Btricks не получится вытащить, из Btricks даже не получится вытащить. Там слишком аналитно это все. Ну мы вот как-то из E вытащили Atricks Factor или...

Я думал, что это невозможно. Но один из контрибьюторов, который пришел к нам, это из Чили, Вилмер, раньше на Коболе писал, говорит, я вытащу. Мы говорим, да ну нафиг, ты что делаешь, это суицидный проект вообще, он сделал, вытащу. Мы такие, опа, нормально. Конкуренция всегда хорошая, поэтому выпускай лишний дополнительный пакет, я только за. Когда нас один игрок, это грустно, вон синфоне сколько там...

Докторин, сколько версии релизилось последнее? Много лет прям. Трёшка? Ой, очень много лет. Ну, у докторина есть достаточно много обвеса, сделанного энтузиастами. Я вот последний раз, его использовал, как раз какой-то использовал пакет GraphQL-Doktorin, который прям супер классно автоматически на основе тайпингов мне сделал GraphQL-напишку. Вот такого я не встречал нигде, кроме, собственно, JavaScript, потому что там это всё и думали в основном.

Hexlet (01:20:16.908)
Это прям очень классно. Насколько вообще граф Куэль в мире PHP актуален, скажем так? Не очень. Есть, но очень редко. Достаточно редко. И я скажу, что принципе хайп к графу Куэль прошёл. То есть, ну, поняли люди, что это всё-таки как гейтвей офигенная штука. Там, не знаю, несколько проектов свести, там ещё что-то такое. А как основная API, оно не годится. Слишком много проблем. Да, много неанцев.

Где-то в узких нишах еще норм, в каких-то конкретных проектах, где там очень сложные маппинги с фронта. Но опять же, нас фронт сильно поменялся, нас фронт теперь с серверные компоненты на фронт-энде. это... Ну, это мы обсудим в другой раз. И тут я уже могу накидывать, что это странный путь. С обеих компонентов в Рамскрипте. очень сильно подискутирую, я обожаю их вообще. Ну, то, что ты видимо очень любишь бэк-энд. Я обожаю и фронт-энд, и бэк-энд. Я фолстак.

Мне очень нравится, когда код работает не на моем железе, поэтому я, конечно же, всячески саботирую все эти попытки сервенного рендеринга без лишней нужды. Друзья, мне кажется, очень классно пообщались. Есть еще у кого-то что-то накинуть? Вообще про комьюнити. Называли, что в PHP плохое комьюнити, но это была лизическая ошибка. Но, блин, на самом деле у нас очень классная в России комьюнити по PHP. В каждых городах мы сейчас прям...

Куча движух, постоянные метапы каждый месяц. Если кто-то там не следит, заходите вообще, есть и узнавайте это. Если в вашем городе несколько раз в происходят часто какие-то метапы. Подписывайтесь к сайтах PHP Community или просто ищите телеграм-канал вашего города. У нас есть набор организаторов всех городов, кто там организовывает метапы. У много людей, мы там постоянно что-то делаем. Там Саша, даже в нашем чатике есть.

Движуха постоянно какая-то у нас есть. есть, ПХП в России, на мой взгляд, одной из самых сильных комьюнити. Тоже, по-моему, коллеги говорили, что исторически в России сильное ПХП, и у нас сильное комьюнити, где мы очень много общаемся, много всяких движух. Жалко, конечно, ПХП Russia у нас пока что на паузе в связи с всякими событиями. У нас есть подлодка, которая минимум два раза в год. У нас офигенная конференция, кстати, она будет через недельку.

Hexlet (01:22:41.516)
Можно это выпилить, если это считается рекламой. Вот. Короче, всем лав пхп, у нас офигенная комьюнити. Вступайте. Мы рады всем новым адептам. Тут еще добавить нужно, что комьюнити не только в России у PHP хорошая, вот. А по всему миру, в общем-то, куча вот этих вот метапов есть.

они очень-очень душевные. Я бы сказал, что PHP – самая нетоксичная комьюнити, наверное, из всех языков. есть нет вот этого там налёта элитарности, ну, за исключением таких некоторых, таких маленьких секточек островков, да? Чатта симфонии, нас в России. Ну, это исторически, да, так сложилось. Но в основном во всём мире PHP-комьюнити – это такие прям очень-очень дружелюбные ребята.

Здесь нужно вставить фоточку с дру полкона, вообще просто огромные, там сколько там, десятки тысяч человек просто на одной фотографии, они каждый год собираются, и огромная там комьюнити у них действительно прям очень сильно развитая, особенно в Европе. Ну что, что это сделает Woot, значит что PHP всё-таки неподопляемый язык. Здесь какая-то у особая магия, которая позволяет ему, не справляя на всю критику и хейт, переживать вообще все перетурбации рынка IT и оставаться на нём весьма ключевым, может быть даже местами нишевым, но всё ещё важным игроком.

Да, я думаю так будет ещё долго. Друзья, приходите учиться в Хекслет, учите PHP, вливайтесь в этот прекрасный комьюнити, ставьте лайки, подписывайтесь на наш канал, оставляйте комментарии. Всем счастливо. Всем счастливо, пока. Пока-пока. Пока-пока.