Is PHP a good technology?

9 june 2022
Jakub Rojek Jakub Rojek
Zdjęcie autorstwa RealToughCandy.com (https://www.pexels.com/pl-pl/zdjecie/jedzenie-mezczyzna-milosc-ludzie-11035390/)
Categories: Programming, IT fundamentals

Gdy początkujący wybiera konkretny język programowania do nauki, zazwyczaj bierze pod uwagę kilka rzeczy. W zależności od celu poznawania kodowania, może zainteresować się poziomem trudności danej technologii oraz jej zastosowaniami praktycznymi. Tym niemniej powinno się również wziąć pod uwagę takie aspekty jak społeczność (im większa, tym łatwiej znaleźć poradniki i rozwiązania problemów) oraz jakość techniczna. I w przypadku znanego języka PHP, o ile nikt raczej nie wątpi w to, że społeczność rzeczywiście dokazuje, o tyle do jakości wszyscy mają wątpliwości.

W tym tekście przyjrzymy się temu, czy słusznie.

Czym jest PHP?

PHP (właściwie Personal Home Page, ale w początkowej fazie dodawane do tego było Forms Interpreter lub Tools) to interpretowany jezyk skryptowy, który z założenia służy do tworzenia dynamicznych stron internetowych. I w tym celu wykorzystywany jest do tej pory, choć przez lata powstała również możliwość użycia go do tworzenia aplikacji desktopowych. Sam PHP wywodzi się ze skryptów w Perlu napisanych przez Rasmusa Lerdorfa, który w 1994 roku wykorzystywał je do monitorowania własnej strony internetowej i w końcu wypuścił same narzędzia na świat rok później, już po przepisaniu go do języka C. Późniejsza historia to rozwój języka jako samodzielnego tworu i jego oficjalne wydanie w 1997 roku, po czym zainteresowanie się nim przez Zeeva Suraskiego oraz Andiego Gutmansa, którzy przejęli rozwój i od swoich imion utworzyli nowy silnik interpretera, Zend Engine.

O tym, jak popularny jest PHP, niech świadczy fakt, że w 2012 r. okazało się, że napisane w nim jest 77,5% stron internetowych w całym Internecie. Oczywiście, obecnie ten procent pewnie jest nieco niższy, ale nadal jest to szeroko rozpowszechniona technologia, która w dodatku korzysta na tym, że główne CMS-y wykorzystywane na rynku (Wordpress, Drupal i inne) sa oparte właśnie o nią.

I paradoksalnie właśnie ta popularność sprawia, że PHP jest tak krytykowany. Nie do końca słusznie - właśnie to będę starał się wytłumaczyć. Należy pamiętać, że ten język nadal jest rozwijany i w 2020 roku pojawiła się wersja 8.0, wprowadzająca wiele przydatnych mechanizmów, a jednocześnie pozostawiająca łatwość wykorzystania. Dla porządku musimy wspomnieć, że PHP jest wykorzystywany głównie po stronie backendu, choć jak najbardziej istnieje też możliwość tworzenia całych aplikacji w tej jednej technologii, wykorzystując choćby różne silniki szablonów widoków.

Czy PHP jest brzydki i utrzymuje złe praktyki?

To główny zarzut w stosunku do PHP-a - przez swoją historię i brak jasnego kierunku rozwoju na początku swojej drogi, biblioteka standardowa bywa dziwna i np. nie przykładano należytej uwagi do zachowania porządku w argumentach do funkcji (co widać szczególnie w funkcjach operujących na tablicach). Dodatkowo, jest językiem wieloparadygmatowym, co oznacza, że można łączyć w nim różne style, a to z jednej strony udogodnienie, ale z drugiej - prosta druga do zrobienia bałaganu w kodzie i zostawiania brzydkich zapachów.

Rzeczywiście, wiele aplikacji w PHP jest napisana brzydko, jednak wynika to z czegoś innego. Popularność tego języka i mnogość różnych narzędzi objawia się równiez w tym, że interesuje się tym wszystkim naprawdę wiele różnych osób. Wśród nich są także ci, którzy nie są zawodowymi programistami i nie tylko nie mają świadomości, jak tworzyć dobrą architekturę, ale też zwyczajnie mają większą szansę (i prawo) popełnienia błędów. A ponieważ to bardzo dużo ludzi tworzących dużo kodu, to procentowo mamy większą szansę trafić na brzydkie skrypty właśnie w projekcie PHP-owym niż w innych, mniej przystępnych technologiach dla początkujących.

Dlatego warto pamiętać, że w PHP można pisać naprawdę ładny i architektonicznie udany kod - taki właśnie uzyskuje się w aplikacji tworzonej przez profesjonalistów, którzy wiedzą co robią i widzieli już dużo linijek w swoim życiu. Natomiast faktem jest, że przez ogromny ogół kodu w PHP i dużą elastyczność tego języka, istnieje większa szansza na trafienie naprawdę dziwnych rozwiązań w losowo wybranej stronie internetowej opartej o tę technologię.

Czy PHP utrudnia rozwój systemu IT?

Ta wątpliwość wiąże się z poprzednim punktem i odpowiedź brzmi - przy profesjonalnym podejściu nie utrudnia. Historia jest bardzo podobna do tej z potencjalną "brzydotą" kodu - przy bardzo dużej liczbie aplikacji napisanych w PHP-ie łatwo trafić na takie, które są tworzone w pośpiechu i skoncentrowane na tym, aby "jakoś" działały, bez dbania o elastyczność pozwalającą na (lub nieutrudniającą) dalszy rozwój.

PHP nie blokuje programisty przed tworzeniem dobrej architektury. Przeciwnie - dostępne frameworki ułatwiają tworzenie małych backendów i podzielenie aplikacji na wiele modułów lub podaplikacji. Co więcej, przez swoją popularność, praktycznie każdy gotowy hosting umożliwia wdrożenie oprogramowania w PHP, co otwiera drogę do wyboru tego rozwiązania. W tym także do skalowania horyzontalnego, ponieważ nic nie stoi na przeszkodzie, aby tworzyć aplikacje bezstanowe.

Natomiast faktycznie warto mieć świadomość, że łatwość i duża elastyczność w tym języku są na tyle kuszące, że niekiedy nawet doświadczony programista może wpaść w pułapkę i stworzyć coś, co szybko powstanie, ale później będzie wymagało refaktoryzacji. To zarówno zaleta, jak i wada, natomiast profesjonalne zespoły umieją wcześnie zidentyfikować takie problemy i im zaradzić lub po prostu je ominąć.

Czy PHP jest wolny?

To uzasadniona obawa, ponieważ PHP jest językiem interpretowanym, a więc jest na biężąco przetwarzany przez interpreter podczas uruchamiania skryptu. Z natury tego typu technologie są wolniejsze niż te wcześniej kompilowane lub choćby przygotowywane w jakiś sposób. Natomiast od dłuższego czasu PHP jest naprawdę całkiem szybkie - widać to dobrze w zestawieniu w tym artykule, który udowadnia, że mechanizmy wprowadzone w PHP 7, a potem rozwinięte w PHP 8 (między innymi JIT Compiler) pozwalają osiągnąć zamierzony efekt.

Na tle innych języków PHP faktycznie nie jest najszybszym rozwiązaniem, aczkolwiek nie jest taki zły - pokazuje to między innymi ten artykuł. Jak widać, PHP odstaje wydajnościowo od np. Go, natomiast warto zwrócić uwagę na dwie rzeczy. Po pierwsze, jest bardziej "przyjazny" w innych kwestiach niż te dwa języki, a po drugie - nie zawsze potrzebujemy superwydajnej aplikacji i tak naprawdę w standardowym przypadku różnice w praktyce nie są zauważalne.

Czy PHP jest przestarzały?

Fakt, że przez historię PHP oraz ciągłe hołdowanie niektórym rozwiązaniom z odległych czasów ten język może wydawać się przestarzały. Natomiast, jak już zostało wspomniane, on cały czas się rozwija i od dawna jest dojrzały. Jak najbardziej możliwe jest typowanie, programowanie obiektowe, asynchroniczność i wiele innych aspektów, które przydają się w codziennej pracy. Jednocześnie, jest to też technologia wspierająca i integrująca się z wieloma innymi, przez co jest naprawdę elastyczna. Oczywiście, wiadomo że w ogólności im nowsza technologia, tym lepsze jest jej dopasowanie do nowoczesnych rozwiązań, jednak PHP jako ciągle utrzymywany język, nadal nadąża za tym, czego potrzebują aplikacje webowe.

Czy PHP nadaje się tylko do małych aplikacji?

Absolutnie nie. W swojej karierze napisaliśmy bardzo dużo małych, średnich, ale też i wielkich aplikacji opartych o tę technologię (tutaj macie zaledwie ułamek z nich). Każda z nich wymaga innego podejścia, wewnętrznego podziału, a czasami nawet konkretnych frameworków, jednak nie ma żadnych przeszkód stojących przed wykorzystaniem PHP zarówno do malutkiej strony wizytówkowej dla lokalnego biznesu, jak i do ogromnego systemu zarządzania całą firmą. Oczywiście, wszystko zależy od sytuacji i istnieją takie projekty, w których użycie silnika opartego o inny konkretny język będzie bardziej rozsądne (zazwyczaj jest to kwestia specyficznych wymagań lub odpowiednio ukierunkowanego zespołu programistów), jednak argument o tym, że nie można stworzyć gigantycznego oprogramowania, widząc takie narzędzia jak Yii 2, Laravel czy Symfony jest dość zabawny.

Podsumowanie

Czy to wstyd korzystać z PHP-a? W żadnym wypadku - mimo długiego stażu, to nadal język warty zainteresowania (szczególnie przy backendzie) i wykorzystywany szczególnie w małych i średnich przedsiębiorstwach (a także w dużych, choć tam do głosu bardziej dochodzi już choćby Java). Umożliwia pisanie naprawdę dużego spektrum aplikacji webowych o wysokiej jakości, a jednocześnie jest bardzo lubiany przez początkujących ze względu na łatwy start. Owszem, ta prostota bywa zdradliwa, w efekcie czego zdarzają się "potworki" pisane przez nieświadomych zagrożenia programistów, natomiast na pewno nie należy się krzywić, gdy jedną z rozważanych technologii dla projektu jest PHP, w dodatku gdy brane pod uwage są koszty przedsięwzięcia.

Pozdrawiam i dziękuję - Jakub Rojek.

We can do quite a bit and what is more, our skills and resources are at your disposal. Take a peek at what we can offer you.

About author

Jakub Rojek

Lead programmer and co-owner of Wilda Software, with many years of experience in software creation and development, but also in writing texts for various blogs. A trained analyst and IT systems architect. At the same time he is a graduate of Poznan University of Technology and teaches at this university. In his free time, he enjoys playing video games (mainly card games), reading books, watching american football and e-sport, discovering heavier music, and pointing out other people's language mistakes.

Jakub Rojek