window.pipedriveLeadboosterConfig = { base: leadbooster-chat.pipedrive.com', companyId: 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', version: 2, } ;(function () { var w = window if (w.LeadBooster) { console.warn('LeadBooster on juba olemas') } else { w.LeadBooster = { q: [], on: function (n, h) { this.q.push({ t: 'o', n: n, h: h }) }, trigger: function (n) { this.q.push({ t: 't', n: n }) }, } } })() Kaks põhjust, miks te ei peaks kasutama PHP - The Codest
The Codest
  • Meie kohta
  • Teenused
    • Tarkvaraarendus
      • Frontend arendus
      • Backend arendus
    • Staff Augmentation
      • Frontend arendajad
      • Backend arendajad
      • Andmeinsenerid
      • Pilveinsenerid
      • QA insenerid
      • Muud
    • See nõuandev
      • Audit ja nõustamine
  • Tööstusharud
    • Fintech & pangandus
    • E-commerce
    • Adtech
    • Healthtech
    • Tootmine
    • Logistika
    • Autotööstus
    • IOT
  • Väärtus
    • CEO
    • CTO
    • Tarnejuht
  • Meie meeskond
  • Case Studies
  • Tea kuidas
    • Blogi
    • Kohtumised
    • Veebiseminarid
    • Ressursid
Karjäärivõimalused Võtke ühendust
  • Meie kohta
  • Teenused
    • Tarkvaraarendus
      • Frontend arendus
      • Backend arendus
    • Staff Augmentation
      • Frontend arendajad
      • Backend arendajad
      • Andmeinsenerid
      • Pilveinsenerid
      • QA insenerid
      • Muud
    • See nõuandev
      • Audit ja nõustamine
  • Väärtus
    • CEO
    • CTO
    • Tarnejuht
  • Meie meeskond
  • Case Studies
  • Tea kuidas
    • Blogi
    • Kohtumised
    • Veebiseminarid
    • Ressursid
Karjäärivõimalused Võtke ühendust
Tagasi nool TAGASI
2022-06-28
Tarkvaraarendus

Kaks põhjust, miks te ei peaks kasutama PHP

The Codest

Sebastian Luczak

PHP Üksuse juht

PHP arendajana mäletan veel PHP4 päevi, esimest (vabatahtlikku!) GC rakendamist PHP5-s, ja ma elasin läbi PHP7 tuleku _hüpe_ ja selle tagajärjed.

Aastate jooksul on paljud inimesed küsinud minult, miks ma viitsin programmeerimine PHP, ja aastaid olen kuulnud nagu mantrat kaks korduvat argumenti, miks ma peaksin lõpetama ja hakkama kirjutama kommertstarkvara sellistes keeltes nagu Java või C#.
​
Täna ma tsiteerin neid argumente ja püüan muuta teie suhtumist PHP vähemalt natuke. Jah, selle artikli pealkiri on absurdne clickbait.

​
pilt
​

#1 PHP sureb.

​
PHP sureb aasta-aastalt. Kunagi kõige populaarsem veebikeel kaotab nüüd kuude kaupa populaarsust, peamiselt seetõttu, et JavaScript.

​
Kui vaadata numbreid, on tõde kainestav! Viimase aasta jooksul, PHP kaotas oma osakaalust veebi taustakeelena hämmastavalt 1,6%.

​
Kui PHP jätkab seda langustrendi, 18 aasta jooksul PHP langeb alla 50% backend veebitehnoloogia!

​
Ajaloolised suundumused veebisaitide serveripoolsete programmeerimiskeelte kasutamisstatistikas

​
Aga okei, nalja kõrvale jättes - kuigi numbrid on reaalsed nagu teatas W3CTechs.

Esimene mainimine, et PHP on suremas võib leida veebis alates 2013. aastast. Toona tarkvara Gunslinger avaldas artikli (mida ma muide väga soovitan!), öeldes, et PHP sureb, sest see ei toeta pikaajalisi protsesse ja kuna tal puudub asünkroonsus.

​
Ja see on fakt, PHP ei ole selleks loodud!

​

kui sul on ainult haamer, siis kõik näeb välja nagu nael.

