PHP 8.2: Vad är nytt?
Den nya versionen av PHP är precis runt hörnet. Vilka är de nya implementeringar som du bör känna till? Kolla in den här artikeln för att ta reda på det!
Som PHP-utvecklare minns jag fortfarande dagarna med PHP4, den första (valfria!) GC-implementeringen i PHP5, och jag levde genom _hype_ av tillkomsten av PHP7 och dess förgreningar.
Under årens lopp har många frågat mig varför jag bryr mig programmering i PHPoch i många år har jag som ett mantra hört två återkommande argument för varför jag borde sluta och börja skriva kommersiell programvara i språk som Java eller C#.
Idag ska jag citera dessa argument och försöka ändra din inställning till PHP åtminstone lite grann. Ja, titeln på den här artikeln är ett absurt klickbete.
PHP dör år efter år. Det en gång mest populära webbspråket tappar nu popularitet månad för månad, främst på grund av JavaScript.
När man tittar på siffrorna är sanningen tillnyktrande! Under det senaste året, PHP förlorade hisnande 1,6% av sin andel som webbens backendspråk.
Om PHP fortsätter denna nedåtgående trend, på 18 år PHP kommer att sjunka under 50% av backend-webbtekniken!
Men okej, skämt åsido - även om siffrorna är verkliga som rapporterats av W3CTechs.
Det första omnämnandet att PHP är döende har funnits på webben sedan 2013. På den tiden Software Gunslinger publicerade en artikel (som jag för övrigt varmt rekommenderar!) som säger att PHP kommer att dö eftersom det inte stöder långlivade processer och eftersom det saknar asynkronitet.
Och det är ett faktum, PHP var inte gjord för det!
om allt du har är en hammare, ser allt ut som en spik
Men tillbaka till siffrorna - låt oss ta en titt på förra årets uppgifter om PHP versioner som används i Packagist-paketen. De senaste uppgifterna finns tillgängliga på källsidan packagist.org
Är detta adoptionskurvan för nya versioner av ett utdöende programmeringsspråk?
Om inte det räcker kan vi jämföra vår "PHP-dödsfrekvens" med andra språk.
Uppgifterna för analysen är hämtade frånGitHut 2.0som genererar ett diagram över antalet git push
per språk till Github sedan 2012, enligt schemat - "Den procentuella fördelningen av språk i linjediagrammet visar de 10 största (eller manuellt valda) språken sedan 2012/Q2".
Som du kan se PHP samt andra populära språk som Ruby, C/C++, Python har upplevt en betydande nedgång i popularitet på Github under de senaste åren, men det finns en uppåtgående trend och vi förväntar oss att de återvänder till höga positioner efter en längre sidledes period. (detta är inte investeringsrådgivning)
Den första hype
för Javascript-språket kan ses i samma diagram. Jag kommer redan att lämna slutsatserna och dess analys till dig, kära läsare.
Men å andra sidan - ett utdöende språk borde väl inte öka antalet jobberbjudanden för programmerare, eller hur?
När jag skriver den här artikeln kan jag välja mellan 171 jobberbjudanden på en av de ledande jobbportalerna i Polenvarav så många som 50 är för juniorer. PHP är döende, eller hur?
Och på tal om pengar... visste du att PHP och dess källa kod har underhållits sedan november 2021 av oberoende Open Source samhälleStiftelsen PHP som betalar stora pengar till OpenSource-utvecklare för bidrag till php-source
?
Till skillnad från andra språk och ramverk, som ofta ägs av stora företag, är kärnan i utvecklingen Team betalas direkt från stiftelsens konto som drivs av bidrag från privata företag som JetBrains och Symfony Corp men också avsmå bidrag från enskilda utvecklare.
Open Source i all sin prakt!
Ja, det här argumentet kommer alltid från utvecklare som har blivit bekanta med starkt typade, jämförbara språk.
Om man tittar på diagrammet över data som samlats in underStackOverflow-undersökning av 2021 kan du se att så många som 10 834 respondenter som representerar nästan 60% av det totala antalet tyckte att PHP var "fruktansvärt".
Som en gammaldags PHP programmerareförstår jag varför det är så. Jag kommer genast att tänka på ett klassiskt exempel på minnesproblem i PHP:
<?php
klass FOO {
public $f;
}
klass BAR {
public $f;
}
while(1) {
$a = ny FOO();
$b = ny BAR();
$a->f = $b;
$b->f = $a;
print "Minnesanvändning: " . number_format(memory_get_usage(true)) . " bytesn";
unset($a);
unset($b);
}
För den oinvigde - ja, ovanstående kod orsakar ett minnesfel. Och det finns mer. Från den idiotiska namngivningen av metoder och den fullständiga bristen på logik i ordningen på deras parametrar (ja, vi älskar alla str_
och matris_
) till PHP:s mest kända fel T_PAAMAYIM_NEKUDOTAYIM
- PHP är full av egendomar och laster från gamla versioner. Detta betyder inte att det vi hörde om PHP för några år sedan är fortfarande sant. Språket har genomgått en enorm metamorfos och idag tittar jag gärna på mina objektdefinitioner:
readonly klass NotificationEvent
{
offentlig funktion __construct(
publik sträng $context,
publik användare $user,
publik sträng $body,
public DateTime $issuedAt,
) {}
}
Dessutom är PHP ekosystem har vuxit enormt, och vi har nu otroliga möjligheter att skapa bra, högt typad och väl testad kod. Vi kan använda Symfony för att utveckla DDD-applikationer utan några större problem, och vi kan komma runt problemet med PHP:s synkronicitet genom att använda Message Bus.
Och även om jag själv inte tycker att PHP är lämplig för att skapa långlivade backend-processer och har enorma prestandaproblem när det gäller statussynkronisering, men jag har ocksåskapade ett PHP konsolspel använder Symfony + Docker med mina egna händer som ett exempel på att PHP fortfarande kan ha okonventionella användningsområden.
En annan fördel av PHP är dess låga inträdesbarriär för nya utvecklare. Dokumentationer av två populära ramverk Symfony ochLaravel och PHP dokumentation i sig är tillräckligt för att komma in i backend-världen med deras hjälp. En värld som inte är perfekt i PHP men som tillåter mycket. Med hjälp av ytterligare bibliotek som Laravel Nova kan vi skapa nästan vilken komponent som helst i vårt system med bara två kommandon.
Är PHP ...döende?
Nej, men det har ett imageproblem och det krävs mycket arbete för att förbättra det. Vi programmerare måste göra detta arbete genom att undervisa den nya generationen och förmedla bästa praxis i form av artiklar, bibliotek och tips.
Som ett språk som har varit på tapeten marknad i tjugo år, som redan har överlevt mer än en hype
(minns du Objective-C?) Jag tror att det kommer att klara sig och hitta sin nisch.
Och vem vet, kanske kommer mina förutsägelser att visa sig vara korrekta och PHP 10.x kommer att blomstra igen om två år?