Dobry, wszechstronny i brzydki. Dlaczego PHP nie chce umrzeć? | KISS digital

Adam Kubiczek

Współzałożyciel KISS digital.

Przemysław Ćwik

Senior Editor.

17 March 2020

Dobry, wszechstronny i brzydki. Dlaczego PHP nie chce umrzeć?

postMainImage

PHP nie cieszy się sympatią młodego pokolenia programistów. To język z długą historią, który ciągnie za sobą bagaż przestarzałych rozwiązań. Brak mu gracji i spójności, nie należy również do najnowocześniejszych. Ma jednak fundamentalną zaletę: za jego pomocą można rozwiązać praktycznie każdy problem.

W Quora, najpopularniejszym anglojęzycznym serwisie Q&A, pytania dotyczące rychłej „śmierci” PHP pojawiają się regularnie od wielu lat. W bardziej delikatnych wariantach dotyczą one sensu dalszego istnienia PHP w czasach, w których w rankingach popularności przodują Python, JavaScript czy Ruby. Z jednej strony autorów tego typu postów można posądzać o trolling. Szczególnie w kontekście faktu, że z PHP korzysta ok. 80 proc. stron w internecie. Z drugiej tego typu „prowokacje” niosą ze sobą pewien pożytek: stanowią przyczynek do dyskusji na temat wartości PHP na tle rosnącej konkurencji.

Krótka historia PHP

PHP został stworzony w 1994 r. przez Rasmusa Lerdorfa. Pierwsza wersja tego języka stanowiła zestaw skryptów Perla, który służył Lerdorfowi do monitorowania ruchu na jego stronie internetowej. Gdy liczba odwiedzających wzrosła, deweloper przepisał skrypty w języku C, dodając do nich kolejne funkcje, a w 1995 r. udostępnił kod źródłowy swojego dzieła. PHP szybko zdobył popularność i przekształcił się w projekt o zasięgu globalnym. W 1997 r. korzystało z niego już ponad 50 tys. programistów na całym świecie.

PHP jest językiem skryptowym o zastosowaniu ogólnym. Przede wszystkim jednak przeznaczony jest do tworzenia dynamicznych stron internetowych i aplikacji webowych. Według danych z sierpnia 2019 r. z PHP jako języka programowania po stronie serwera korzystało 79,1 proc. stron internetowych w sieci. Napisano w nim również sporą część aplikacji webowych, m.in. systemów zarządzania treścią, forów dyskusyjnych czy klientów baz danych. Do CMS-ów stworzonych w PHP należą WordPress, Drupal, Joomla czy MediaWiki, czyli najpopularniejsze „marki” w swojej kategorii. PHP zasila również backend lub frontend takich serwisów, jak Facebook, Dailymotion, Digg, Slack, Flickr czy Tumblr. Warto dodać, że na WordPressie (a wcześniej na Drupalu) działa nawet strona Białego Domu. W języku stworzonym przez Lerdorfa napisane jest również Magento – silnik, z którego korzysta ponad 10 proc. wszystkich sklepów internetowych na świecie.

Skoro więc PHP jest tak popularny, skąd biorą się pytania o jego rychły koniec?

PHP: brzydki, bo niespójny

Zdaniem wielu zainteresowanych PHP najlepsze czasy ma za sobą. Język stworzony przez Lerdorfa wypadł z łask deweloperów już dobre kilka lat temu i stał się brzydkim kaczątkiem branży programistycznej. Dlaczego? „PHP to język od samego początku zaprojektowany bardzo kiepsko, a dodatkowo niezbyt szybki. To główny powód, dla którego nienawidzi go większość programistów” – można przeczytać w jednej z odpowiedzi pod pytaniem o „ciągłość istnienia” PHP w serwisie Quora. (Warto doczytać ją do końca, ponieważ „atak” na PHP jest tylko wstępem do obrony tego języka.)

