Programavimas

„Node.js“ ir „PHP“: epinė kova už kūrėjų „mindshare“

Tai klasikinis Holivudo siužetas: dviejų senų draugų, kurie nuėjo skirtingais keliais, kova. Dažnai trintis prasideda tada, kai vienas bičiulis suinteresuotas tuo, kas visada buvo neišpasakyta kito draugo sritis. Šio filmo programavimo kalbos versijoje tai yra „Node.js“ įvedimas, kuris bičiulį paverčia nuoskauda: PHP ir „JavaScript“ - du partneriai, kurie kažkada kartu valdė internetą, tačiau dabar tai siekia kūrėjų proto.

Senais laikais partnerystė buvo paprasta. „JavaScript“ naršyklėje tvarkė mažai informacijos, o PHP valdė visas serverio užduotis tarp 80 prievado ir „MySQL“. Tai buvo laiminga sąjunga, kuri ir toliau palaiko daugelį itin svarbių interneto dalių. Tarp „WordPress“, „Drupal“ ir „Facebook“ žmonės vargu ar gali praleisti minutę internete, nepaleisdami PHP.

Tada koks sumanus vaikas atrado, kad jis gali paleisti „JavaScript“ serveryje. Staiga nereikėjo naudoti PHP kuriant naujos kartos serverių paketus. Vienos kalbos pakako sukurti „Node.js“ ir klientui veikiančias sistemas. „Visur„ JavaScript “kai kuriems tapo mantra.

Nuo to atradimo „JavaScript“ sprogo. „Node.js“ kūrėjai dabar gali rinktis tarp nuolat besiplečiančių puikių karkasų ir pastolių kolekcijos: „React“, „Vue“, „Express“, „Angular“, „Meteor“ ir kt. Sąrašas yra ilgas, o didžiausia problema yra pasirinkimas tarp puikių variantų.

Kai kurie žiūri į „Node.js“ bumą kaip įrodymą, kad „JavaScript“ lemiamai laimi, ir yra daugybė neapdorotų duomenų, kurie patvirtintų šį vaizdą. „GitHub“ praneša, kad „JavaScript“ yra populiariausia jo saugyklų kalba, be to, sparčiai auga ir „Kissing“ pusbrolis „TypeScript“. Daugelis šauniausių projektų yra parašyti „JavaScript“ ir daugelis populiariausių žymų su juo žymimi. Tuo tarpu PHP šiame reitinge iš trečios vietos nukrito į ketvirtą vietą ir, ko gero, ji dar labiau sumažėjo skaičiuojant pranešimus spaudai, produktų išleidimą ir kitas labai reklamuojamas akimirkas.

Tačiau ažiotažas išnyksta ir programinė įranga gali išlikti dešimtmečius. Didžioji dalis PHP kodų bazės nebus perkelta ir ji ir toliau aptarnauja dideles dalis teksto, kurį skaitome kiekvieną dieną. Kai kuriais vertinimais, 40 procentų peržiūrimų puslapių tam tikra forma prasideda nuo PHP. Dalis to yra todėl, kad PHP ir toliau atgimsta. Per pastaruosius kelerius metus PHP valdančių sistemų žarnynas buvo visiškai perrašytas. Tai nėra tas pats PHP kodas, kuris valdė jūsų senelio svetainę.

„PHP“ greitas kompiliatorius pateikia atsakymus greičiau nei bet kada anksčiau dėl tų pačių išmaniųjų metodų, kurie paskatino „Node.js“ revoliuciją. Dabar PHP 7.2 ir HHVM siūlo daugybę tų pačių protingų optimizavimų skrendant, kuriuos V8 suteikė „Chrome“ ir „Node.js“. Maža to, HHVM turi „Hack“ - protingą PHP dialektą, kuris suteikia visišką palaikymą sudėtingoms programavimo funkcijoms, tokioms kaip lambdas, generikai ir kolekcijos. Taigi, jei jums reikia šių funkcijų, jums nereikia ieškoti daugiau funkcijų kamino.

