Zaplanowana na listopad nowa odsłona PHP zbliża się wielkimi krokami. W jednym z wcześniejszych postów pisaliśmy o tym, co nowego znajdzie się z wersji PHP 8, oddzielny zaś artykuł poświęciliśmy kompilatorowi JIT, który wreszcie pojawi się oficjalnie jako funkcjonalność.
Poniżej wywiad z developerami PHP Droptica, którzy w PHP programują od wielu lat i dobrze wiedzą, w jaki sposób korzystać z zalet tego tego języka, aby korzyści w budowaniu serwisów internetowych dla klientów było najefektywniejsze.
Od ilu lat pracujesz w PHP?
Sebastian Rogala: Zawodowo od końcówki roku 2013, co obecnie daje prawie 7 lat.
Damian Skiba: Pracuję jako programista PHP od 9 lat.
Mariusz Andrzejewski: W technologiach webowych od 10 lat, w tym od 7 lat ukierunkowany na programowanie w PHP.
Jakie wg Ciebie są największe zalety programowania w PHP?
Sebastian Rogala: Elastyczność pisanego kodu oraz fakt, że obecnie jest bardzo mocno rozwijany i nie wygląda, aby ten rozwój miał spowolnić.
Damian Skiba: Stabilność aplikacji w PHP. Duża społeczność.
Mariusz Andrzejewski: Bogata składnia i możliwości języka pozwalają na pisanie zarówno statycznego, jak i bardziej dynamicznego kodu. Ważny dla mnie jest także aktywny rozwój języka i społeczność, która z każdym wydaniem stawia na coraz bardziej przemyślane rozwiązania.
Co według Ciebie sprawia, że PHP konkuruje z innymi językami programowania?
Sebastian Rogala: Moim zdaniem to nie jest tak, że PHP jest złotym środkiem na wszystko i będzie się nadawał do każdego projektu. Zaletą jest na pewno relatywnie niski próg wejścia w pisanie aplikacji. Również zdecydowana większość hostingów oferuje serwer PHP od razu po wykupieniu usług, a nie mało również oferuje gotowe instalatory takie jak: Drupal, Wordpress czy Joomla. Uważam, że zdecydowaną przewagę posiada już w istniejących i zazwyczaj darmowych rozwiązaniach odnośnie do większości podstawowych potrzeb, jak np. blog czy sklep internetowy, a przy dedykowanych systemach dobrze napisane i przetestowane komponenty, dzięki czemu w wielu przypadkach możemy dokładać je jak puzzle.
Damian Skiba: PHP to język dedykowany webowi. Z takim założeniem powstał w przeciwieństwie do większości innych języków, które zostały stworzone jako języki ogólnego przeznaczenia.
Mariusz Andrzejewski: Lata rozwoju i aktywności sprawiły, że dla PHP napisano już ogromną liczbę gotowych bibliotek, czy platform takich jak popularne CMS: Wordpress, Drupal, z których nawet początkujący programista może czerpać pełnymi garściami.
Aż 82% stron postawionych jest na PHP. Jakie są według Ciebie największe korzyści dla klientów wynikające z budowy www na PHP?
Sebastian Rogala: Myślę, że właśnie te gotowe systemy jak blogi, czy e-commerce dają tak dużą statystykę. Jeśli klient dopiero zaczyna swoją przygodę np. ze sklepem internetowym, to nie ma potrzeby wchodzenia w komercyjne rozwiązania. A nawet jeśli skala projektu jest ogromna, to PHP oferuje swoje rozwiązania jak choćby Magento. Również systemy do zarządzania treścią, takie jak wspomniane Drupal czy Wordpress, stanowią gotowe rozwiązania, po które sięgamy w ramach PHP developmentu we współpracy z naszymi klientami.
Damian Skiba: Bardzo łatwe przejście z innych języków np. C, C++ na PHP, dzięki temu wiele stron powstało na PHP. Na przykład pierwsza wersja Facebooka to właśnie PHP.
Mariusz Andrzejewski: PHP powstał w momencie, w którym na rynku nie było wielu sensownych rozwiązań, stąd szybko spopularyzował się jako najczęściej wybierany język server-side i ta paradoksalnie popularność jest jego fundamentem do dziś. Dzięki tak powszechnym jego użyciu, na rynku pracy dostępna jest większa liczba programistów, co pozwala o wiele łatwiej skompletować zespół projektowy czy też zatrudnić dedykowany zespół programistów.
Jaki najbardziej ambitny projekt zrealizowałeś w PHP?
Sebastian Rogala: Dobrym przykładem jest system etykiet - statusów. Polegało to na daniu klientowi możliwości ustalania swoich reguł odnośnie “dodawania statusu” oraz “usuwania statusu” z zamówienia na “dodanie statusu” lub “usunięcie statusu” z zamówienia. Mogłoby się wydawać proste na pierwszy rzut oka, ale wymagało to jednak dobrego przemyślenia przepływu danych, gdyż bardzo łatwo można było się zakleszczyć lub zapętlić. Potrzebne też było dostarczenie odpowiedniego mechanizmu konfiguracji, aby użytkownik mógł samodzielnie definiować statusy i akcje, jakie miały występować.
Damian Skiba: Napisanie serwera w Node.JS, który wysyłał wiadomości do setek podłączonych klientów. A cała obsługa tego serwera była opracowana w Drupalu. Były uwzględnione przypadki, że gdy jeden z kontenerów Dockera wyłączy się, to ma zostać zrestarotwany. A kontenery z Node.JS i Drupalem mają się synchronizować, żeby wiedzieć, co było wysłane do klientów i co czeka w kolejce.
Mariusz Andrzejewski: Jednym z ciekawszych i najbardziej złożonych projektów z jakimi przyszło mi się mierzyć, to udział w budowie platformy pełniącej rolę site-buildera, czyli platformy do budowania kolejnych portali. Mnogość możliwych rozwiązań, elastyczność każdego z komponentów, a także otwartość na zmiany przy jednoczesnym zachowaniu stabilności już istniejących portali, to największe wyzwania jakie przed nami postawiono i które zostały zrealizowane.
Na co według Ciebie klient powinien zwrócić uwagę, jeśli chce stworzyć od nowa PHP stronę www, a kiedy chce rozbudować obecną?
Sebastian Rogala: W obu przypadkach podstawowym pytaniem jest “jak duży to ma być system i czy jest w planach jego rozwój?” Jeśli tworzymy nową stronę, to dla czegoś niezbyt skomplikowanego i bez większej wizji długoterminowego rozwoju, w zupełności wystarczy chociażby jeden z popularnych frameworków i zastosowanie klasycznego MVC lub też Drupala. Dla większej skali projektów należałoby się zastanowić już nad innymi aspektami, takimi jak architektura systemu w szerokim znaczeniu. Jednym z popularniejszych podejść jest zastosowanie Symfony wraz z architekturą hexagonala i kierowanie się w stronę mikroserwisów, choć lepiej zrobić modularny monolit.
Damian Skiba: Jeżeli to będzie jakaś duża modyfikacja, to trzeba byłoby zmienić dużą część istniejące logiki. Jeśli byłby to Drupal, to jest duże pole do manewru, że można dodać tę funkcjonalność. A jeśli to nie jest Drupal, warto go wybrać i przepisać całą istniejącą logikę w ramach drupalowych usług, a potem dodać nową funkcjonalność.
Mariusz Andrzejewski: Jak wszędzie najważniejsi są ludzie. Mnogość dostępnych programistów na rynku nie zawsze przekłada się na jakość. W pierwszej kolejności warto skompletować zespół doświadczonych programistów i architektów, którzy będą w stanie przełożyć logikę biznesową na jak najlepsze rozwiązanie, dobierając najwłaściwsze technologie dla konkretnego rozwiązania.
Dlaczego uważasz, że Drupal przyciąga najwięcej wysokiej klasy specjalistów w PHP ze wszystkich CMS-ów?
Sebastian Rogala: Myślę, że dlatego, że Drupal daje największe możliwości, co do projektowania i tworzenia aplikacji porównując inne CMS-y. Ma on również większy próg wejścia, co oznacza, że jednak dobrze jest mieć wcześniejsze doświadczenie w programowaniu, żeby móc się odnaleźć w Drupalu i pisać skuteczne rozwiązania.
Damian Skiba: Według mnie ze względu na Drupala 8, który jest napisany w Symfony.
Mariusz Andrzejewski: Będąc członkiem zespołu programistów Drupala, wiem, że Drupal to kompleksowy system CMS, który poandto korzysta z solidnych fundamentów Symfony development. Bardzo ciężko jest wykonać w nim pewne rzeczy “dookoła” niezgodnie ze standardami, dlatego odnajdują się w nim najczęściej doświadczeni programiści, którym nie straszna jest praca z dokumentacją i którzy są w stanie zrozumieć, i prześledzić logikę kodu całej aplikacji.
Z jakiego PHP framework najczęściej korzystasz i jakie są jego zalety?
Sebastian Rogala: W ostatnim czasie najwięcej miałem do czynienia z Laravelem, natomiast najwięcej pracowałem na Zend Framework, którego obecna nazwa to Laminas. Według mnie jest to framework “siostrzany” do Symfony. Głównymi zaletami to modułowość i stosowanie większości “dobrych” wzorców projektowych. Podejściu “configuration over convention” również ma swoje pozytywne aspekty, gdyż daje nam bardzo dużą elastyczność do dostarczania dopasowanych rozwiązań. Dzięki temu, np. nie musimy się trzymać tylko wzorca architektonicznego MVC, ale mamy również swobodę do pójścia w kierunku Hexagonal czy CQRS.
Damian Skiba: Symfony. Dla mnie zaletą jest “wstrzykiwanie zależności” i szybkość działania.
Mariusz Andrzejewski: Ze względu na mocne przywiązanie do Drupala, najbliższy jest mi framework Symfony. Po Drupal jak i Symfony najczęściej sięgają profesjonaliści, a nad rozwojem i popularyzacją obu co dzień działa ogromna społeczność programistów.
Gdybyś miał przekonać początkującego programistę, to jakiego argumentu byś użył, aby ten zaczął uczyć się PHP?
Sebastian Rogala: Przede wszystkim nie uważam, że jakiekolwiek narzędzie (a takim jest język programowania) jest dobrym na każdą sytuację. Natomiast jeśli zainteresowania osoby i jej kierunek jest związany z szeroko pojętym tworzeniem aplikacji www, myślę, że dobrym argumentem jest niski próg wejścia i możliwość rozpoczęcia pracy, i zobaczenia efektów szybciej niż w innych językach “serwerowych”. Kolejną rzeczą jest elastyczność PHP oraz bardzo duża społeczność, która oferuje ogrom gotowych rozwiązań. Myślę, że są to dobre argumenty dla początkującego programisty.
Damian Skiba: Niski próg wejścia. Znając jakiś język programowania ze szkoły średniej czy ze studiów, jest się w stanie nauczyć PHP bez większego problemu.
Mariusz Andrzejewski: Łatwość nauki, liczna i aktywna społeczność przekładająca się na obszerną bazę wiedzy dostępna w internecie. Gotowe rozwiązania zmniejszą tzw. “próg wejścia” jeszcze bardziej.
Co według Ciebie będzie najbardziej wartościowe w nowej wersji PHP?
Sebastian Rogala: Union Types, Named Arguments, Match Expressions. Wymienić można naprawdę kilka ciekawych elementów.
Damian Skiba: JIT, dzięki czemu jeszcze szybciej będzie działał PHP.
Mariusz Andrzejewski: Wielu programistów PHP lubi jego dynamiczną naturę. Mnie cieszą natomiast zmiany w kierunku większej kontroli nad stanem aplikacji, w tym nad kontrolą wyrzucanych błędów, która zostanie uporządkowana wraz z najnowszym wydaniem języka.
Podsumowanie
Czekamy z niecierpliwością na premierę PHP 8. Będziemy żywo przyglądać się rozwiązaniom i sprawdzać w naszej agencji, w jaki sposób nowe funkcjonalności przekładają się na codzienną pracę developerską.