Чому PHP Не Вмирає (і Що Це Розкриває Про Справжню Мережу)

Опубліковано: від John Robison
Чому PHP Не Вмирає (і Що Це Розкриває Про Справжню Мережу) thumbnail

Шукай “PHP is dead” на Reddit, і ти знайдеш сотні тем, де його називають застарілим, реліктом епохи Web 2.0.

WordPress, побудований на PHP, живить 43% всього інтернету. Wikipedia обробляє 24 мільярди переглядів сторінок щомісяця на PHP бекендах. Три з кожних чотирьох вебсайтів, які ви відвідуєте, обробляють ваш запит мовою, яку інтернет називає “мертвою”.

Але що тримає PHP живим, коли Node, Python, Go і Rust обіцяли його замінити? І що його виживання розкриває про те, як насправді працює веб?

Ваш Вебсайт. Створений Для Вас.
100% Безкоштовно

Без навичок дизайну. Без конструкторів. Без клопоту. Лише результати.

Почати
DreamHost Liftoff thumbnail

Коротка історія “Особистих інструментів для домашньої сторінки”

PHP почалось випадково. У 1994 році Расмус Лердорф написав набір Common Gateway Interface (CGI) бінарних файлів на мові C для відстеження того, хто переглядав його онлайн-резюме.

Він назвав це “Персональні інструменти для домашньої сторінки”, скорочено PHP Toolset.

Lerdorf не розробляв його з великою філософією, як у Python щодо читабельності або у Java щодо портативності. Він створив молоток для конкретного цвяха: розміщення динамічного контенту на статичних веб-сторінках.

До 1997 року він еволюціонував у PHP 3, і абревіатура змінилася на “PHP: Hypertext Preprocessor”. Найкраща частина? PHP просто працював. Ти завантажував файл, і сервер його обробляв. Ця прагматична ДНК так і не покинула мову.

Від об’єктно-орієнтованої революції PHP 5 до стрибків продуктивності у PHP 7 та 8, мова залишалася зосередженою на вебі. Вона уникнула перетворення на системну мову чи інструмент для розробки мобільних додатків. Вона залишилася в своїй сфері, і зрештою вистелила цю доріжку золотом.

Отримуйте вміст безпосередньо у свою скриньку

Підпишіться зараз, щоб отримувати всі останні оновлення безпосередньо у свою скриньку.

Який Вплив Насправді Має PHP?

Згідно з W3Techs, PHP використовується на 72.6% усіх сайтів, для яких ми маємо дані про мову програмування на сервері. Три з кожних чотирьох сайтів, які ти відвідуєш, імовірно обробляють твій запит за допомогою PHP.

Кругова діаграма, що показує використання мов програмування на сервері, де PHP лідирує з 72.6%, за ним слідують Ruby, JavaScript, Java, Scala та інші.

Велика частина походить від WordPress, який становить 43% вебу. Насправді, більшість вебсайтів на нашому Shared Hosting використовують PHP.

Але це не лише блоги. PHP запускає Вікіпедію та безліч електронних торгових платформ, які щорічно обробляють транзакції на мільярди.

Коли ти дивишся на “мертву” мову, ти бачиш двигун вебу. Більшості бізнесів не потрібні архітектури мікросервісів. Їм потрібно вивести текст на екран, захопити форму ліда та обробити кредитну картку.

PHP робить це вбудовано.

Чому Люди Часто Оголошують PHP “Мертвим”?

Незважаючи на домінування на ринку, наратив “PHP мертвий” продовжує існувати.

Чому? Тому що у технічному світі плутають “нудне” з “мертвим”.

Ми залежні від новизни. Новий Framework запускається на Hacker News, і розробники поспішають переписувати свої стеки. Цей погляд ігнорує те, що насправді означає надійна інфраструктура.

Сантехніка у твоєму будинку не вражає. Вона не змінювалася протягом п’ятдесяти років. Але ти не вириваєш свої труби кожного разу, коли винаходять новий сплав. Ти покладаєшся на труби, тому що вони працюють, і тому що сантехніки точно знають, як їх виправити.

Проте кожні кілька років з’являється новий претендент, який намагається змістити PHP з п’єдесталу. Ruby on Rails обіцяв щастя розробників. Node.js обіцяв одну мову для frontend і backend. Go обіцяв чисту швидкість.

Веб-комікс, який ілюструє повторювані твердження про заміну PHP новішими технологіями протягом років, кульмінуючи ювілеєм PHP у 2025 році, 30-річчям.

Кожного разу технічна преса заявляла, що ера PHP закінчилася. І кожного разу числа використання відмовлялися падати.

Чому ми не побачили іншої мови веб-програмування, як PHP, за останні 30+ років?

