Kaip PHP kūrėjas vis dar prisimenu PHP4 dienas, pirmąjį (neprivalomą!) GC įgyvendinimą PHP5 ir išgyvenau PHP7 atsiradimo _hype_ ir jo pasekmes.
Per daugelį metų daugelis žmonių manęs klausė, kodėl aš stengiuosi programavimas PHP, ir jau daugelį metų kaip mantrą girdžiu du nuolat pasikartojančius argumentus, kodėl turėčiau nustoti rašyti komercinę programinę įrangą tokiomis kalbomis kaip Java arba C#. Šiandien pacituosiu šiuos argumentus ir pabandysiu pakeisti jūsų požiūrį į PHP bent šiek tiek. Taip, šio straipsnio pavadinimas yra absurdiškas "clickbait".
#1 PHP miršta
PHP kasmet miršta. Kadaise populiariausias žiniatinklio svetainė kalba dabar kas mėnesį praranda populiarumą, daugiausia dėl JavaScript.
Kai pažvelgiate į skaičius, tiesa yra blaivi! Per pastaruosius metus, PHP prarado stulbinančią 1,6% savo, kaip žiniatinklio galinės kalbos, dalį.
Jei PHP ir toliau tęsiasi ši mažėjimo tendencija, per 18 metų PHP nukris žemiau 50% galinės žiniatinklio technologijos!
Pirmasis paminėjimas, kad PHP miršta galima rasti internete nuo 2013 m. Tada programinė įranga Gunslinger paskelbė straipsnį (kurią, beje, labai rekomenduoju!), kuriame teigiama, kad PHP mirs, nes ji nepalaiko ilgai trunkančių procesų ir jai trūksta asinchroniškumo.
Ir tai yra faktas, PHP nebuvo tam sukurtas!
jei turi tik plaktuką, viskas atrodo kaip vinis
Tačiau grįžkime prie skaičių - pažvelkime į praėjusių metų duomenys svetainėje PHP "Packagist" paketuose naudojamos versijos. Naujausius duomenis galima rasti šaltinio svetainėje packagist.org
Ar tai yra mirštančios programavimo kalbos naujų versijų pritaikymo kreivė?
Jei to nepakanka, patikrinkime mūsų "PHP mirtingumo rodiklį" su kitomis kalbomis.
Duomenys analizei atlikti paimti išGitHut 2.0, kuris sukuria diagramą, kurioje pateikiamas skaičiaus git push kalbų į "Github" nuo 2012 m. pagal schemą - "Kalbos procentinis pasiskirstymas linijinėje diagramoje rodo 10 svarbiausių (arba rankiniu būdu pasirinktų) kalbų nuo 2012 m./II ketv.".
Kaip matote PHP taip pat kitomis populiariomis kalbomis, pvz. Ruby, C/C++, Python populiarumas "Github" pastaraisiais metais gerokai sumažėjo, tačiau pastebima augimo tendencija, todėl tikimės, kad po ilgesnio šoninio laikotarpio jos vėl užims aukštas pozicijas. (tai nėra patarimas dėl investavimo)
Pradinis triukšmas Javascript kalbos galima matyti toje pačioje diagramoje. Išvadas ir jų analizę jau palieku jums, gerbiamas skaitytojau.
Bet vėlgi - mirštanti kalba neturėtų didinti darbo pasiūlymų programuotojams skaičiaus, tiesa?
Šio straipsnio rašymo metu galiu rinktis iš 171 darbo pasiūlymo viename iš pirmaujančių darbo portalų. Lenkija, iš kurių net 50 skirta jaunesniųjų klasių moksleiviams. PHP miršta, tiesa?
Kalbant apie pinigus... ar žinojote, kad PHP ir jo šaltinis kodas nuo 2021 m. lapkričio mėn. nepriklausomas atviras šaltinis bendruomenėPHP fondas kuris moka didelius pinigus. atvirojo kodo kūrėjams už indėlį į php-src?
Skirtingai nuo kitų kalbų ir struktūrų, kurios dažnai priklauso didelėms bendrovėms, pagrindinis kūrimo komanda mokama tiesiogiai iš fondo sąskaitos, kuri finansuojama privačių bendrovių, tokių kaip "JetBrains" ir "Symfony Corp", įnašais, taip pat išnedideli atskirų kūrėjų įnašai..
Atvirasis kodas visu savo grožiu!
#2 PHP yra siaubingas
Taip, šis argumentas visada skamba iš kūrėjų, susipažinusių su stipriai tipizuotomis, palyginamomis kalbomis, lūpų. Žvelgiant į per tyrimą surinktų duomenų grafikąStackOverflow apklausa 2021 m., matote, kad net 10 834 respondentai, sudarantys beveik 60% visų respondentų, mano, kad PHP yra "siaubingas".
Kaip senosios mokyklos PHP programatorius, suprantu, kodėl taip yra. Iš karto prisimenu klasikinį atminties problemų pavyzdį PHP:
<?php
klasė FOO {
public $f;
}
klasė BAR {
public $f;
}
while(1) {
$a = new FOO();
$b = new BAR();
$a->f = $b;
$b->f = $a;
print "Memory usage: " . number_format(memory_get_usage(true)) . " bytesn";
unset($a);
unset($b);
}
Nesuprantantiems - taip, pirmiau pateiktas kodas sukelia atminties klaidą. Ir dar daugiau. Nuo idiotiško metodų pavadinimo ir visiško logikos trūkumo jų parametrų eiliškumo atžvilgiu (taip, mes visi mėgstame str_ ir array_) iki PHP garsiausios klaidos T_PAAMAYIM_NEKUDOTAYIM - PHP yra pilna senųjų versijų keistenybių ir ydų. Tai nereiškia, kad tai, apie ką girdėjome PHP prieš kelerius metus, vis dar yra tiesa. Kalba patyrė didžiulę metamorfozę ir šiandien mielai žiūriu į savo objektų apibrėžimus:
readonly klasė NotificationEvent
{
viešoji funkcija __construct(
public string $context,
public User $user,
public string $body,
public DateTime $issuedAt,
) {}
}
Be to, PHP ekosistema labai išaugo ir dabar turime neįtikėtinų galimybių kurti gerą, gerai tipizuotą ir išbandytą kodą. Galime naudoti Symfony kurti DDD programas. be didesnių problemų, o PHP sinchronizacijos problemą galime išspręsti naudodami pranešimų magistralę.
Ir nors aš pats nemanau, kad PHP yra tinkama kurti ilgai veikiančius galinius procesus ir turi didelių našumo problemų, kai kalbama apie būsenos sinchronizavimą, aš taip patsukūrė PHP konsolinį žaidimą naudojant Symfony + "Docker" savo rankomis kaip pavyzdį, kad PHP vis dar gali būti naudojamas netradiciškai.
Kitas PHP privalumas tai mažas įėjimo į rinką barjeras naujiems kūrėjams. Dviejų populiarių karkasų Symfony irLaravel ir PHP dokumentų pakanka, kad su jų pagalba galėtumėte įžengti į backend pasaulį. Pasaulį, kuris nėra tobulas PHP, bet leidžia daug ką. Naudojant papildomas bibliotekas, pvz. Laravel Nova galime sukurti beveik bet kurį savo sistemos komponentą naudodami tik dvi komandas.
Afterglow
Ar PHP miršta?
Ne, tačiau ji turi įvaizdžio problemų ir jai pagerinti reikia daug dirbti. Šį darbą turime atlikti mes, programuotojai, mokydami naująją kartą ir perduodami geriausią praktiką straipsnių, bibliotekų ir patarimų forma.
Kaip kalba, kuri buvo rinka dvidešimt metų, kuris jau išgyveno daugiau nei vieną triukšmas (prisimenate Objective-C?) Manau, kad ji susidoros ir atras savo nišą. Ir kas žino, gal mano prognozės pasitvirtins ir po dvejų metų PHP 10.x vėl suklestės?