​
Kuid tagasi numbrite juurde - vaatame eelmise aasta andmeid järgmise aasta kohta PHP Packagisti pakettides kasutatavad versioonid. Viimased andmed on kättesaadavad lähtekohas packagist.org

Pakettide paigaldamine PHP väiksema versiooni graafiku järgi

​
Kas see on sureva programmeerimiskeele uute versioonide vastuvõtukõver?

​
Kui sellest ei piisa, siis kontrollime meie "PHP surmajuhtumite arvu" teiste keelte suhtes.
​

Analüüsi andmed on võetud järgmistest allikatestGitHut 2.0, mis genereerib graafiku arvu git push keele kohta Githubile alates 2012. aastast, vastavalt skeemile - "Joonegraafiku keelte protsentuaalne jaotus näitab 10 parimat (või käsitsi valitud) keelt alates 2012/Q2".

programmeerimiskeele protsentuaalse jaotuse graafik

​
Nagu näete PHP samuti muudes populaarsetes keeltes nagu Ruby, C/C++, Python on Githubis viimastel aastatel kogenud märkimisväärset populaarsuse langust, kuid seal on tõusutrend ja me ootame, et nad jõuavad pärast pikemat külgsuunalist perioodi taas kõrgetele positsioonidele. (see ei ole investeerimisnõustamine)

​
Esialgne hype Javascripti keele puhul on näha samal graafikul. Jätan järeldused ja selle analüüsi juba teile, lugupeetud lugeja.

​
pilt

​
Aga samas - surev keel ei tohiks ju suurendada programmeerijate tööpakkumiste arvu, eks ole?
​

pilt

​
Selle artikli kirjutamise hetkel saan valida 171 tööpakkumise hulgast ühes juhtivas tööportaalis aastal Poola, millest koguni 50 on mõeldud juunioridele. PHP sureb, eks?
​

PHP meme - php sureb

Ja kui rääkida rahast... kas teadsite, et PHP ja selle allikas kood on alates novembrist 2021 säilitanud sõltumatu avatud lähtekoodiga kogukondSihtasutus PHP mis maksab märkimisväärset raha OpenSource'i arendajatele panuse eest php-src?

Erinevalt teistest keeltest ja raamistikest, mis on sageli suurte ettevõtete omanduses, on põhiline arenduse meeskond makstakse otse sihtasutuse kontolt, mida haldavad eraettevõtete, nagu JetBrains ja Symfony Corp, aga kaüksikute arendajate väikesed panused.

Avatud lähtekood kogu oma hiilguses!

​

#2 PHP on kohutav

​

Jah, see väide tuleb alati nende arendajate suust, kes on tutvunud tugevalt tüpiseeritud, võrreldavate keeltega.
​
Vaadates graafikut andmete kogutud ajalStackOverflow uuring 2021. aastast, näete, et koguni 10 834 vastajat, kes esindavad peaaegu 60% koguarvust, pidasid PHP "kohutavaks".

​
pilt
​
Nagu vanakooli PHP programmeerija, ma saan aru, miks see nii on. Mulle meenub kohe klassikaline näide mäluprobleemide kohta PHP:

<?php

klass FOO {
  public $f;
}

class 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);
}

Asjatundmatutele - jah, ülaltoodud kood põhjustab mäluvea. Ja on veel midagi. Alates meetodite idiootlikust nimetamisest ja täielikust loogika puudumisest nende parameetrite järjekorras (jah, me kõik armastame str_ ja array_) PHP kõige kuulsamale veale T_PAAMAYIM_NEKUDOTAYIM - PHP on täis vanade versioonide veidrusi ja vigu. See ei tähenda, et see, mida me kuulsime PHP mõned aastad tagasi, on endiselt tõsi. Keel on teinud läbi tohutu metamorfoosi ja täna vaatan hea meelega oma objektide definitsioone:

readonly class NotificationEvent
{
    public function __construct(
        public string $context,
        public User $user,
        public string $body,
        public DateTime $issuedAt,
    ) {}
}

Lisaks sellele on PHP ökosüsteem on tohutult kasvanud ja meil on nüüd uskumatud võimalused luua head, kõrgelt tüpiseeritud ja hästi testitud koodi. Me saame kasutada Symfony ​DDD rakenduste arendamiseks ilma suuremate probleemideta ja me saame PHP sünkroonimise probleemi lahendada, kasutades Message Bus'i.