За понад три десятиліття перевинаходження баз даних, фронтендів та серверів, ніхто не зміг успішно відтворити модель PHP. Ми бачили кращі мови та швидші середовища виконання, але ми не бачили іншого інструменту, який працював би як PHP.

Діаграма, що порівнює життєві цикли Node.js та PHP, показуючи потік запитів Node start-run-die та постійну пам'ять додатку PHP на запит

1. Він Вбудовує Логіку Прямо У Ваш HTML

PHP було розроблено для безпосереднього вбудовування в HTML. Майже у всіх інших стеках “програма” та “вивід” строго розділені.

Наприклад, використовуючи Python (Django) або Ruby (Rails), ти пишеш програму, яка обробляє дані, а потім передаєш ці дані в шаблонізатор для генерації HTML.

PHP дозволяє відкрити файл, написати стандартний HTML, а потім відкрити тег <?php прямо всередині <div>, щоб запустити цикл або отримати рядок бази даних. Це відчувається як природне розширення ваших сторінок. Початківець може скопіювати фрагмент, вставити його в HTML-файл і відразу побачити динамічні результати.

Ця простота реалізації створила величезну екосистему тем та plugins, яка сьогодні живить WordPress.

2. Архітектура “Born to Die” Покращує Стабільність Мови

У мовах тривалого процесу, таких як Node.js, Java або Python, додаток завантажується в пам’ять і залишається там, обробляючи тисячі запитів протягом годин або днів.

Це ефективно, але крихке. Помилка розробника з відкритою змінною переростає у витік пам’яті, доки сервер не завалиться. Один запит із необробленим винятком може зупинити весь процес для всіх.

PHP використовує інший підхід. Він завершує процес після кожного запиту. Користувач відвідує сторінку, PHP запускається, завантажує необхідні ресурси, виконує код, відправляє HTML, а потім завершується. Пам’ять очищається.

Цей “народжений, щоб помирати” цикл життя означає, що пам’ять витікає майже неможливо підтримувати. Недбалий скрипт може нашкодити лише собі. Він не може дестабілізувати сервер.

Ця стійкість робить PHP ідеальним для середовищ shared hosting та масових розгортань, де надійність важливіша за чисту швидкість.

3. Розгортання Відбувається Миттєво, Оскільки Етап Збірки Відсутній

Сучасні ланцюги розгортання є складними. Щоб запустити JavaScript-додаток, може знадобитися етап збірки (Webpack/Vite), реєстр контейнерів (Docker), сервіс оркестрації (Kubernetes) та зворотній проксі-сервер (NGINX).

Але розгортання PHP залишається надзвичайно примітивним навіть сьогодні. Ти копіюєш файл на сервер, і все.

Оскільки сервери сприймають PHP файли як виконувані активи, а не скомпільовані програми, крок «build step» часто відсутній. Ти змінюєш рядок коду, зберігаєш файл, і зміна вступає в силу.

Зворотній зв’язок є залежним. Він дозволяє швидку ітерацію, яку компільовані мови не можуть забезпечити.

4. Величезна стандартна бібліотека запобігає “пеклу залежностей”

У екосистемі JavaScript прості завдання вимагають зовнішніх пакетів.

Форматувати дату? Встанови бібліотеку.

Розпарсити форму? Встановіть проміжне ПЗ.

Це пекло залежностей.

Комікс XKCD у вигляді блок-схеми, що демонструє заплутані інструменти, бібліотеки, оновлення та хаки, ілюструючи підтримку складного технічного стеку.

PHP дотримується філософії “все включено”. Стандартна бібліотека включає вбудовану підтримку для підключення до баз даних, розбору JSON, маніпуляції з файлами, обробки зображень та передачі електронної пошти.

Розробники PHP можуть створювати складні додатки з мінімальною кількістю зовнішніх залежностей. Завдяки такому підходу, код, написаний на чистому PHP у версії PHP 7, працює так само добре і сьогодні. Це тому, що всі залежності оновлюються разом із мовою, і немає ланцюжка сторонніх пакетів, які були залишені.

5. Він Віддає Пріоритет Доставці Робочого Коду Над Чистотою

PHP ніколи не претендував на академічність. Він ніколи не стверджував, що є “найрозумнішою” мовою у кімнаті. PHP позиціонував себе як мова для виконання роботи.

Це привабило конкретний тип розробника: прагматика. Фрілансер, який створює магазин для місцевої пекарні за тиждень. Агентство, що запускає десять сайтів щомісяця. Стартап, який підтверджує ідею, перш ніж закінчаться гроші.

