PHP в 2024 году: насколько на самом деле актуален этот язык

У языка PHP сейчас несколько сомнительная репутация — кто-то считает его давно умершим, кто-то бесполезным, кто-то неактуальным. Что из этого правда, а что слухи, так с ходу не разобраться. Поэтому мы пообщались с Русланом, экспертом на курсе «PHP-разработчик».

PHP в 2024 году: насколько на самом деле актуален этот язык

Меня зовут Руслан, я техлид в компании Loymax — руковожу отделом целевых коммуникаций. Последние 7 лет я пишу в основном на PHP, поэтому стал экспертом на курсе «PHP-разработчик».

В статье я хочу ответить на следующие вопросы:

  • зачем нужен PHP, для каких задач он подходит и не подходит;
  • насколько он популярен и есть ли смысл его учить;
  • в чём его преимущества и недостатки;
  • чего ждут от джунов на собеседованиях на PHP-разработчика:
  • реально ли найти работу без опыта.
Руслан Полин
техлид в компании Loymax, эксперт на курсе «PHP-разработчик»

PHP — язык интернета

Практически все интернет-магазины — это PHP. Блоги, какие-то мелкие сайты и весь WordPress (популярная платформа для создания сайтов) — тоже. 90% всего веба написано с помощью этого языка. PHP используют и самые топовые компании: Avito, VK, «Деливери» и даже некая зарубежная соцсеть, на которую подозрительно похож VK.

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

Да, он может проигрывать в рейтингах каким-нибудь C++, Java или Python, но в интернет-проектах всё еще лидирует. И когда-то уже написанные проекты нужно поддерживать и развивать, поэтому спрос на разработчиков не падает.

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

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

Применение PHP

Идеально

  • Корпоративные порталы
  • Интернет-магазины
  • Социальные сети
  • Блоги

Можно, но не нужно

  • Банковские приложения
  • Машинное обучение
  • Игры

Точно не стоит

  • Настольные приложения
  • Фронтенд
  • Мобильные приложения

PHP — язык общего назначения, заточенный для разработки веб-приложений. Он прост в освоении относительно других языков и хорошо подходит для разработки легковесных систем, не нацеленных на большие нагрузки. Хотя и приложения для высоконагруженных, Highload-систем, на нём тоже есть.

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

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

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

Может показаться, что писать на PHP скучно — ведь это только бэкенд. Но на самом деле за этим бэкендом кроется множество разных задач: вычисления, обработка больших данных, аналитика, внешние интеграции, повышение производительности и многое другое.

Преимущества и недостатки PHP

Преимущества

  • Большое комьюнити

  • Множество гайдов и курсов

  • Довольно легко найти работу

  • Много готовых пакетов

  • Быстрая разработка

Недостатки

  • Медленный в сравнении с некоторыми языками, например, Go или С++

  • Однопоточный

  • Не поддерживает асинхронные операции

В отличие от тех же C++ и Java, PHP довольно прост в изучении. С одной стороны, это плюс — можно быстро стартовать. С другой стороны, минус — если PHP-программист учится плохо, потом он пишет много некачественного кода, который сложно разбирать и поддерживать. Но это характерно для многих языков, так что к такому разработчики со временем приспосабливаются.

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

Главный недостаток PHP в том, что он несколько медленный. Одна и та же программа на PHP и, например, на С++ на PHP будет работать медленнее — придется приложить дополнительные усилия для её оптимизации. В бэкенде это обычно некритично, но с высоконагруженными приложениями может быть непросто — придётся отдельно осваивать оптимизацию кода.

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

PHP постоянно обновляется — нельзя сказать, что язык устаревает. За последние несколько лет в нём появились трейты, файберы, JIT-компилятор, перечисления, расширилась типизация. Всё это делает язык ещё более удобным в использовании и более подходящим для решения современных задач.

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

Собеседования: чего ожидают от джунов

Джунами в IT-сфере называют начинающих разработчиков с минимальным опытом.

Идеальный PHP-джун знает:

Основы веба: устройство HTTP-запросов, как в целом работает интернет.

Базы данных MySQL и MariaDB. Ещё лучше, если он освоил какую-нибудь специфическую БД, например, ClickHouse.

JavaScript, CSS и HTML. Пригодятся, чтобы потом вырасти в fullstack-разработчика на PHP. С этими знаниями получится самостоятельно с нуля разрабатывать функциональные продукты.

Хотя бы один популярный фреймворк: Laravel, Symfony, Yii2.

Ещё соискатели обращают внимание на:

  • Ссылку на GitHub, если она есть. Даже если там только какие-то тестовые или учебные задания, всегда интересно, как человек пишет и мыслит. Большинству компаний важно понимать, какой у соискателя образ мышления — не столько его обширный опыт.
  • Пет-проекты, сделанные для себя. Они показывают, что человек умеет ставить себе задачи и их же решать. На собеседовании мы можем обсудить, какие задачи он ставил, как их декомпозировал и так далее — это тоже поможет больше понять образ мышления.
  • Опыт важен, но не обязателен. По моему мнению, люди, которые обладают большой теоретической базой, могут не уметь применять её в работе. Не все компании могут себе позволить дополнительно обучать нового сотрудника и вкладывать в него много времени. Если человек пришёл без опыта, мы спрашиваем по базе: например, про типы и структуры данных, как он с ними работал. Если же у него уже есть мало-мальский опыт разработки, то мы будем фокусироваться на задачах, которые он решал. Устроиться совсем без опыта реально, но шансы в разы возрастают, если вам есть что показать. Это необязательно должна быть реальная задача, подойдут учебные или пет-проекты.

Полезные ссылки: что ещё почитать про PHP

88
Начать дискуссию