Žinoma, pabaiga dar nerašyta. Kiekvienam koduotojui, kuris visur domisi „Node.js“ grynumu ir jaunumu bei „JavaScript“ paprastumu, yra dar vienas, kuris džiaugiasi gilia kodo baze ir seniai suprantamu PHP stabilumu. Ar senasis koduotojas atkreips serverio pusę į priekį? Ar „JavaScript“ nuvers savo seną draugą, kad pasiektų pasaulio dominavimą? Į mikrobangų krosnelę įdėkite dar vieną spragintų kukurūzų partiją ir atsisėskite.

Kur laimi PHP: Kodo maišymas su turiniu

Jūs rašote kartu, pilate mintis į savo svetainės tekstą ir norite prie proceso pridėti šaką, mažą teiginį „jei“, kad jis atrodytų gražiai, tarkime, atsižvelgiant į tam tikrą URL parametrą. O gal norite įmaišyti tekstą ar duomenis iš duomenų bazės. Naudodamiesi PHP, atidarote stebuklingas PHP žymas ir pradedate rašyti kodą per kelias sekundes. Šablonų nereikia - viskas yra šablonas! Nereikia jokių papildomų failų ar sudėtingos architektūros, tik programuojama logistinė galia ranka pasiekiama.

Kur laimi mazgas: atskirti rūpesčius

Maišyti kodą su turiniu yra ramentas, kuris gali jus suluošinti. Žinoma, smagu maišyti kodą su HTML pirmuosius du ar tris kartus, kai tai darai. Tačiau netrukus jūsų kodų bazė tampa sumišusi logika. Tikri programuotojai prideda struktūrą ir atskiria kosmetikos sluoksnį nuo loginio sluoksnio. Naujiems programuotojams yra švariau suprasti ir lengviau prižiūrėti. „Node.js“ veikiančias sistemas kuria programuotojai, žinantys, kad gyvenimas yra geresnis, kai modelis, vaizdas ir valdiklis yra atskiri.

Kur laimi PHP: Gili kodo bazė

Žiniatinklis užpildytas PHP kodu. Populiariausios svetainių kūrimo platformos (WordPress, Drupal, Joomla) yra parašytos PHP. Platformos yra ne tik atviro kodo, bet ir dauguma jų papildinių. Visur yra PHP kodas ir jis laukia, kol atsisiųsite, modifikuosite ir naudosite savo poreikiams.

Kur laimi mazgas: modernesnės savybės

Žinoma, yra tūkstančiai puikių atvirojo kodo PHP failų, tačiau kai kurie iš jų yra 12 metų senumo „WordPress“ papildiniai, kurie tikisi ir meldžiasi, kad kas nors juos atsisiųstų. Kiekvienai šiuolaikinei „Symfony“ versijai yra dulkėta, seniai pamiršta biblioteka, kurios niekas neatnaujina.

Kas nori praleisti valandas, dienas ar savaites beždžiones naudodamas kodą, kuris nebuvo atnaujintas metų metus? „Node.js“ papildiniai yra ne tik naujesni, bet ir sukurti kuriant visas žinias apie naujausius architektūros požiūrius. Juos sukūrė programuotojai, suprantantys, kad šiuolaikinės žiniatinklio programos klientui turėtų perduoti didžiąją dalį intelekto.

Nors „JavaScript“ turi daug mažų savitumų, kurie kai kuriuos išprotėja, didžiąja dalimi tai yra moderni kalba, kuri sportuoja modernia sintakse ir keliomis naudingomis funkcijomis, tokiomis kaip uždarymas. Galite lengvai perkonfigūruoti ir išplėsti, kad galėtumėte naudotis tokiomis galingomis bibliotekomis kaip „jQuery“. Galite perduoti funkcijas kaip objektus. Kodėl reikia save riboti?

