PHP 8.2: Hvad er nyt?
Den nye version af PHP er lige om hjørnet. Hvad er de nye implementeringer, du bør kende til? Tjek denne artikel for at finde ud af det!
Som PHP-udvikler husker jeg stadig dagene med PHP4, den første (valgfri!) GC-implementering i PHP5, og jeg oplevede _hypet_ om fremkomsten af PHP7 og dens forgreninger.
I årenes løb har mange mennesker spurgt mig, hvorfor jeg gider. programmering i PHPog i mange år har jeg som et mantra hørt to tilbagevendende argumenter for, hvorfor jeg skulle stoppe og begynde at skrive kommerciel software i sprog som Java eller C#.
I dag vil jeg citere disse argumenter og forsøge at ændre din holdning til PHP I det mindste en lille smule. Ja, titlen på denne artikel er en absurd clickbait.
PHP dør år efter år. Det engang mest populære websprog mister nu popularitet måned for måned, mest på grund af JavaScript.
Når man ser på tallene, er sandheden tankevækkende! I løbet af det sidste år, PHP mistede svimlende 1,6% af sin andel som backend-sprog på nettet.
Hvis PHP fortsætter denne nedadgående tendens, i 18 år PHP vil falde til under 50% af backend-webteknologien!
Men okay, spøg til side - selvom tallene er reelle som rapporteret af W3CTechs.
Den første omtale, der PHP er ved at dø, har været at finde på nettet siden 2013. Dengang var Software Gunslinger udgav en artikel (som jeg i øvrigt varmt kan anbefale!), der siger, at PHP vil dø, fordi den ikke understøtter langlivede processer, og fordi den mangler asynkronitet.
Og det er et faktum, PHP var ikke skabt til det!
Hvis man kun har en hammer, ligner alt et søm.
Men tilbage til tallene - lad os se på sidste års data om PHP versioner, der bruges i Packagist-pakker. De seneste data er tilgængelige på kildesiden packagist.org
Er dette adoptionskurven for nye versioner af et døende programmeringssprog?
Hvis det ikke er nok, så lad os tjekke vores "PHP-dødsrate" i forhold til andre sprog.
Dataene til analysen er hentet fraGitHut 2.0som genererer et diagram over antallet af git push
per sprog til Github siden 2012, ifølge ordningen - "Den procentvise sprogfordeling i linjediagrammet viser de 10 største (eller manuelt valgte) sprog siden 2012/Q2".
Som du kan se PHP samt andre populære sprog som Ruby, C/C++, Python har oplevet et betydeligt fald i popularitet på Github i de senere år, men der er en opadgående tendens, og vi forventer, at de vender tilbage til høje positioner efter en længere sidelæns periode. (dette er ikke investeringsrådgivning)
Den første Hype
for Javascript-sproget kan ses i samme diagram. Jeg vil allerede nu overlade konklusionerne og analysen til dig, kære læser.
Men så igen - et døende sprog burde ikke have tendens til at øge antallet af jobtilbud til programmører, vel?
I skrivende stund kan jeg vælge mellem 171 jobtilbud på en af de førende jobportaler i Danmark. Polenhvoraf hele 50 er for juniorer. PHP er ved at dø, ikke?
Og apropos penge ... vidste du, at PHP og dens kilde Kode er blevet vedligeholdt siden november 2021 af uafhængig Open Source samfundPHP-stiftelsen som betaler mange penge til OpenSource-udviklere for bidrag til php-src
?
I modsætning til andre sprog og frameworks, som ofte er ejet af store virksomheder, er kerneudviklingen hold betales direkte fra fondens konto, som drives af bidrag fra private virksomheder som JetBrains og Symfony Corp, men også afsmå bidrag fra individuelle udviklere.
Open Source i al sin pragt!
Ja, dette argument kommer altid fra udviklere, der er blevet fortrolige med stærkt typede, sammenlignelige sprog.
Når man ser på grafen over data indsamlet i løbet afStackOverflow-undersøgelse af 2021, kan du se, at hele 10.834 respondenter, der repræsenterer næsten 60% af det samlede antal, syntes, at PHP var "forfærdelig".
Som en old-school PHP programmørJeg forstår godt, hvorfor det er sådan. Jeg bliver straks mindet om et klassisk eksempel på hukommelsesproblemer i PHP:
<?php
klasse FOO {
public $f;
}
klasse BAR {
public $f;
}
while(1) {
$a = ny FOO();
$b = ny BAR();
$a->f = $b;
$b->f = $a;
print "Hukommelsesforbrug: " . number_format(memory_get_usage(true)) . " bytesn";
unset($a);
unset($b);
}
For de uindviede - ja, ovenstående kode forårsager en hukommelsesfejl. Og der er mere. Fra den idiotiske navngivning af metoder og den fuldstændige mangel på logik i rækkefølgen af deres parametre (ja, vi elsker alle str_
og Array_.
) til PHP's mest berømte fejl T_PAAMAYIM_NEKUDOTAYIM
- PHP er fuld af særheder og laster fra gamle versioner. Det betyder ikke, at det, vi har hørt om PHP for et par år siden, gælder stadig. Sproget har gennemgået en enorm metamorfose, og i dag er jeg glad for at se på mine objektdefinitioner:
readonly klasse NotificationEvent
{
offentlig funktion __construct(
offentlig streng $context,
offentlig bruger $user,
public string $body,
public DateTime $issuedAt,
) {}
}
Hvad mere er, så PHP-økosystem er vokset enormt, og vi har nu utrolige muligheder for at skabe god, højt typet og velafprøvet kode. Vi kan bruge Symfony til at udvikle DDD-applikationer uden større problemer, og vi kan omgå problemet med PHP's synkronisering ved at bruge Message Bus.
Og selvom jeg ikke selv synes PHP er velegnet til at skabe langlivede backend-processer og har store problemer med ydeevnen, når det kommer til tilstandssynkronisering, jeg har ogsåskabte et PHP-konsolspil ved at bruge Symfony + Docker med mine egne hænder som et eksempel på, at PHP stadig kan have utraditionelle anvendelser.
En anden fordel ved PHP er den lave adgangsbarriere for nye udviklere. Dokumentationer af to populære frameworks Symfony ogLaravel og PHP dokumentation i sig selv er nok til at komme ind i backend-verdenen med deres hjælp. En verden, der ikke er perfekt i PHP, men som giver mulighed for meget. Ved hjælp af ekstra biblioteker som Laravel Nova kan vi skabe næsten enhver komponent i vores system med blot to kommandoer.
Er PHP Døende?
Nej, men det har et imageproblem og har brug for en masse arbejde for at forbedre det. Vi, programmørerne, skal gøre dette arbejde ved at undervise den nye generation og videregive bedste praksis i form af artikler, biblioteker og tips.
Som et sprog, der har været på marked i tyve år, som allerede har overlevet mere end én Hype
(husker du Objective-C?) Jeg tror, det vil klare sig og finde sin niche.
Og hvem ved, måske viser mine forudsigelser sig at være korrekte, og PHP 10.x vil boome igen om to år?