Ці розробники не переймаються монадами або покажчиками пам’яті. Їм потрібно швидко випустити робоче програмне забезпечення. І тому що вони могли його випустити, вони заробляли гроші. І тому що вони заробляли гроші, вони продовжували використовувати PHP.

Технічні Покращення у Сучасному PHP

Просто “зробити це” недостатньо, якщо інструмент повільний або небезпечний.

Хоча старі скарги на продуктивність були виправдані у 2015 році, сучасні версії вирішили проблеми, такі як непослідовність у назвах функцій, слабка продуктивність та уразливості безпеки, через які PHP став мемом.

1. Статична Типізація Тепер Є Опцією

PHP мала слабку типізацію. Вона надто завзято намагалася бути корисною, автоматично перетворюючи рядки в числа або null в нулі, що призводило до невідстежуваних помилок.

Сучасний PHP (8.0+) дозволяє динамічну типізацію, що означає, що мова вирішує, яким має бути тип змінної, залежно від того, як вона використовується. Також це дає тобі свободу вибору між строгою та вільною типізацією для тих, хто хоче спеціально вибрати одне або інше. З типізованими властивостями, об’єднаними типами та деклараціями типів повернення, розробники можуть забезпечити цілісність даних так само ретельно, як у Java або C#.

Ти більше не здогадуєшся, що повертає функція.

2. Швидкість Значно Покращилась

Протягом багатьох років розробники приймали, що PHP є повільним. Цей компроміс завершився з PHP 7.

Команда переписала Zend Engine для кращого управління пам’яттю. Бенчмарки з Phoronix показали, що PHP 7 обробляє вдвічі більше запитів на секунду, ніж PHP 5.6.

Гістограма тестів Phoronix, що порівнює версії PHP, демонструє значний приріст продуктивності від PHP 5.x до PHP 7.1 з меншими часами виконання.

PHP 8 додав JIT (Just In Time) компілятор, який перевершив Python та Ruby за стандартними веб-завданнями. Хоча він не зрівняється з системними мовами, такими як Rust або C, за силою обчислень, він став швидшим за запити до баз даних, на які зазвичай чекає.

3. Небезпечні Налаштування Зникли

На початку 2000-х навчальні посібники з PHP вчили поганим звичкам. Вони показували розробникам, як ручно санітувати введення за допомогою незграбних функцій, як mysql_real_escape_string. Це призвело до епідемії SQL-ін’єкцій середини 2000-х.

PHP 7 зробив сміливий крок, порушивши зворотню сумісність, видаливши старі функції mysql_ повністю. Якщо ти спробуєш запустити цей незахищений код сьогодні, програма завершиться збоєм.

Сучасна розробка на PHP за замовчуванням спирається на PDO (PHP Data Objects) та підготовлені оператори. Це відокремлює дані від запиту перед взаємодією з базою даних, що робить поширені атаки неможливими за замовчуванням. Тепер тобі доведеться докласти чимало зусиль, щоб написати небезпечний код.

Які Є Загрози Для PHP?

Якщо кращі мови, швидші рантайми і насмішки не змогли знищити PHP, то що зможе?

Воно не буде замінено на “кращу” версію себе. Це буде замінено лише у випадку, якщо фундаментальна архітектура вебу зміниться таким чином, що PHP більше не підходитиме.

Команди отримують вигоду від використання однієї мови

Перемикання контекстів є дорогим. Найсильніший аргумент проти PHP сьогодні не стосується синтаксису, а ефективності універсального JavaScript.

Коли команда об’єднується на Node.js, вона знижує тертя між двома окремими групами розробників. Ти перестаєш мати “PHP фахівців” та “React фахівців” і просто маєш інженерів.

Користувач Reddit, kavacska, пояснює бізнес-логіку:

“Одним з найважливіших активів у проекті є люди, які повністю розуміють вашу кодову базу. Як тільки ви починаєте фрагментувати своє програмне забезпечення різними мовами, вам доводиться мати справу з додатковим плануванням і комунікацією. Цілком логічно використовувати одну й ту ж мову для всього, таким чином розробники frontend не потребуватимуть вивчення нової мови для роботи з backend.”

Компанії можуть наймати розробників JavaScript, які працюють на всьому стеку. Ця ефективність є найсильнішим аргументом проти PHP. Оскільки логіка фронтенду стає складнішою, зростає потяг до використання тієї ж мови на сервері.

Це Не Було Створено Для Безсерверної Архітектури

PHP базується на архітектурі “shared-nothing”. Кожен запит запускає новий процес, який завершується відразу після виконання. Цей дизайн суперечить сучасним принципам серверлес-технологій.

Безсерверні платформи віддають перевагу застосункам, які залишаються активними та діляться станом між запитами. PHP змушує середовище виконання перезавантажуватися щоразу.