Kur laimi PHP: paprastumas (rūšis)

PHP nėra daug: keli kintamieji ir pagrindinės funkcijos, skirtos žongliruoti eilutėmis ir skaičiais. Tai yra plonas sluoksnis, kuris nedaro daug, išskyrus duomenų perkėlimą iš 80 prievado į duomenų bazę ir atgal. Tai ir turėtų daryti. Šiuolaikinė duomenų bazė yra stebuklinga priemonė, ir prasminga palikti jai sunkų kėlimą. PHP yra tinkamas sudėtingumas darbui, kuris neva nėra sudėtingas.

Vėlgi, jei esate programuotojas, norintis daugiau nei bendrauti su duomenų baze ir formatuoti rezultatus, dabar galite padaryti daugiau naudodami PHP nelaikydami nosies. „Facebook“ HHVM taip pat palaiko „Hack“, pilną kalbą, užpildytą šiuolaikinėmis funkcijomis, pvz., Tipo anotacijomis, generikais ir lambda posakiais. Naudojant tai, jūsų kodas apribojamas paleidimu tik HHVM, tačiau tai nėra blogiausias dalykas pasaulyje. Tai labai greita.

Kur laimi mazgas: dešimtys kalbos variantų

Jei PHP vartotojai mielai gauna prieigą prie „Hack“, jie turėtų apsvarstyti galimybę pereiti į „Node.js“ pasaulį, nes daugelį pagrindinių kalbų galima sukompiliuoti, kad jos veiktų „JavaScript“. Yra gerai žinomų variantų, tokių kaip „Java“, „C #“ ar „Lisp“, ir dar dešimtys kitų, tokių kaip „Scala“, „OCaml“ ir „Haskell“. Yra net dovanų nostalgiškiems BASIC ar Pascal mėgėjams. Šis Jeremy Ashkenaso kalbų, kurias sudaro „JavaScript“, sąrašas yra gana išsamus. Be to, „JavaScript“ pusbroliai, tokie kaip „TypeScript“ ir „CoffeeScript“, siūlo šiek tiek skirtingus ir patobulintus požiūrius į tą patį žaidimą.

Kur laimi PHP: nereikia kliento programos

Puikiai kalba apie tą pačią kalbą naršyklėje ir serveryje, bet ką daryti, jei jums nereikia naudoti jokios kalbos naršyklėje? Ką daryti, jei duomenis siunčiate HTML forma? Ką daryti, jei kuriate spartietišką, statišką svetainę, kad galėtumėte pateikti griežtai tai, ko reikia be interaktyvaus blingo? Naršyklė jį iššoka ir nėra galvos skausmo ar trikdžių, kuriuos sukelia netinkamai veikiančios „JavaScript“ gijos, bandančios sukurti puslapį naršyklėje iš dviejų dešimčių žiniatinklio paslaugų skambučių. Grynas HTML veikia dažniau nei bet kas kitas, o PHP yra optimizuotas tam sukurti. Kodėl verta vargintis su „JavaScript“ naršyklėje? Sukurkite viską serveryje ir išvenkite mažos naršyklės perkrovos mažame telefone.

Kur laimi mazgas: tarnybiniai skambučiai yra plonesni nei HTML riebalų turinčių PHP skambučių

Nors beprotiškose AJAX žiniatinklio programose HTML5 gali būti per daug judančių dalių, jos yra šaunios ir labai efektyvios. Kai „JavaScript“ kodas yra naršyklės talpykloje, vieninteliai laidais judantys dalykai yra nauji duomenys. Nėra daug HTML žymėjimo ir nėra jokių pakartotinių kelionių norint atsisiųsti visą puslapį. Pasikeitė tik duomenys. Jei esate pasirengęs skirti laiko, kad sukurtumėte paprastą naršyklės žiniatinklio programą, reikia daug išmokėti. „Node.js“ yra optimizuotas teikti duomenis ir tik duomenis per žiniatinklio paslaugas. Jei jūsų programa yra sudėtinga ir turtinga duomenimis, tai yra geras pagrindas efektyviam pristatymui.

