PHP 8.2: Hva er nytt?
Den nye versjonen av PHP er rett rundt hjørnet. Hvilke nye implementeringer bør du vite om? Sjekk denne artikkelen for å finne ut av det!
Som PHP-utvikler husker jeg fortsatt dagene med PHP4, den første (valgfrie!) GC-implementeringen i PHP5, og jeg gjennomlevde _hype_ om PHP7 og dens forgreninger.
I årenes løp har mange spurt meg hvorfor jeg gidder å programmering i PHP, og i mange år har jeg som et mantra hørt to tilbakevendende argumenter for hvorfor jeg burde slutte og begynne å skrive kommersiell programvare i språk som Java eller C#.
I dag skal jeg sitere disse argumentene og prøve å endre holdningen din til PHP i det minste litt. Ja, tittelen på denne artikkelen er en absurd clickbait.
PHP dør år etter år. Det en gang mest populære webspråket mister nå popularitet måned for måned, for det meste til JavaScript.
Når man ser gjennom tallene, er sannheten tankevekkende! I løpet av det siste året PHP mistet svimlende 1,6% av sin andel som backend-språk på nettet.
Hvis PHP fortsetter denne nedadgående trenden, på 18 år PHP vil falle under 50% av backend-webteknologien!
Men ok, spøk til side - selv om tallene er reelle som rapportert av W3CTechs.
Den første omtalen som PHP er døende har vært å finne på nettet siden 2013. Den gang Software Gunslinger publiserte en artikkel (som jeg forresten anbefaler på det varmeste!) som sier at PHP vil dø fordi den ikke støtter langlivede prosesser og fordi den mangler asynkronitet.
Og det er et faktum, PHP var ikke skapt for det!
hvis alt du har er en hammer, ser alt ut som en spiker
Men tilbake til tallene - la oss ta en titt på fjorårets data om PHP versjoner som brukes i Packagist-pakker. De nyeste dataene er tilgjengelige på kildesiden packagist.org
Er dette adopsjonskurven for nye versjoner av et utdøende programmeringsspråk?
Hvis det ikke er nok, la oss sjekke "PHP-dødsraten" vår mot andre språk.
Datagrunnlaget for analysen er hentet fraGitHut 2.0som genererer et diagram over antall git push
per språk til Github siden 2012, i henhold til ordningen - "Den prosentvise språkfordelingen i linjediagrammet viser de 10 største (eller manuelt valgte) språkene siden 2012/Q2".
Som du kan se PHP samt andre populære språk som Ruby, C/C++, Python har opplevd et betydelig fall i popularitet på Github de siste årene, men det er en oppadgående trend, og vi forventer at de vil komme tilbake til høye posisjoner etter en lengre periode med sidelengs utvikling. (dette er ikke investeringsrådgivning)
Den første hype
for Javascript-språket kan sees i det samme diagrammet. Jeg vil allerede overlate konklusjonene og analysen til deg, kjære leser.
Men på den annen side - et utdøende språk burde vel ikke ha en tendens til å øke antall jobbtilbud for programmerere?
I skrivende stund kan jeg velge mellom 171 jobbtilbud på en av de ledende jobbportalene i Polenhvorav hele 50 er for juniorer. PHP er døende, ikke sant?
Og apropos penger... visste du at PHP og dens kilde kode har blitt vedlikeholdt siden november 2021 av uavhengig åpen kildekode samfunnetPHP-stiftelsen som betaler mye penger til OpenSource-utviklere for bidrag til php-src
?
I motsetning til andre språk og rammeverk, som ofte eies av store selskaper, er kjernen i utviklingen team betales direkte fra stiftelsens konto, som drives av bidrag fra private selskaper som JetBrains og Symfony Corp, men også avsmå bidrag fra individuelle utviklere.
Åpen kildekode i all sin prakt!
Ja, dette argumentet kommer alltid fra utviklere som har blitt kjent med sterkt typede, sammenlignbare språk.
Når vi ser på grafen over data som ble samlet inn i løpet avStackOverflow-undersøkelse av 2021, kan du se at så mange som 10 834 respondenter, som representerer nesten 60% av totalen, syntes at PHP var "forferdelig".
Som en gammeldags PHP programmererJeg forstår hvorfor det er slik. Jeg blir umiddelbart minnet om et klassisk eksempel på hukommelsesproblemer i PHP:
<?php
class FOO {
public $f;
}
class BAR {
public $f;
}
while(1) {
$a = ny FOO();
$b = ny BAR();
$a->f = $b;
$b->f = $a;
print "Minnebruk: " . number_format(memory_get_usage(true)) . " bytesn";
unset($a);
unset($b);
}
For de uinnvidde - ja, koden ovenfor forårsaker en minnefeil. Og det er mer. Fra den idiotiske navngivningen av metoder og den totale mangelen på logikk i rekkefølgen av parametrene (ja, vi elsker alle str_
og array_
) til PHPs mest berømte feil T_PAAMAYIM_NEKUDOTAYIM
- PHP er full av særegenheter og laster fra gamle versjoner. Dette betyr ikke at det vi hørte om PHP for noen år siden, gjelder fortsatt. Språket har gjennomgått en enorm metamorfose, og i dag er jeg glad for å kunne se på objektdefinisjonene mine:
readonly-klassen NotificationEvent
{
offentlig funksjon __construct(
public string $context,
public User $user,
public string $body,
public DateTime $issuedAt,
) {}
}
Dessuten er PHP økosystem har vokst enormt, og vi har nå utrolige muligheter til å lage god, høyt typet og godt testet kode. Vi kan bruke Symfony for å utvikle DDD-applikasjoner uten store problemer, og vi kan omgå problemet med PHPs synkronisering ved å bruke Message Bus.
Og selv om jeg selv ikke tror PHP er egnet for å lage langlivede backend-prosesser og har store ytelsesproblemer når det gjelder tilstandssynkronisering, men jeg har ogsåopprettet en PHP konsollspill ved å bruke Symfony + Docker med mine egne hender som et eksempel på at PHP fortsatt kan ha utradisjonelle bruksområder.
En annen fordelen med PHP er den lave inngangsbarrieren for nye utviklere. Dokumentasjon av to populære rammeverk, Symfony ogLaravel og PHP dokumentasjon i seg selv er nok til å komme inn i backend-verdenen med deres hjelp. En verden som ikke er perfekt i PHP, men som tillater mye. Ved hjelp av tilleggsbiblioteker som Laravel Nova kan vi lage nesten alle komponenter i systemet vårt med bare to kommandoer.
Er PHP ...døende?
Nei, men det har et imageproblem og trenger mye arbeid for å forbedre det. Vi programmerere må gjøre dette arbeidet ved å lære opp den nye generasjonen og videreformidle beste praksis i form av artikler, biblioteker og tips.
Som et språk som har vært på marked i tjue år, og som allerede har overlevd mer enn én hype
(husker du Objective-C?) Jeg tror det vil klare seg og finne sin nisje.
Og hvem vet, kanskje mine spådommer viser seg å være riktige, og PHP 10.x vil blomstre igjen om to år?