Czy PHP nadal zostaje tym najgorszym?
Języków programowania jest wiele. Od stosunkowo młodych jak dziesięcioletni Go czy pięcioletni Swift, aż po takie dinozaury, jak wszystkim już znane BASIC, COBOL. Wymieniać można długo. Każdy ma swoje wady i zalety. Ale gdy zapytać koderów, który w obiegowej opinii jest najmniej lubianym językiem, nie będzie zdziwieniem, że większość wskaże na PHP. Z jakich powodów przez lata stwierdzenie, że jest to najgorszy język, stało się wręcz utartym frazesem?
Statystyki
W 2018 roku język PHP jest czwartym najczęściej używanym językiem programowania wg indeksu RedMonk. Od lat niezmiennie jest w czołówce najpopularniejszych technologii wg raportów Stack Overflow. Obecnie dostępna jest już siódma wersja języka. WordPress - tylko jeden z systemów napisanych w PHP - odpowiada za 60 milionów instalacji. Jedna z rynkowych potęg, Facebook, zbudował swoje imperium przy użyciu tego języka. Poza tym, w PHP powstało wiele przydatnych systemów e-commerce czy CMS.
A jednak, mimo twardych statystyk, Hypertext Preprocessor nadal ma tak wielu krytykantów. Z jednej strony każdy o nim słyszał i tak wiele osób go wykorzystuje, a z drugiej, lwia część programistów nie traktuje go poważnie i gotowa jest wyśmiać stwierdzenie, że ktoś „programuje w PHP". Uważa się, iż jest to język brzydki i dziwny. Że nie jest tak szybki, jakby się tego oczekiwało. Nawet programiści używający go, uważają platformę za mało innowacyjną w stosunku do innych języków programowania.
Historia
Patrząc na wersje PHP 4 i 5 widać, że nie były perfekcyjnie przemyślane technicznie. Obserwując ich konstrukcje, można by pomyśleć, że ich stworzenie było dziełem przypadku.
Samo stworzenie oraz rozwój PHP wynikały z konieczności, a nie przemyślanego od początku planu. Rasmus Lerdorf wykreował go w 1994, aby móc śledzić ruch na jego internetowym CV. Z biegiem czasu pożądana była większa funkcjonalność i Rasmus przepisał narzędzia PHP, tworząc znacznie bogatszą implementację. Lerdorf rok później udostępnił publicznie kod źródłowy, co pozwoliło programistom na wykorzystanie go zgodnie z ich oczekiwaniami. Pozwoliło to także użytkownikom na zgłaszanie własnych poprawek. Jednak gdy popularność języka wzrastała, to nie kreatywne pomysły ulepszenia, a coraz większy popyt rysowały ścieżkę rozwoju, co wpłynęło na jego dalszą rozbudowę.
Od początku PHP cechowało się niskim progiem wejścia. Przyciągało to użytkowników dopiero zaczynających z web devem. Co to za sobą niosło? Osoby z niewielką wiedzą i małym doświadczeniem mogły łatwo pisać zły kod, a język przed tym nie chronił, a niektóre praktyki nawet do tego zachęcały. Tym sposobem do PHP przyszyto łatkę mało skomplikowanego języka z dużą ilością błędów. Pytanie tylko, czy ta obiegowa opinia ma dziś uzasadnienie?
Argumenty przeciw PHP
Minusem PHP może być niekonsekwencja w nazywaniu funkcji. Z powodu braku standardowej konwencji nazewnictwa, użytkownik zmuszony jest zapamiętywać składnię wbudowanych funkcji języka. Chociażby takie różnice jak strpos
, istrlen
oraz str_replace
, istr_split
, trzeba zapamiętać samodzielnie. I nie ma nawet żadnego konkretnego wytłumaczenia, które pozwoliłoby usystematyzować, dlaczego poszczególne elementy zapisuje się łącznie lub rozdzielnie.
PHP miało wiele luk w zabezpieczeniach, szczególnie we wcześniejszych wersjach. Przykłady? Potencjalnie niebezpieczne ustawienie register_globals
, czy szeroko praktykowany zwyczaj ustawiania chmod 777 na niektórych plikach. Co prawda teraz sytuacja wygląda znacznie lepiej, ale może to kłaść cień na sławie języka. Doświadczeni programiści nie powinni mieć na tym polu większych problemów, ale zdecydowanie jest to temat, w którym PHP przez lata pozostawiał wiele do życzenia.
Ciekawą kwestią w przypadku PHP jest fakt, że ze względu na niższy próg wejścia i brak konkretnej koncepcji tego, kim może być „starszy programista PHP", naprawdę trudno jest znaleźć kogoś utalentowanego i doświadczonego w posługiwaniu się językiem w zaawansowany sposób. Na pewno można w końcu trafić na specjalistów najwyższego poziomu, ale będzie to znacznie trudniejsze, niż w pozostałych technologiach. Ma to też pewien plus - dobry programista PHP może liczyć na przyzwoite wynagrodzenie za swoją pracę.
Kolejnym ważnym elementem w kulturze hejtu PHP są systemy CMS, które powstały w tym języku. Drupal, Joomla, WordPress są stworzone tak, by współpracować z dziesiątkami pluginów. Często te wtyczki zostały napisane przez osoby specjalizujące się w konkretnym CMS-ie, a nie przez dobrych programistów. To przekłada się na wątpliwą jakość wielu z nich. Takie pluginy często działają w nieoptymalny sposób, przez co PHP uważane jest za powolny język programowania.
Argumenty za PHP
Okej, mamy kilka powodów do narzekania. Jednak w 2015 roku wyszła oficjalnie wersja PHP 7.0. Jest ona dwukrotnie szybsza od PHP 5 i może nawet konkurować z taką technologią jak Hip Hop (HHVM), czyli zoptymalizowaną przez Facebooka maszyną wirtualną PHP. Obsługę błędów zastąpiono wyjątkami zorientowanymi obiektowo. Ta zmiana znacznie pomaga programistom w śledzeniu i naprawianiu błędów w ich kodzie. Cała wersja 7 to duże uporządkowanie języka i pozbycie się wielu jego niedomagań.
Dużym plusem jest także popularność PHP, co przekłada się na możliwość zatrudnienia. Widać to szczególnie na rynku małych firm, które bardzo często używają właśnie tego języka. Dla freelancera ta technologia może okazać się najlepszym wyborem.
PHP ma też dojrzały ekosystem i znakomite frameworki webowe. Mówimy tu przede wszystkim o Symfony czy Laravel. Obydwa pozwalają na szybkie budowanie aplikacji i nie odstają od konkurencji napisanej w innych językach. Dodatkowo mamy dobre narzędzia w postaci Composera (package manager) czy Phan (narzędzie do statycznej analizy kodu), dzięki którym łatwiej prowadzić development.
Podsumowanie
Najnowsza wersja PHP jest dużo wydajniejsza, bardziej spójna i co ważne, wspierana przez dobre frameworki webowe. Mimo to opinia najgorszego języka funkcjonuje nadal w głowach wielu programistów. Jednak, jak widać po statystykach, w świecie programowania każdy znajdzie coś dla siebie. Również język tak pełen paradoksów, jak PHP, ma swoją oddaną rzeszę zwolenników. Jest to w końcu solidna baza, którą można z powodzeniem wykorzystać w web devie. Natomiast hejtowanie jest po prostu tradycją, mniej więcej taką, jak oglądanie po raz n-ty Kevina w święta.