PHP 8.2: Co nowego?
Nowa wersja PHP jest tuż za rogiem. Jakie są nowe implementacje, o których powinieneś wiedzieć? Sprawdź ten artykuł, aby się dowiedzieć!
Jako programista PHP wciąż pamiętam czasy PHP4, pierwszą (opcjonalną!) implementację GC w PHP5 i przeżyłem _hype_ związany z pojawieniem się PHP7 i jego konsekwencjami.
Przez lata wiele osób pytało mnie, dlaczego zawracam sobie tym głowę programowanie w PHPi przez wiele lat słyszałem jak mantrę dwa powtarzające się argumenty, dlaczego powinienem przestać i zacząć pisać komercyjne oprogramowanie w językach takich jak Java lub C#.
Dzisiaj przytoczę te argumenty i spróbuję zmienić twoje nastawienie do PHP przynajmniej trochę. Tak, tytuł tego artykułu to absurdalny clickbait.

PHP umiera z roku na rok. Niegdyś najpopularniejszy język internetowy z miesiąca na miesiąc traci na popularności, głównie na rzecz JavaScript.
Gdy spojrzy się na liczby, prawda jest otrzeźwiająca! W ciągu ostatniego roku, PHP stracił oszałamiające 1,6% swojego udziału jako język zaplecza sieci.
Jeśli PHP kontynuuje ten trend spadkowy, w ciągu 18 lat PHP spadnie poniżej 50% backendowej technologii webowej!

Ale dobra, żarty na bok - chociaż liczby są prawdziwe jak donosi W3CTechs.
Pierwsza wzmianka, że PHP umiera można znaleźć w sieci od 2013 roku. Wtedy Software Gunslinger opublikował artykuł (którą przy okazji gorąco polecam!), mówiąc, że PHP umrze, ponieważ nie obsługuje długotrwałych procesów i ponieważ brakuje mu asynchroniczności.
I to jest fakt, PHP nie został do tego stworzony!
jeśli masz tylko młotek, wszystko wygląda jak gwóźdź
Wracając jednak do liczb - spójrzmy na zeszłoroczne dane dotyczące PHP wersje używane w pakietach Packagist. Najnowsze dane są dostępne na stronie źródłowej packagist.org

Czy jest to krzywa adopcji nowych wersji umierającego języka programowania?
Jeśli to nie wystarczy, sprawdźmy nasz "współczynnik zgonów PHP" w porównaniu z innymi językami.
Dane do analizy pochodzą zGitHut 2.0, który generuje wykres liczby git push na język na Githubie od 2012 roku, zgodnie ze schematem - "Procentowy rozkład języków na wykresie liniowym pokazuje 10 najlepszych (lub ręcznie wybranych) języków od 2012/Q2".

Jak widać PHP a także inne popularne języki, takie jak Ruby, C/C++, Python doświadczyły znacznego spadku popularności na Githubie w ostatnich latach, jednak istnieje tendencja wzrostowa i spodziewamy się, że po dłuższym okresie bocznym powrócą na wysokie pozycje. (nie jest to porada inwestycyjna)
Początkowy szum dla języka Javascript można zobaczyć na tym samym wykresie. Wnioski i jego analizę pozostawiam już Tobie, drogi czytelniku.

Ale z drugiej strony - umierający język nie powinien zwiększać liczby ofert pracy dla programistów, prawda?

W chwili pisania tego artykułu mogę wybierać spośród 171 ofert pracy na jednym z wiodących portali pracy w Polsce. Polskaw tym aż 50 dla juniorów. PHP umiera, prawda?

A skoro mowa o pieniądzach... czy wiesz, że PHP i jego źródło kod jest utrzymywana od listopada 2021 r. przez niezależny Open Source społecznośćFundacja PHP który płaci znaczne pieniądze deweloperom OpenSource za wkład w php-src?
W przeciwieństwie do innych języków i frameworków, które często są własnością dużych firm, rdzeń rozwoju zespół jest wypłacana bezpośrednio z konta fundacji, które jest prowadzone przez wpłaty od prywatnych firm, takich jak JetBrains i Symfony Corp, ale także przezniewielki wkład poszczególnych deweloperów.
Open Source w całej okazałości!
Tak, ten argument zawsze pada z ust programistów, którzy zapoznali się z silnie typowanymi, porównywalnymi językami.
Patrząc na wykres danych zebranych podczasAnkieta StackOverflow z 2021 r. widać, że aż 10 834 respondentów, co stanowi prawie 60% ogółu, uznało PHP za "straszny".

Jako stara szkoła Programator PHPRozumiem, dlaczego tak jest. Od razu przypomina mi się klasyczny przykład problemów z pamięcią w PHP:
<?php
class FOO {
public $f;
}
class BAR {
public $f;
}
while(1) {
$a = new FOO();
$b = new BAR();
$a->f = $b;
$b->f = $a;
print "Wykorzystanie pamięci: " . number_format(memory_get_usage(true)) . " bytesn";
unset($a);
unset($b);
}
Dla niewtajemniczonych - tak, powyższy kod powoduje błąd pamięci. A to nie wszystko. Od idiotycznego nazewnictwa metod i kompletnego braku logiki w kolejności ich parametrów (tak, wszyscy kochamy str_ i array_) do najsłynniejszego błędu PHP T_PAAMAYIM_NEKUDOTAYIM - PHP jest pełen dziwactw i wad starych wersji. Nie oznacza to jednak, że to, o czym słyszeliśmy PHP sprzed kilku lat jest nadal aktualna. Język przeszedł ogromną metamorfozę i dziś z przyjemnością przyglądam się moim definicjom obiektów:
readonly class NotificationEvent
{
public function __construct(
public string $context,
public User $user,
public string $body,
public DateTime $issuedAt,
) {}
}
Co więcej Ekosystem PHP ogromnie się rozwinęła i mamy teraz niesamowite możliwości tworzenia dobrego, wysoce typowego i dobrze przetestowanego kodu. Możemy używać Symfony do tworzenia aplikacji DDD bez większych problemów, a problem synchronizacji PHP możemy obejść używając Message Bus.
I choć sam nie uważam PHP nadaje się do tworzenia długotrwałych procesów backendowych i ma ogromne problemy z wydajnością, jeśli chodzi o synchronizację stanów, mam równieżstworzył grę konsolową PHP using Symfony + Docker with my own hands as an example that PHP can still have unconventional uses.
Inny Zalety PHP jest niska bariera wejścia dla nowych deweloperów. Dokumentacje dwóch popularnych frameworków Symfony iLaravel i PHP Sama dokumentacja wystarczy, by z ich pomocą wejść do backendowego świata. Świat, który w PHP nie jest idealny, ale pozwala na wiele. Korzystając z dodatkowych bibliotek takich jak Laravel Nova jesteśmy w stanie stworzyć niemal każdy komponent naszego systemu za pomocą zaledwie dwóch komend.
Czy PHP umierający?
Nie, ale ma problem z wizerunkiem i wymaga wiele pracy, aby go poprawić. My, programiści, musimy wykonać tę pracę, ucząc nowe pokolenie i przekazując najlepsze praktyki w formie artykułów, bibliotek i wskazówek.
Jako język, który był na rynek przez dwadzieścia lat, który przetrwał już więcej niż jeden szum (pamiętacie Objective-C?) Myślę, że sobie poradzi i znajdzie swoją niszę.
A kto wie, może moje przewidywania okażą się słuszne i PHP 10.x znów przeżyje boom za dwa lata?