Kur laimi PHP: SQL

PHP buvo sukurtas taip, kad egzistuotų kartu su „MySQL“ ir daugybe jo variantų, pavyzdžiui, „MariaDB“. Jei „MySQL“ nėra visiškai teisinga, yra ir kitų puikių „Oracle“ ir „Microsoft“ SQL duomenų bazių. Kodas gali būti pakeistas atlikus keletą užklausų pakeitimų. Didžiulis SQL pasaulis nesibaigia ties savo sienomis. Kai kurie stabiliausių, gerai išvystytų kodų sąsajos su SQL duomenų baze reiškia, kad visa ta galia taip pat gali būti lengvai integruota į PHP projektą. Tai gali būti ne viena tobula, laiminga šeima, bet didelė. Negana to, duomenų bazių pasaulis pamažu gerėja, nes kūrėjai randa būdų, kaip į duomenų bazę įtraukti daugiau intelekto, kad nereikėtų dirbti taip sunkiai.

Kur laimi „Node.js“: JSON

Jei turite turėti prieigą prie SQL, „Node.js“ turi bibliotekas tai padaryti. Tačiau „Node.js“ taip pat kalba su JSON, lingua franca, sąveikaujančiu su daugeliu naujausių „NoSQL“ duomenų bazių. Tai nereiškia, kad negalite gauti JSON bibliotekų savo PHP kaminui, tačiau naudojant „JavaScript“ yra paprastas darbas su JSON. Tai viena sintaksė iš naršyklės į interneto serverį į duomenų bazę. Dvitaškiai ir garbanoti skliaustai visur veikia vienodai. Vien tai išgelbės jus nuo kelių valandų nusivylimo.

Kur laimi PHP: kodavimo greitis

Daugumai kūrėjų PHP rašymas žiniatinklio programoms yra greitesnis: nėra kompiliatorių, nėra diegimo, nėra JAR failų ar išankstinių procesorių - tiesiog jūsų mėgstamiausias redaktorius ir kai kurie PHP failai kataloge. Jūsų rida skirsis, tačiau kai reikia greitai susiburti į projektą, PHP yra gera naudoti priemonė.

Kur laimi „Node.js“: taikymo greitis

Rašant „JavaScript“ kodą yra šiek tiek sunkiau, kai skaičiuojate garbanotus skliaustus ir skliaustus, tačiau kai tai bus padaryta, jūsų „Node.js“ kodas gali skristi. Perskambinimo mechanizmas yra puikus, nes jis taupo jus nuo žongliravimo gijomis. Šerdis yra gerai pastatyta ir suprojektuota visa tai padaryti už jus. Ar ne visi to nori?

Kur laimi PHP: konkurencija

Kova dėl PHP kūrėjų širdžių ir protų vis dar vyksta. HHVM komanda ir „Zend“ komanda sunkiai dirba, kad visiems būtų pristatytas greitas kodas. Atsiranda nepriklausomi etalonai ir visi stumia kodų bazes iki ribos. Tai reiškia tik geresnį našumą.

Kur laimi „Node.js“: solidarumas

Ar tikrai norite dviejų skirtingų kodų bazių? Aišku, konkurencija padeda, bet netrukus atsiranda fragmentiškumas. Kas nutiks, kai jūsų kodas vykdomas tik vienu iš dviejų? Konkurencija neduoda nieko gero, jei per kelias savaites reikia praleisti perrašant kodą. Nors praėjus keleriems metams „Node.js“ patyrė savo suskaidymą, paleidus „io.js“, „Node.js“ visata nuo to laiko vėl susivienijo, suteikdama jai tokį kalbos solidarumą, kurio netrukus gali ilgėtis PHP kūrėjai.

Kur laimi PHP: pagrindinės programos

