PHP 8 продолжает развитие опенсорсного языка программирования

Автор оригинала: Michael Kerner
  • Перевод

Привет, Хабр! В преддверии старта курса «PHP-разработчик» приглашаем на открытый онлайн-урок по теме «Что нового?». В рамках урока посмотрим на нововведения в языке и применим их на практике, а также посмотрим, так ли хорош JIT на самом деле.

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


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

На заре эпохи интернета опенсорсный язык программирования PHP был в самом центре всей веб-разработки. Его новый релиз 8.0 стремиться сделать его более актуальным для нового поколения разработчиков.

Увидевший свет 25 лет назад, PHP представляет букву «P» в стеке LAMP (Linux, Apache, MySQL, PHP), который определил первое поколение веб-разработки. В последние годы другие языки, включая Python и JavaScript, начали превосходить PHP в популярности, в то время как новые языки, такие как Go и Rust, также очень быстро развиваются.

Однако PHP не сидит сложа руки, пока другие языки развиваются. PHP 8.0, который стал широко доступен в День благодарения (26 ноября), объединяет в себя ряд новых возможностей, в том числе механизм JIT-компиляции, который повышает производительность по сравнению с предыдущими версиями PHP.

Другие улучшения включают оптимизации языка, которые несомненно принесут пользу разработчикам, включая именованные аргументы и атрибуты.

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

Любовь и ненависть к PHP

Согласно данным Global Development Survey 2020 от Evans Data (первой версии) 79% пользователей скриптовых языков используют PHP для какой-либо части своей работы, подразумевающей использование скриптового языка.

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

Востребованность PHP в различных отраслевых обзорах оценивается по-разному. Отчет RedMonk Programming Language Rankings за июнь 2020 года расположил PHP на четвертой позиции, после JavaScript, Python и Java. Индекс популярности языков программирования от TIOBE не столь щедр к PHP - он поставил его восьмым в своем листинге за ноябрь 2020 года.

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

PHP был создан в 1995 году разработчиком Расмусом Лердорфом, и с тех пор проект получил колоссальную поддержку от большого сообщества контрибьюторов. Одним из ведущих контрибьюторов и коммерческих сторонников PHP на протяжении последних двух десятилетий является компания Zend, занимающаяся инструментальными средствами разработки, которая теперь является частью Perforce Software.

«Люди поздравляют меня с релизом PHP 8. Эти поздравления совершенно не по адресу, - писал Лердорф в твиттере на прошлой неделе. «@nikita_ppv [Никита Попов из Jetbrains] и @dstogov [Дмитрий Стогов из Zend] уже много лет являются движущими силами развития PHP. Бесчисленное множество других разработчиков также регулярно вносят свою долю. PHP 8 значительно лучше, потому что он содержит намного меньше моего кода."

Какие фичи разработчики увидят в PHP 8

PHP был создан как веб-ориентированный язык, сообщил ITPro Today Мэтью Вейер О'Финни, продукт-менеджер Zend. Поскольку данные отправляются на веб-сайты через формы, все они поступают в виде строк, что означает, что PHP клонится в сторону так называемой «динамической типизации» и «приведению типов», когда код может делать предположения о том, что было отправлено. Хотя динамическая типизация может быть весьма полезной, О'Финни говорит, что она также приводит к ошибкам и потенциальным проблемам безопасности.

Когда в 2015 году был выпущен PHP 7.0, в язык был добавлен ряд дополнительных функций, обеспечивающих строгую типизацию; в PHP 8.0 эти возможности расширяются. PHP 8 предоставляет так называемые "типы объединения" - способ указать, что аргумент или возвращаемое значение может иметь одним из набора типов, говорит О'Финни.

«Что касается улучшения восприятия со стороны разработчиков, язык добавляет несколько функций, которые упростят общие паттерны», - добавил он.

Один из таких распространенных паттернов связан с практикой использования конструктора класса для присвоения свойств класса из предоставленных ему аргументов. В предыдущих релизах PHP, говорит О'Финни, разработчикам приходилось объявлять свойства, затем объявлять аргументы в конструкторе класса для каждого из них, а затем выполнять фактическое присвоение аргументов свойствам. Новая фича, называемая «constructor property promotion», выполняет все это за одну операцию, определяя свойства из аргументов с помощью специального синтаксиса.

PHP 8.0 также получил систему атрибутов, над созданием которой, по словам О'Финни, работали очень долгое время. По его словам, во многих языках есть системы «атрибутов» или «аннотаций», которые позволяют разработчикам определять метаданные об артефактах кода. Они используются такими вещами, как объектно-реляционные проекторы, чтобы разрешить сопоставление свойств класса со столбцами в базе данных или сопоставить путь веб-сервера к коду, который будет его обрабатывать. В PHP уже есть библиотеки для выполнения таких задач, но в PHP 8 теперь добавлена ​​система атрибутов, которая «запекает» ее непосредственно в самом языке.

PHP 8 приходит как раз вовремя (Just in Time)

Новый JIT-компилятор (Just in Time) в PHP 8.0 вполне может помочь расширить распространение PHP.

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

Он отметил, что PHP имеет тенденцию быть ограниченным по вводу/выводу (I/O bound), где на производительность в первую очередь влияют такие вещи, как запросы к базе данных, кэширование значений, отправка запросов API или доступ к файловой системе. Однако JIT откроет дверь для использования PHP в приложениях, требующих более интенсивных вычислений.

«В прошлом месяце PHP отпраздновал свое 25-летие, было выпущено восемь крупных релизов, и он по-прежнему отвечает за львиную долю того, что размещается в интернете», - говорит О'Финни. "Это стабильный, зрелый язык, который постоянно развивается, получая такие фичи, как JIT, которые позволят ему проникнуть в экосистемы, в которых ранее доминировали другие языки, такие как ML [машинное обучение], и из-за простоты, с которой его можно развернуть и низкого порога вхождения для разработчиков, он никуда не денется. Во всяком случае, будьте уверены, что PHP продолжит расти и развиваться».


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

Зарегистрироваться на онлайн-урок по теме «Что нового?».


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

OTUS
Цифровые навыки от ведущих экспертов

Похожие публикации

Комментарии 3

    0

    del

      0
      Может быть к php20 они догадаются, что многопоточность необходима.
        0

        Кому и зачем?

      Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

      Самое читаемое