Ja kuigi ma ise ei usu, et PHP sobib pikaealiste backend-protsesside loomiseks ja on tohutu jõudlusprobleemiga, kui tegemist on oleku sünkroniseerimisega, olen kalõi PHP konsoolimängu kasutades Symfony + Docker oma käega näitena, et PHP võib veel ebakonventsionaalselt kasutada.

​
Teine PHP eelis on selle madal sisenemisbarjäär uute arendajate jaoks. Kahe populaarse raamistiku dokumentatsioon Symfony jaLaravel ja PHP dokumentatsioon ise on piisav, et siseneda nende abil backend maailma. Maailm, mis ei ole täiuslik PHP, kuid võimaldab palju. Kasutades täiendavaid raamatukogusid, nagu Laravel Nova, oleme võimelised looma peaaegu iga meie süsteemi komponenti vaid kahe käsuga.

Afterglow

​
Kas PHP suremas?

Ei, kuid sellel on probleem kuvandiga ja selle parandamiseks on vaja palju tööd teha. Meie, programmeerijad, peame seda tööd tegema, õpetades uut põlvkonda ja andes edasi parimaid tavasid artiklite, raamatukogude ja näpunäidete kujul.

Keelena, mis on olnud turg kakskümmend aastat, mis on üle elanud juba rohkem kui ühe hype (mäletate Objective-C?) Ma arvan, et see tuleb toime ja leiab oma niši.
​
Ja kes teab, võib-olla osutuvad minu ennustused õigeks ja PHP 10.x hakkab kahe aasta pärast jälle õitsema?

koostööbänner

Seotud artiklid

Tarkvaraarendus

PHP 8.2: Mis on uus?

PHP uus versioon on kohe nurga taga. Milliseid uusi rakendusi peaksite teadma? Vaadake seda artiklit, et teada saada!

The Codest
Sebastian Luczak PHP Üksuse juht
Tarkvaraarendus

GraphQL: tootmises saadud õppetunnid

See on 2020. Teie meeskond kaldub üha enam ühe lehekülje rakenduste ehitamise poole või vähemalt lisab rikkalikke komponente tavalistesse mitme lehekülje rakendustesse. [GraphQL](https://graphql.org/) on nüüd [üle kahe aasta vana](https://en.wikipedia.org/wiki/GraphQL), mis...

Pawel Wal

Tellige meie teadmistebaas ja jääge kursis IT-sektori eksperditeadmistega.

    Meie kohta

    The Codest - rahvusvaheline tarkvaraarendusettevõte, mille tehnoloogiakeskused asuvad Poolas.

    Ühendkuningriik - peakorter

    • Büroo 303B, 182-184 High Street North E6 2JA
      London, Inglismaa

    Poola - kohalikud tehnoloogiakeskused

    • Fabryczna büroopark, Aleja
      Pokoju 18, 31-564 Kraków
    • Brain Embassy, Konstruktorska
      11, 02-673 Varssavi, Poola

      The Codest

    • Kodu
    • Meie kohta
    • Teenused
    • Case Studies
    • Tea kuidas
    • Karjäärivõimalused
    • Sõnastik

      Teenused

    • See nõuandev
    • Tarkvaraarendus
    • Backend arendus
    • Frontend arendus
    • Staff Augmentation
    • Backend arendajad
    • Pilveinsenerid
    • Andmeinsenerid
    • Muud
    • QA insenerid

      Ressursid

    • Faktid ja müüdid koostööst välise tarkvaraarenduspartneriga
    • USAst Euroopasse: Miks otsustavad Ameerika idufirmad Euroopasse ümber asuda?
    • Tech Offshore arenduskeskuste võrdlus: Euroopa (Poola), ASEAN (Filipiinid), Euraasia (Türgi).
    • Millised on CTO ja CIOde peamised väljakutsed?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • Website terms of use

    Copyright © 2025 by The Codest. Kõik õigused kaitstud.

    etEstonian
    en_USEnglish de_DEGerman sv_SESwedish da_DKDanish nb_NONorwegian fiFinnish fr_FRFrench pl_PLPolish arArabic it_ITItalian jaJapanese ko_KRKorean es_ESSpanish nl_NLDutch elGreek etEstonian