PHP 8.2: Wat is er nieuw?
De nieuwe versie van PHP staat voor de deur. Wat zijn de nieuwe implementaties waar je vanaf moet weten? Lees dit artikel om erachter te komen!
Als PHP ontwikkelaar herinner ik me nog de dagen van PHP4, de eerste (optionele!) GC implementatie in PHP5, en ik heb de _hype_ van de komst van PHP7 en de vertakkingen ervan meegemaakt.
In de loop der jaren hebben veel mensen me gevraagd waarom ik de moeite neem programmeren in PHPen al vele jaren hoor ik als een mantra twee terugkerende argumenten waarom ik zou moeten stoppen en commerciële software zou moeten gaan schrijven in talen als Java of C#.
Vandaag ga ik die argumenten aanhalen en proberen je houding tegenover PHP tenminste een beetje. Ja, de titel van dit artikel is een absurde clickbait.
PHP sterft jaar na jaar uit. De ooit populairste webtaal verliest nu maand na maand aan populariteit, voornamelijk aan JavaScript.
Als je de cijfers bekijkt, is de waarheid ontnuchterend! In het afgelopen jaar, PHP verloor maar liefst 1,6% van zijn aandeel als de backend-taal van het web.
Als PHP zet deze neerwaartse trend voort, in 18 jaar PHP zal dalen tot onder 50% van de backend webtechnologie!
Maar oké, grapjes terzijde - hoewel de cijfers echt zijn zoals gemeld door W3CTechs.
De eerste vermelding die PHP is stervende is sinds 2013 op het web te vinden. Destijds Software Gunslinger een artikel gepubliceerd (die ik overigens ten zeerste aanbeveel!) die zegt dat PHP zal sterven omdat het geen langlevende processen ondersteunt en omdat het asynchroniciteit mist.
En dat is een feit, PHP was daar niet voor gemaakt!
als je alleen een hamer hebt, lijkt alles op een spijker
Maar terug naar de cijfers - laten we eens kijken naar de gegevens van vorig jaar over PHP versies gebruikt in Packagist-pakketten. De nieuwste gegevens zijn beschikbaar op de bronsite packagist.org
Is dit de adoptiecurve voor nieuwe versies van een stervende programmeertaal?
Als dat nog niet genoeg is, laten we dan ons "PHP sterftecijfer" vergelijken met andere talen.
De gegevens voor de analyse zijn afkomstig vanGitHut 2.0die een grafiek genereert van het aantal git push
per taal naar Github sinds 2012, volgens het schema - "De verdeling van het taalpercentage in de lijngrafiek toont de top 10 (of handmatig geselecteerde) talen sinds 2012/Q2".
Zoals je kunt zien PHP evenals andere populaire talen zoals Ruby, C/C++, Python hebben de afgelopen jaren een aanzienlijke daling in populariteit op Github doorgemaakt, maar er is een opwaartse trend en we verwachten dat ze na een langere zijwaartse periode weer een hoge positie zullen innemen. (dit is geen beleggingsadvies)
De eerste hype
voor de Javascript taal is te zien in dezelfde grafiek. De conclusies en de analyse laat ik aan jou, beste lezer, over.
Maar ja, een uitstervende taal zou het aantal vacatures voor programmeurs niet moeten verhogen, toch?
Op het moment dat ik dit artikel schrijf, kan ik kiezen uit 171 vacatures op een van de grootste vacatureportalen in Nederland. Polenwaarvan maar liefst 50 voor junioren. PHP is stervende, toch?
En over geld gesproken... wist je dat PHP en zijn bron code wordt sinds november 2021 onderhouden door de onafhankelijk Open Source gemeenschapDe Stichting PHP die betaalt veel geld aan OpenSource-ontwikkelaars voor bijdragen aan php-src
?
In tegenstelling tot andere talen en frameworks, die vaak eigendom zijn van grote bedrijven, is de kern van de ontwikkeling team wordt rechtstreeks betaald uit de rekening van de stichting die wordt gerund door bijdragen van particuliere bedrijven zoals JetBrains en Symfony Corp, maar ook doorkleine bijdragen van individuele ontwikkelaars.
Open Source in al zijn glorie!
Ja, dit argument komt altijd uit de mond van ontwikkelaars die bekend zijn geraakt met sterk getypte, vergelijkbare talen.
Als je kijkt naar de grafiek van gegevens die zijn verzameld tijdens deStackOverflow onderzoek van 2021 kun je zien dat maar liefst 10.834 respondenten, wat neerkomt op bijna 60% van het totaal, PHP "vreselijk" vonden.
Als een ouderwetse PHP programmeurIk begrijp waarom dit zo is. Ik moet meteen denken aan een klassiek voorbeeld van geheugenproblemen in PHP:
<?php
klasse FOO {
openbaar $f;
}
klasse BAR {
public $f;
}
while(1) {
$a = nieuwe FOO();
$b = nieuwe BAR();
$a->f = $b;
$b->f = $a;
print "Geheugengebruik: " . number_format(memory_get_usage(true)) . " bytesn";
unset($a);
unset($b);
}
Voor de niet-ingewijden - ja, de bovenstaande code veroorzaakt een geheugenfout. En er is meer. Van de idiote naamgeving van methoden en het complete gebrek aan logica in de volgorde van hun parameters (ja, we houden allemaal van str_
en matrix_
) tot de beroemdste bug van PHP T_PAAMAYIM_NEKOEDOTAYIM
- PHP zit vol eigenaardigheden en ondeugden van oude versies. Dit betekent niet dat wat we hoorden over PHP een paar jaar geleden is nog steeds waar. De taal heeft een enorme metamorfose ondergaan en vandaag kijk ik met plezier naar mijn objectdefinities:
readonly klasse Kennisgevinggebeurtenis
{
publieke functie __construct(
openbare string $context,
openbare gebruiker $user,
openbare string $body,
public DateTime $issuedAt,
) {}
}
Bovendien is de PHP ecosysteem is enorm gegroeid en we hebben nu ongelooflijke mogelijkheden om goede, zeer getypeerde en goed geteste code te maken. We kunnen Symfony om DDD-toepassingen te ontwikkelen zonder grote problemen en we kunnen het probleem van de synchroniciteit van PHP omzeilen door Message Bus te gebruiken.
En hoewel ik zelf niet denk dat PHP geschikt is voor het maken van langlevende backendprocessen en enorme prestatieproblemen heeft als het gaat om statussynchronisatie, heb ik ookeen PHP consolegame gemaakt Symfony + Docker gebruiken met mijn eigen handen als voorbeeld dat PHP nog steeds onconventionele toepassingen kan hebben.
Nog een voordeel van PHP is de lage instapdrempel voor nieuwe ontwikkelaars. Documentaties van twee populaire frameworks Symfony enLaravel en PHP documentatie zelf zijn voldoende om met hun hulp de backendwereld binnen te gaan. Een wereld die niet perfect is in PHP, maar veel mogelijk maakt. Met behulp van extra bibliotheken zoals Laravel Nova kunnen we bijna elk onderdeel van ons systeem maken met slechts twee opdrachten.
Is PHP stervende?
Nee, maar het heeft een imagoprobleem en er is veel werk nodig om het te verbeteren. Wij, de programmeurs, moeten dit werk doen door de nieuwe generatie te onderwijzen en best practices door te geven in de vorm van artikelen, bibliotheken en tips.
Als taal die op de markt al twintig jaar, die al meer dan één hype
(Herinner je je Objective-C?) Ik denk dat het zich wel zal redden en zijn niche zal vinden.
En wie weet, misschien kloppen mijn voorspellingen wel en is PHP 10.x over twee jaar weer booming?