Ten zarzut jest do pewnego stopnia trafiony. Nieowijając w bawełnę, można stwierdzić, że PHP jest językiem brzydkim. Głównie za przyczyną niespójnej składni. Dla deweloperów, którzy uczą się w nim kodować, utrapieniem mogą być m.in. rozbieżności w bazach metod czy sposobie przekazywania parametrów do funkcji, niejednoznaczności niektórych operatorów, błędy, które nie powodują przerwania skryptu czy konflikty między funkcjami. Wynika to z faktu, że PHP ma bardzo długą historię. Był rozwijany przez rozmaitych programistów, stosujących odmienne podejścia. Zaowocowało to rozwiązaniami miejscami pokracznymi i niezbyt harmonijną całością.

Z PHP możesz wszystko

Długa przeszłość PHP ma jednak dobre strony, które przeważają nad mankamentami tego języka. Do najważniejszych należy pokaźna liczba dojrzałych frameworków, takich jak Laravel, Symfony, Zend, Phalcon czy Yii, oraz bibliotek o rozmaitych zastosowaniach, również na poziomie enterprise. Dzięki ich obfitości można w krótkim czasie realizować całkiem skomplikowane przedsięwzięcia. Na przykład stworzyć rozbudowany panel administracyjny w ciągu kilku dni. PHP posiada również bardzo bogatą bibliotekę standardową, czyli wiele wbudowanych narzędzi, np. do obsługi PDF-ów, łączenia się z różnymi typami baz danych czy obsługi grafiki. Bez przesady można więc stwierdzić, że PHP jest językiem, w którym dostępne są rozwiązania dla większości problemów. Z punktu widzenia wydajności pracy programisty jest to zaleta trudna do przecenienia.

Atutem PHP w obecnym wydaniu jest również szybkość. W poprzednich wersjach język ten nie uchodził za demona prędkości, jednak wersja 7.0 w benchmarkach okazała się nawet 14 razy szybsza od wersji 5.0 z 2004 r. W dodatku w jednym z testów „siódemka” wypadła znacznie lepiej niż modne obecnie Python czy Ruby. W praktyce wyniki są może mniej spektakularne, ale i tak „nowy” PHP radzi sobie całkiem nieźle: w realnych testach najpopularniejsze frameworki działają o ok. 70 proc. szybciej w porównaniu do poprzedniej stabilnej wersji, inne dane mówią o trzykrotnej poprawie sprawności. Jasne, że są lepsi – ale w swojej, węższej kategorii. Przykładowo PHP nie prześcignie Go czy innych języków kompilowanych, które w błyskawicznym tempie wykonują określone operacje matematyczne. Nie ujmuje mu to jednak zalet. PHP jest językiem ogólnego zastosowania i jego najmocniejszą stroną są zasoby, które pozwalają na sprawne realizowanie całej rozmaitości zadań relatywnie niskim kosztem.

„Złe języki” szkodzą PHP

Ten atut to efekt współpracy dużej społeczności deweloperów rozwijających PHP. Problem w tym, że pogłębianiu tej kooperacji nie służą pogłoski o zbliżającej się „śmierci” tego języka. Z jednej strony wynikają one z mylnych przekonań na temat wartości tego języka i oceniania go wyłącznie przez pryzmat mankamentów, częściowo zresztą usuniętych w ostatniej wersji PHP. Z drugiej – z rosnącej popularności „konkurencji” w postaci Pythona, Ruby czy JavaScript. To oczywiście języki pod wieloma względami znakomite, choć uboższe z punktu widzenia liczby dostępnych frameworków i bibliotek. W dodatku modny w ostatnich latach Python uchodzi za stosunkowo łatwy w nauce, co przysparza mu wielu nowych adeptów. Osoby rozpoczynające przygodę z programowaniem coraz mniej przychylnym okiem spoglądają natomiast na PHP. W przyszłości może to doprowadzić do spowolnienia rozwoju jego środowiska.

Miejmy jednak nadzieję, że do tego nie dojdzie. Optymalizacje wprowadzone do „siódemki” powinny przekonać sceptyków, że PHP wart jest nie tylko implementacji, ale i nauki. To język, który ze względu na zakres zastosowań oraz dostępność gotowych rozwiązań ma na rynku niewielką konkurencję.

Jeśli szukasz partnera, który zrealizuje twój projekt z dbałością o jego bezpieczeństwo – porozmawiajmy!

Adam Kubiczek

A co-founder and managing partner of KISS digital. Has a long-term experience as a software developer and a team leader.

Przemysław Ćwik

Senior Editor.