Per pastaruosius kelerius metus keli kūrėjai sukūrė interneto programas ir nusivylė vangia elgsena. Visus tuos judančius elementus valdanti „JavaScript“ gali būti dešimtys tūkstančių baitų, kartais šimtai tūkstančių. Kai atvyks visi paketai, juos reikia išanalizuoti, sukompiliuoti ir pagaliau įvykdyti - viskas, kad būtų pateikti keli baitai, pavyzdžiui, temperatūra ir prognozė.

Atsilikimą nuo šio beprotiško rokoko galima rasti komandose, kuriančiose statinių svetainių generatorius (463 šiame rašyme) ir pašalintuose tinklalapiuose AMP formatu. PHP yra natūralus pasirinkimas bet kuriai komandai, norinčiai sutelkti intelektą į serverį, kad klientas nebūtų perkrautas.

Kur laimi „Node.js“: turtingumas

Pastatų architektas Ludwigas Miesas van der Rohe kartą pasakė: „Mažiau yra daugiau.“ Atėjo kitas architektas Robertas Venturi ir atkirto: „Mažiau yra nuobodu“. Išmanieji telefonai turi daugiau galios nei kambarys, kuriame pilna „Cray“ kompiuterių. Staliniai kompiuteriai turi vaizdo plokštes su keliais ventiliatoriais, kad jie būtų vėsūs viso apdorojimo metu. Kodėl turėtume atsisakyti savo kodekso ir gyventi kaip depresijos laikų auka Steinbecko romane? Gyvenk tai. Didelės, aptakios svetainės, pilnos „JavaScript“ kodo, traukia akį, yra dramatiškos ir labiausiai įdomios. Aišku, kad yra nepadoru švaistyti tiek duomenų pralaidumą keliems duomenų bitams, tačiau pralaidumas niekada nebuvo pigesnis. Gyvenk šiek tiek!

Kur laimi abu: be galvos

Žodis „begalvis“ reiškia PHP kodą, veikiantį serveryje. Neseniai kai kurios geriausios PHP programos, tokios kaip „Drupal“, žvalgėsi per praėjimą ir nustebo nustebusios dėl sudėtingų vartotojo sąsajų, sukurtų „JavaScript“ rėmų, tokių kaip „React“, „Angular“ ar „Vue“. Užuot bandę konkuruoti su jais, jie perleidžia kliento kontrolę ir koncentruojasi į gerą darbą su serverio vidine dalimi.

Jei nemažai investavote į serveryje paleistą PHP kodą, tai gali būti būdas mėgautis geriausiais abiem būdais. Senas nustatytas PHP kodas veikia kaip įėjimo į duomenų bazę durys, dar kartą patikrinančios užklausas, išvalančios duomenis ir paprastai pateikiančios visą verslo logiką. Kliento pusė yra progresyvi interneto programa, parašyta naudojant naujausią „JavaScript“ sistemą. Kai reikia informacijos, ji siunčia AJAX užklausą į PHP kodą.

Tai gali būti netikslinga tiems, kurie pradeda nuo nulio, tačiau jei jūs daugelį metų pasitikėjote PHP ir norite palaipsniui judėti į priekį, tai gali būti laimingas kompromisas.

Kur laimės abi: „Microsoft“ paslaugos ir be serverio

Kylančios mikropaslaugos ar be serverio paradigmos siūlo „JavaScript“ ir PHP kodui būdą sugyventi su serveriu ir susitvarkyti. Abiejuose sprendimuose darbas suskaidomas į dešimtis mažesnių paslaugų ar funkcijų, kurios gali veikti savarankiškai ir likti savo juostose. Kai kurios dalys, paprastai senesnės ir stabilesnės programos dalys, gali paleisti PHP. Kitos dalys, dažnai naujesnės, bus parašytos „Node.js“. Kalba POST arba GAUTI gali būti juos visus vienijanti lingua franca.