PHP - nie taki diabeł straszny jak go malują

6 grudnia 2017


W środowisku wciąż funkcjonuje stereotyp, że wybór PHP do tworzenia nowych projektów to zły pomysł. Według mnie opiera się to głównie na niewiedzy lub informacji sprzed lat na temat możliwości tego języka. Wszak każdy język jest tak dobry jak programista, który go używa. I to jest właśnie clue… ale od początku.


Przypomnijmy, że PHP “zawojował” świat już dobre kilkanaście lat temu. Wtedy alternatyw nie było tak wiele jak teraz, a jednocześnie boom na “tworzenie stron” był przeogromny. Większość ludzi (bo programistami być może nazwiemy ich później) wybierała język, który miał niski próg wejścia, jeśli chodzi nie tylko o jego przyswojenie, ale także uruchomienie w sieci. Hostingów np. z ASP było jak na lekarstwo, a konfiguracji Tomcata pod JSP nikt się nie podejmował, gdy miał gotowe paczki typu LAMP. Nie bez znaczenia był również fakt, że wszystko, co było dookoła PHP, było darmowe.

Dzięki temu język ten w krótkim czasie stał się popularny i stosowany we wszystkich możliwych przypadkach i konfiguracjach. Wtedy każdy bez znajomości podstawowych zagadnień programistycznych zabierał się za “robienie” stron (programowaniem być może nazwiemy to później). Powstawały przeróżne koszmary od forów opartych na plikach tekstowych po systemy, które na requeście przerabiały duże ilości danych, bo przecież można było max_execution_time ustawić na 0 i chwilę poczekać w przeglądarce.

I w tym momencie przestaje być śmiesznie. Mając ponad 10-letnie doświadczenie w programowaniu aplikacji internetowych i styczność z legacy kodem niestety muszę stwierdzić, że są osoby/firmy, które zatrzymały się na tym etapie i nadal biorą za to czasem niemałe pieniądze. Widząc takie rzeczy faktycznie niejednemu programiście od razu przychodzi do głowy zwrot “Ale ten PHP jest... głupi” - przepisujemy na … (wstaw tutaj swój ulubiony i najlepszy język programowania :) ) i tak się dzieje i nie ma nic w tym złego. Jeśli ktoś umie pogodzić rozwój produktu i zmianę stacka technologicznego, nie puszczając przy tym firmy z torbami i żyjąc w zgodzie z “biznesem”, to szacunek - tak rodzi się postęp :) Opinia bezrefleksyjnie rzucona jednak o PHP pozostaje… ale czy słuszna?

Narzekanie na PHP, z doświadczenia wiem, jest jednak bardzo nudne i opiera się o te same schematy powtarzane jak mantra, w zasadzie obnażające podejście i kompetencje osoby, która je stawia, a nie samego PHP. Przez klasyk (na szczęście już coraz mniej powtarzany), że PHP tak naprawdę nie jest obiektowy, przez to, że typy w PHP nie istnieją lub mogłyby nie istnieć, bo interpreter robi co chce, kończąc na tym, że jest niewydajny, wolny. Zapominając przy tym, do czego PHP został stworzony i jaka jest jego geneza.

Weźmy pierwsze z brzegu: typy - niech pierwszy rzuci kamieniem ten, kto uważa, że np. Javascript jest bardziej przewidywalny, jeśli chodzi o operacje na typach danych - nawet nie podam przykładów z PHP, bo nie znam tak fikuśnych jak w JS ;) Silne typowanie, deklaracja typów zwracanych przez funkcję - może warto czasem zajrzeć na php.net? Obiektowość? Niestety na palcach dwóch rąk zliczę osoby programujące w PHP (ale i nie tylko), które w pracy na co dzień używają traitów, funkcji anonimowych, interfejsów czy chociażby klas abstrakcyjnych - ale to nie przeszkadza w stawianiu zarzutów, że PHP to prowizorka.
Dalej, szczególnie wytykana przez miłośników Pythona (którego też lubię) - prędkość. Który z nich zainteresował się chociażby HHVM? Asynchroniczność? Wielowątkowość? Event-driven programming? Wszystko to, jak i wiele innych możliwości, daje nam właśnie PHP. Niektóre z nich wprowadzono co prawda dopiero w wersji 7 (np. wskazywanie typów skalarnych, nowy operator <=>, czy właśnie poprawiona o ok. 100% wydajność), ale od tamtego czasu (2015 r.) kolejne wersję wydawane są regularnie i wprowadzają nowe ciekawe funkcje. Pamiętajmy też o bardzo dużej społeczności, która utrzymuje i rozwija ten język oraz która z pewnością nie pozwoli mu zginąć.

I na koniec. Facebook, Wikipedia, Slack… nawet WordPress, na którym stoi 29,1% światowych serwisów - coś te i wiele innych serwisów łączy ze sobą. Coś, bez czego może nigdy by nie powstały, a może powstałyby w innej formie? Może lepsze, może gorsze. Nie wiadomo.

Wiem, że wielu ten artykuł nie przekona, wielu będzie miało inne zdanie, kilku może dowie się czegoś nowego, jedno wydaje się uzasadnione - to wielka popularność PHP w początkach internetu spowodowała, że wiele ludzi mogło i spełniało szybko swoje pomysły i plany na wielki biznes w sieci… i nadal tak jest!

Autor:

Łukasz Falkowicz
Chief Technology Officer at Nais / Viamobile Sp. z o.o.