Что такое PHP и с чем его едят?

PHP (Hypertext Preprocessor) - один из старейших языков программирования для веб-разработки. Его основателем считается датчанин Расмус Лердорф. Именно он в 1994 году создал “персональную домашнюю страницу”, которая в конечном итоге и легла в основу PHP.

После этого за разработку PHP взялись главные светила программирования того времени и на данный момент программой руководят Зеев Сураски и Энди Гутманс (директора компании Zend Technologies). В 1997 году они придумали третью версию программы и управляют ей по сей день постоянно совершенствуя.

Но что такое PHP если говорить простым языком?

Это программа, которая позволяет конструировать веб-приложения. И она выигрышно отличается от своих конкурентов. Например, Java.

Поясняем: главная особенность PHP заключается в интерпретируемости. В отличие от Java, которая компилируется, а затем запускается в работу, PHP создается во время обращения к нему. Как происходит этот процесс? Очень просто: человек открывает сайт, в этот момент запрос отправляется на сервер. В это же время компилируется код. То есть всё это происходит в реальном времени.

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

Вторым большим отличием программы является то, что PHP обладает динамической типизацией.

Языки программирования бывают двух видов:
1. Статическая типизация
2. Динамическая типизация

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

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

PHP прожила за свои годы много изменений и трансформаций.  Версии с первой по третью были очень сырыми. Их хватало лишь на создание самых простых и нетребовательных сайтов.  Дальнейшие версии программы оттачивались и налаживались. Убирались различные несовершенства.
Таким образом состоялись релизы версий 5.4, 5.5 и 5.6. Выпуск 6 версии разработчики пропустили выпустив сразу же версию 7.0

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

И вот, кажется решение найдено! Свет увидела версия 8.0! Что же в ней принципиально нового? Давайте разбираться…
В первую очередь стоит сказать, что новая версия оказалась очень удачной!


Несколько слов о нововведениях:

1. Включение JIT-компилятора.
Максимальные скорости были взяты ещё в 7 версии, поэтому в дальнейшем без ускорения, без JIT-компилятора не обойтись.

JIT поможет дополнительно поднять производительность за счёт преобразования байткода в специфичный для текущей аппаратной платформы машинный код, который может напрямую исполняться процессором, минуя интерпретатор байткода в Zend VM.

Польза от использования JIT особенно очевидна при выполнении конструкций, для которых основное значение имеет производительность. В некоторых синтетических тестах применение JIT привело к повышению производительности в 2-3 раза. В отдельных вычислительных приложениях наблюдается рост производительности в 1.5–2 раза.

2. В языке появилась поддержка выражений match. Они имеют ряд преимуществ: начиная от возвращения значений и заканчивая использованием строгого сравнения типов.

3. Новый тип возвращаемых значений static, появление выражения throw для обработки исключений, а также ужесточение проверки арифметических и битовых операций.

4. Появление аннотаций. Больше не нужно писать PHP-код для фреймворка Symphony на языке комментариев. В восьмой версии появилась возможность при помощи # создавать описания метаданных, проводить рефакторинг и использовать функцию Find usages.

И ещё много-много различных усовершенствований. К сожалению, размеры данной статьи не позволят рассказать о них всех, но смеем Вас заверить, что восьмая версия стоит Вашего внимания!