Привет, Хабр. Будущих студентов курса "PHP-разработчик" и всех интересующихся приглашаем принять участие в открытом вебинаре на тему "PHP 8 — Что нового?".

А сейчас делимся традиционным переводом интересного материала.


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

Команда, создавшая скриптовый язык PHP, анонсировала версию PHP 8.0 — крупный релиз, который может потребовать от разработчиков проверку кода на предмет критических изменений.

Эта версия 25-летнего PHP представляет улучшенную систему типов, новый JIT-компилятор в движке PHP и некоторые функции, заимствованные из Python и JavaScript, такие как именованные аргументы и null safe операторы.

PHP как язык не обрел всеобщей любви, но он широко используется веб-разработчиками. Разработчики оценивают PHP как шестой «самый страшный» язык в опросе разработчиков Stack Overflow 2020 года, но он также оказался восьмым по популярности языком.

Аналитик-разработчик RedMonk в настоящее время позиционирует PHP как четвертый по популярности язык, уступающий только Java, Python и JavaScript. Tiobe Software ставит PHP на восьмое место. И, по данным поисковой системы Indeed, количество объявлений о вакансиях PHP-разработчиков начального уровня за последний год увеличилось более чем на 800%.

PHP поддерживается основной группой разработчиков PHP и Zend, американской консалтинговой компанией по разработке PHP, основанной Энди Гутмансом, генеральным менеджером и вице-президентом по разработке баз данных в Google. Гутманс сказал, что он "в восторге" от JIT-компилятора.

JIT-компилятор предназначен для улучшения производительности веб-приложений. Однако Брент Руз, бельгийский разработчик stitcher.io, сказал, что у него есть нарекания, когда дело касается запросов.

Как у интерпретируемого языка, такого как JavaScript и Python, код PHP транслируется во время выполнения. Это не компилируемый язык, такой как C, Java или Rust, и его нужно транслировать, чтобы ЦП понимал код PHP.

«JIT-компилятор может значительно улучшить производительность вашей программы, но сделать это правильно сложно», — отметил Руз.

Плюсы JIT-компилятора заключаются в том, что он может сделать PHP лучшим языком для использования вне сети, но может затруднить отладку кода в компиляторе. Руз отметил, что в случае ошибки пользователи PHP будут зависеть от мейнтейнеров JIT-компилятора, что может означать более медленные исправления по части безопасности и багов.

«Поскольку сегодня лишь несколько человек могут поддерживать кодовую базу [PHP], вопрос о том, возможно ли поддерживать JIT-компилятор как подобает, кажется оправданным. Конечно, люди могут разобраться в работе компилятора. Но, как ни крути, это сложный материал», — сказал Руз.

Он сомневается, следует ли включать компилятор в PHP из-за затрат на обслуживание. Он также сказал, что пользователи PHP должны «знать, что некоторые исправления ошибок или обновления версий могут занять больше времени, чем то, что мы привыкли ожидать на сегодняшний день».

Кроме того, выпуск PHP 8 в качестве мажорного релиза может означать, что старый код PHP может стать нерабочим после обновления. Однако Руз отметил, что большинство критических изменений объявлены устаревшими до версий 7.x.

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

Но пользователи PHP всегда могут заплатить консалтинговой фирме, такой как Zend, за долгосрочную поддержку, и они получат патчи после 30 ноября.

«Что до пользователей операционных систем с предложениями долгосрочной поддержки, то их бинарники PHP зачастую продолжают получать патчи от поставщика ОС, даже когда заканчивается период поддержки сообщества", — сказал Мэтью Вейер О'Финни, инженер Zend.

«В случае с Ubuntu 18.04 и RHEL/CentOS 8, каждая из которых поставляется с PHP 7.2, это означает, что вы можете продолжать получать патчи. Однако если операционная система, в которой вы работаете, не находится под политикой LTS, тогда ваша версия со временем станет уязвимым для новых эксплойтов".

Марк Стори, главный разработчик Sentry, который поддерживает проекты PHP CakePHP и XHGui, сказал, что именованные параметры и типы объединения PHP 8 обеспечивают улучшения эргономичности и корректности.

Именованные параметры позволяют вызывать методы с параметрами на основе их имени, а не только их порядка, объяснил Стори.

«Именованные параметры помогают упростить использование методов вызова, которые имеют множество необязательных параметров, поскольку вы можете указать только те параметры, которые используете по имени», — сказал он ZDNet.

«Это также поможет улучшить читаемость кода в будущем, так как запомнить, какой из параметров метода шестой труднее, чем понять, что может делать параметр «expires»».

Между тем, типы объединений расширяют систему типов PHP.


Узнать подробнее о курсе "PHP-разработчик".

Зарегистрироваться на открытый вебинар на тему "PHP 8 — Что нового?".

Прямо сейчас в OTUS действуют максимальные новогодние скидки на все курсы. Ознакомиться с полным списком курсов вы можете по ссылке ниже. Также у всех желающих есть уникальная возможность отправить адресату подарочный сертификат на обучение в OTUS.

Кстати, о "красивой упаковке" онлайн-сертификатов мы рассказываем в этой статье.

ЗАБРАТЬ СКИДКУ