Користувач Reddit, donatj акцентує на технічних труднощах:

“Велика проста перевага Go полягає просто у стані між запитами. У стандартних серверних налаштуваннях кожен запит, який обробляє PHP, стартує з нуля і мусить витягувати свій стан з сесії, серверів кешу та баз даних.”

Хоча інструменти, як Bref, існують, вони нав’язують постійну модель мові, створеній для того, щоб завершуватися. Рідні серверлес мови вирішують це природньо. PHP вимагає хакінгу рантайму, щоб уникнути затримок.

Якщо веб повністю перейде на безсерверні функції, керовані подіями, PHP потребуватиме повної переробки або ризикує стати невідповідним.

Екосистема ШІ Побудована на Python

Найбільша загроза для PHP полягає в тому, що наступне десятиліття вебу пишеться на Python.

Python є стандартом для розробки ШІ. Оскільки основна робота відбувається там, увесь інструментальний екосистем згущується навколо нього.

Користувач Reddit, tei187, пояснює:

“Python є головним вибором, коли йдеться про розробку ШІ… люди, які почали розробляти ШІ, побудували свої стандарти, процеси та середовище навколо Python. Еквівалентна команда людей була б необхідна для того, щоб зробити те саме в PHP, аби ця мова була життєздатним варіантом.”

Якщо твоя програма стає обгорткою для агентів ШІ, запуск сервера PHP, який постійно викликає мікросервіси Python, додає складності. Стек чистого Python уникає цієї затримки API повністю.

PHP Залишається Безпечним Навіть Після Завершення Офіційної Підтримки

Тривалий час існування PHP не є випадковим. Його підтримує інтуїтивно зрозуміла екосистема обслуговування, створена для забезпечення стабільності вебсайтів, оскільки бізнеси розвиваються власними темпами.

Для більшості вебсайтів оновлення PHP не є рішенням у один клік. Це включає в себе тестування тем, плагінів, інтеграцій, а також користувацького коду, забезпечуючи при цьому роботу сайтів онлайн та їх безпеку. Багато хостинг-провайдерів реагують на цю складність, примушуючи до оновлень, як тільки офіційна підтримка PHP закінчується.

DreamHost обирає інший шлях. Як один із небагатьох незалежних веб-хостів, нам не потрібно відповідати інвесторам, які вимагають квартального зростання.

Ми пропонуємо Розширена підтримка PHP, службу, призначену для забезпечення безпеки застарілих версій PHP після їх офіційного закінчення терміну служби. Це дає нашим клієнтам час, який їм потрібен для планування, тестування та відповідального оновлення.

Коли версія PHP досягає кінця підтримки, наша інженерна команда продовжує її обслуговування шляхом:

  • Постійне оновлення безпеки для застарілих версій PHP
  • Забезпечення сумісності з поширеними платформами вебсайтів
  • Захист активних сайтів від нових ризиків без необхідності негайного оновлення
  • Надання клієнтам часу для планування та відповідального тестування оновлень

Ця робота дозволяє сайтам, що працюють на версіях 5.6 до 8.1, залишатися захищеними, поки оновлення впроваджуються за графіком, що має сенс для бізнесу.

Розширена підтримка PHP відображає основну реальність вебу: стабільність має значення.

Програмне забезпечення не потребує переписування кожного разу, коли виходить нова версія. Воно просто має бути безпечним, передбачуваним і добре підтримуваним.

З кожним новим релізом програмного забезпечення PHP залишається стабільним, демонструючи свою надійність та стабільність.

Це те, що дозволяє мільйонам сайтів на PHP працювати гладко сьогодні та дозволяє клієнтам модернізуватися без перебоїв.

Який Вердикт?

PHP не переслідує тренди, і саме тому він триває.

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

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

Доти, доки веб залежить від HTML, баз даних і серверів, які відповідають на запити, PHP залишається природним рішенням. Він розвинувся там, де це важливо, залишився простим там, де це має значення, і довів, що тривалість існування не є недоліком, а перевагою!

PHP не мертвий, він базовий.

Хостинг WordPress

Неперевершений Хостинг WordPress

Надійні, блискавично швидкі рішення для хостингу, спеціально оптимізовані для WordPress.

Дізнатися більше

Джон є Директором продукту (WordPress) у DreamHost. Він відповідає за визначення дорожньої карти та бачення продукту, взаємодію з клієнтами для розуміння їхніх викликів і допомогу у їх подоланні, а також співпрацю з різними командами для впровадження та просування функцій і виправлень, що оптимізують роботу зі створення та управління сайтами WordPress. Слідкуйте за Джоном у LinkedIn: https://www.linkedin.com/in/john-robison-77907330/