Что изменилось
Я начинал писать на PHP 4. Сейчас 8.3, и это уже совсем другой язык: типы, match-выражения, enum'ы, readonly properties, named arguments, attributes. По выразительности он догнал Python и местами обогнал. По производительности — JIT в 8.x делает его быстрее чем многие современные альтернативы.
Что осталось хорошего
PHP — request-scoped по умолчанию. Один запрос — один процесс — одна изолированная среда. Не нужно беспокоиться о shared state между запросами, memory leak'ах, deadlock'ах. Это огромное упрощение для CRUD-приложений, которые составляют 90% веба.
Развёртывание тривиальное. Скопировал .php-файлы в директорию — приложение обновилось. Никакой компиляции, никакого process manager'а сверху, никаких графов зависимостей. Можно править production-файл (так делать не надо, но технически — можно), и изменения вступают в силу со следующего запроса.
Что в PHP до сих пор плохо
Стандартная библиотека неровная — некоторые функции из 90-х живут рядом с современным OOP. Async/await в PHP — это либо Swoole, либо ReactPHP, либо новые fibers, и ни одно решение не доминирует. Концепция «однопроцессного request» плохо ложится на WebSocket и long polling.
Почему я не ухожу
Половина моего кода — это работа с базой, рендеринг шаблонов, обработка форм, редиректы. PHP это делает идеально и без церемоний. Можно было бы переписать на Node или Python — но какую проблему я этим решу? Только добавлю себе сложности и инструментов.
Я выбираю инструменты по задаче, а не по моде. И для веб-приложений малого и среднего бизнеса PHP остаётся лучшим выбором. Возможно навсегда. Возможно — пока не появится что-то заметно лучшее. Пока — не появилось.