Чому мові PHP роками пророкують «смерть», але вона досі актуальна?
Колонка Костянтина Сороки, Senior Software Developer в DataArt
Костянтин Сорока, Senior Software Developer у компанії DataArt та лектор курсу «PHP-developer з нуля», зацікавився цією мовою, ще коли навчався у школі, і тепер вже понад 10 років використовує її для роботи.
У своїй колонці для robot_dreams розробник розказує, чому PHP часто критикують, які вона має переваги та чому є сенс вивчати її новачку.
Костянтин Сорока, Senior Software Developer у компанії DataArt та лектор курсу «PHP-developer з нуля»
Чому я вирішив писати на PHP і як будував свою кар’єру
Мова PHP є однією з найпоширеніших мов у сфері веброзробок. З цією мовою програмування я стикнувся ще у школі, десь на початку 2000-х років. З того часу я вже мав уявлення, що це таке і для чого цю мову використовують.
Досвіду програмування цією мовою я маю понад 10 років. З них комерційний досвід (робота на компанію) — приблизно 8. До того в мене були фриланс-проєкти, завдяки яким я набув досвіду спілкування із замовниками та познайомився з PHP-фреймворками. Першою компанією, де я почав працювати, була вебстудія Sponge D&D. У ній я почав свій шлях відразу як Fullstack-розробник, завдяки чому я більш щільно познайомився не лише з комерційною розробкою на PHP, а ще й із JavaScript, який використовують у клієнтській частині застосунків.
До того, як я став фултайм-розробником, працював у ІТ-компанії на позиції, пов’язаній з менеджментом. Остання моя посада — замкерівника фінансового відділу компанії. Я бачив з іншого боку, як ведуть розробку, які запити потрібно ставити розробнику, як аналізувати продукт, щоб можна було його покращити.
Упереджене ставлення до PHP
З упередженим ставленням до мови PHP я стикався найчастіше у постах на форумі. Щось на кшталт: PHP — це мова, яка вже померла чи помирає. В реальному житті подібне можна почути нечасто.
Мова програмування — це лише інструмент. Наскільки вона гарна чи погана, повністю залежить від розробника, який її використовує.
Ця думка, що PHP — погана мова, мені здається, виникла з тих часів, коли вона тільки з’явилась у середині 90-х. Тоді ця мова була сумішшю PHP-коду і HTML-коду в одному файлі. Цей код було дуже важко читати, до того ж не було ніяких стилів кодування, якихось підходів чи стандартів. Якщо порівнювати Java тих років і PHP, то відмінність буде помітна. Здавалося, що PHP — це мова, яка написана на коліні, й вона не зможе довго прожити. З того часу багато що змінилось. Окрім, напевно, єдиного — традиції хейтити ту чи іншу мову.
Зараз PHP зайняла свою нішу як мова для вебпрограмування. Нею працюють близько 77 % усіх сайтів у вебпросторі. Мені здається, саме це є вагомим показником того, що з мовою все гаразд.
Звичайно, PHP, як і будь-яка інша мова, може «померти». Однак, на мою думку, PHP буде актуальною мовою ще принаймні років десять. Взагалі мені важко зараз сказати, з такою статистикою, за яких умов інша мова може замінити PHP у цій ніші. Для цього всі сайти, що використовують PHP як мову для серверної частини, мають бути переписаними або забутими у вебпросторі.
Основні переваги та недоліки PHP
Основна перевага — це те, що ця мова програмування є вузькоспеціалізованою. Вона була створена як серверна частина, з якою взаємодіє користувач. І з плином часу ця сфера залишається за PHP. Тобто розробник із самого початку може сфокусуватися на одній сфері. Якщо порівняти з іншими мовами, наприклад, з Python, то на початку розробнику зовсім незрозуміло, в якому векторі треба рухатися. Зробити цей вибір буває досить складно, і це одна з причин збільшення порогу входу.
Ще однією перевагою є те, що ком’юніті PHP є дуже розвиненим. Людина, яка починає програмувати цією мовою, використовує той чи інший інструмент — якийсь фреймворк чи готове рішення. Тобто спеціаліст із легкістю може знайти відповідь на своє запитання. Навряд чи розробник може стикнутися з такою ситуацією, коли проблему хтось ще не вирішив.
Ця мова, оскільки вона існує дуже давно й використовується у вебі, підтримується майже всіма актуальними серверами. Це дає універсальність у виборі середовища. Тобто ваш застосунок буде працювати. Це вагомий «плюс» на користь PHP.
Щодо недоліків:
- Є специфічні завдання, для яких PHP не підходить. Для їхнього розв’язання краще використовувати іншу мову. Це стосується проєктів нейромережі, штучного інтелекту.
- Також із власного досвіду можу сказати, що з PHP легко «вкотитись» у професію. Але через це й досить часто можна зустріти непрофесійно написаний код з недоліками сек’юрності або читабельності.
- Я стикався з проєктами, які пишуть близько десяти років. І код, написаний десять років тому, може мати досить дивний вигляд. Наприклад, він може бути в один довгий рядок або в ньому можуть бути якісь проблеми із захистом конекту.
Яка мова — основний конкурент PHP?
У вебі не для супернавантажених застосунків можна виділити два основних конкуренти PHP — це Node.js (грубо кажучи, JavaScript, який може працювати на сервері) і Python, який можна використовувати для веброзробки:
- Node.js має привабливий вигляд для розробників, бо ця мова використовує один синтаксис. Таким чином, розробник пише весь код — що клієнтський, що серверний, використовуючи одну мову. Йому не потрібно знати жодних інших інструментів.
- Щодо мови Python, яку використовують для вебу, — зараз я в ній бачу багато недоліків у сфері веброзробки. Найбільш розповсюджені фреймворки досить замкнені, а їхнє ком’юніті мені здалося не таким розвиненим, як у PHP. Ні в якому разі я не хочу сказати, що Python — це поганий інструмент, але я не бачу сенсу використовувати його для більшості вебзастосунків. Це як користуватися вдома на кухні мультитулом: можна, але не завжди доцільно.
На поточному проєкті я особисто використовую різні мови програмування — і PHP, і JavaScript, і Python. Є різні мікросервіси, написані тією чи іншою мовою програмування, залежно від завдань. Адже, нагадаю, мова програмування — це лише інструмент для реалізації того чи іншого задуму.
Якщо людина хоче розвиватися на ринку розробки, то їй треба розуміти переваги й недоліки кожної мови програмування, щоб найкраще використовувати ці мови під конкретні завдання.
Кількість вакансій у сфері PHP-програмування
За останні п’ять років, мені здається, кількість вакансій PHP-розробників збільшилася. Через війну є просідання, але це у всіх сферах, бо ринок перебуває у стресі.
Але принаймні для розробників-початківців я не можу сказати, що зараз ситуація більш проблемна, ніж рік чи два тому.
Як змінювалася кількість вакансій на PHP з січня 2022 до серпня 2023 порівняно з іншими мовами // Дані DOU
Які додаткові технології варто вивчати PHP-розробнику, щоб бути конкурентоспроможним
Ще спочатку мова PHP була щільно пов’язана із HTML і JavaScript, тому що PHP — суто серверна технологія, а вказані інструменти відповідають за інтерфейс сайту, з яким взаємодіє користувач. Тож розробник на PHP як десять років тому, як п’ять, так і зараз повинен мати принаймні базові знання HTML і JavaScript. Це щодо технологій.
Ще дуже важливо знати англійську мову. Для початківців гарний рівень знання англійської навіть більш важливий, ніж для розробників вищого рівня — Senior. Бо Senior уже вміє програмувати, а початківцю ще потрібно вчитися. Дуже багато корисних ресурсів для навчання є в англомовному просторі, до того ж високий рівень знання англійської мови — вагома перевага під час влаштування на роботу.