PHP 8.2: Mitä uutta?
Uusi versio PHP:stä on aivan nurkan takana. Mitkä ovat ne uudet toteutukset, joista sinun tulisi tietää? Tutustu tähän artikkeliin ja ota selvää!
PHP-kehittäjänä muistan yhä PHP4:n päivät, ensimmäisen (valinnaisen!) GC-toteutuksen PHP5:ssä, ja elin PHP7:n tulon ja sen seurausten _hype_ aikana.
Vuosien varrella monet ihmiset ovat kysyneet minulta, miksi vaivaudun - ohjelmointi PHP, ja monien vuosien ajan olen kuullut kuin mantraa kaksi toistuvaa perustelua sille, miksi minun pitäisi lopettaa kaupallisten ohjelmistojen kirjoittaminen ja alkaa kirjoittaa kaupallisia ohjelmistoja sellaisilla kielillä kuin Java tai C#.
Tänään lainaan näitä perusteluja ja yritän muuttaa suhtautumistanne seuraaviin asioihin. PHP ainakin hieman. Kyllä, tämän artikkelin otsikko on absurdi clickbait.
PHP kuolee vuosi toisensa jälkeen. Aikoinaan suosituin verkkokieli menettää nyt suosiotaan kuukausi kuukaudelta, enimmäkseen koska JavaScript.
Kun tarkastellaan numeroita, totuus on raitistuttava! Viime vuoden aikana, PHP menetti huikeat 1,6% osuudestaan webin taustakielenä.
Jos PHP jatkaa tätä laskusuuntausta, 18 vuoden aikana PHP putoaa alle 50% backend Web-teknologian!
Mutta okei, vitsit sikseen - vaikka luvut ovatkin todellisia. W3CTechsin ilmoituksen mukaan.
Ensimmäinen maininta, että PHP on kuolemaisillaan löytyy verkosta vuodesta 2013 lähtien. Silloin Software Gunslinger julkaisi artikkelin (jota muuten suosittelen lämpimästi!), jonka mukaan PHP kuolee, koska se ei tue pitkäikäisiä prosesseja ja koska siitä puuttuu asynkronisuus.
Ja se on tosiasia, PHP ei ole tehty sitä varten!
jos sinulla on vain vasara, kaikki näyttää naulalta...
Mutta takaisin lukuihin - tarkastellaanpa viime vuoden tietoja seuraavista asioista PHP Packagist-paketeissa käytetyt versiot. Uusimmat tiedot ovat saatavilla lähdesivustolla packagist.org
Onko tämä kuolevan ohjelmointikielen uusien versioiden omaksumiskäyrä?
Jos tämä ei riitä, tarkistetaanpa "PHP-kuolleisuusaste" muihin kieliin verrattuna.
Analyysin tiedot ovat peräisinGitHut 2.0, joka luo kaavion, jossa on esitetty määrä git push
kielikohtaisesti Githubiin vuodesta 2012 lähtien, järjestelmän mukaan - "Viivakaavion kieliprosenttijakauma osoittaa 10 tärkeintä (tai manuaalisesti valittua) kieltä vuodesta 2012/Q2 lähtien".
Kuten näette PHP sekä muita suosittuja kieliä, kuten Ruby, C/C++, Python ovat kokeneet merkittävän suosion laskun Githubissa viime vuosina, mutta suuntaus on kuitenkin nouseva, ja odotamme niiden palaavan korkeille sijoille pidemmän sivujakson jälkeen. (tämä ei ole sijoitusneuvontaa)
Alkuperäinen hype
Javascript-kielen osalta voidaan nähdä samassa kaaviossa. Jätän johtopäätökset ja niiden analysoinnin jo sinulle, hyvä lukija.
Mutta toisaalta - kuolevan kielen ei pitäisi lisätä ohjelmoijien työtarjousten määrää, eikö niin?
Tätä artikkelia kirjoittaessani voin valita 171 työtarjouksen joukosta eräässä johtavista työportaaleista vuonna Puola, joista jopa 50 on tarkoitettu junioreille. PHP on kuolemassa, eikö?
Ja rahasta puheen ollen... tiesitkö, että... PHP ja sen lähde koodi on ylläpitänyt marraskuusta 2021 lähtien riippumaton avoin lähdekoodi yhteisöPHP-säätiö joka maksaa huomattavia summia avoimen lähdekoodin kehittäjille, jotka osallistuvat php-src
?
Toisin kuin muut kielet ja kehykset, jotka ovat usein suurten yritysten omistuksessa, ydinkehityksen joukkue maksetaan suoraan säätiön tililtä, jota pyöritetään yksityisten yritysten, kuten JetBrainsin ja Symfony Corp:n, mutta myös yksityisten yritysten, kutenyksittäisten kehittäjien pienet panokset.
Avoin lähdekoodi kaikessa loistossaan!
Kyllä, tämä väite tulee aina sellaisten kehittäjien suusta, jotka ovat tutustuneet vahvasti tyypitettyihin, vertailukelpoisiin kieliin.
Tarkasteltaessa kuvaajaa kerätyt tiedot aikanaStackOverflow-kysely vuoden 2021 vastauksista näet, että peräti 10 834 vastaajaa, jotka edustavat lähes 60% kaikista vastaajista, pitivät PHP:tä "kauheana".
Vanhan koulukunnan PHP-ohjelmoija, ymmärrän, miksi näin on. Minulle tulee heti mieleen klassinen esimerkki muistiongelmista. PHP:
<?php
luokka FOO {
public $f;
}
class BAR {
public $f;
}
while(1) {
$a = uusi FOO();
$b = uusi BAR();
$a->f = $b;
$b->f = $a;
print "Muistin käyttö: " . number_format(memory_get_usage(true)) . " bytesn";
unset($a);
unset($b);
}
Asiaan perehtymättömille - kyllä, yllä oleva koodi aiheuttaa muistivirheen. Ja on vielä muutakin. Metodien idioottimaisesta nimeämisestä ja täydellisestä logiikan puutteesta niiden parametrien järjestyksessä (kyllä, me kaikki rakastamme metodeja). str_
ja ...ja se on vain yksi... ...ja se on vain yksi.
) PHP:n kuuluisimpaan virheeseen. T_PAAMAYIM_NEKUDOTAYIM
- PHP on täynnä vanhojen versioiden omituisuuksia ja paheita. Tämä ei tarkoita sitä, että se, mitä kuulimme PHP muutama vuosi sitten on edelleen totta. Kieli on kokenut valtavan muodonmuutoksen, ja tänään katson mielelläni objektimääritelmiäni:
readonly class NotificationEvent
{
public function __construct(
public string $context,
public User $user,
public string $body,
public DateTime $issuedAt,
) {}
}
Lisäksi PHP-ekosysteemi on kasvanut valtavasti, ja meillä on nyt uskomattomat mahdollisuudet luoda hyvää, pitkälle tyypitettyä ja hyvin testattua koodia. Voimme käyttää Symfony DDD-sovellusten kehittäminen ilman suurempia ongelmia, ja voimme kiertää PHP:n synkronointiongelman Message Busin avulla.
Ja vaikka itse en usko, että PHP soveltuu pitkäikäisten backend-prosessien luomiseen ja sillä on valtavia suorituskykyongelmia tilan synkronoinnin suhteen, olen myös tehnytloi PHP-konsolipelin käyttämällä Symfony + Docker -ohjelmia omin käsin esimerkkinä siitä, että PHP:llä voi olla edelleen epätavanomaisia käyttötarkoituksia.
Toinen PHP:n etu on sen matala kynnys tulla markkinoille uusille kehittäjille. Kahden suositun kehyksen dokumentit Symfony jaLaravel ja PHP dokumentaatio itsessään riittää, jotta pääset backend-maailmaan niiden avulla. Maailma, joka ei ole täydellinen PHP mutta mahdollistaa paljon. Käyttämällä lisäkirjastoja, kuten Laravel Novaa, voimme luoda lähes minkä tahansa järjestelmämme komponentin vain kahdella komennolla.
Onko PHP Kuolemassa?
Ei, mutta sillä on imago-ongelma, ja sen parantamiseksi on tehtävä paljon työtä. Meidän ohjelmoijien on tehtävä tämä työ opettamalla uutta sukupolvea ja välittämällä parhaita käytäntöjä artikkeleiden, kirjastojen ja vinkkien muodossa.
Kielenä, joka on ollut markkinat kahdenkymmenen vuoden ajan, joka on selvinnyt jo yli yhdestä hype
(Muistatko Objective-C:n?) Uskon, että se selviää ja löytää paikkansa.
Ja kuka tietää, ehkäpä ennustukseni osoittautuvat oikeiksi ja PHP 10.x nousee jälleen nousuun kahden vuoden kuluttua?