Facebook vrea să construiască o mai bună PHP cu hack. Spoiler Este foarte bun.
Acum 10 ani, într-o cameră din dormitorul din Harvard, Facebook a fost lansat. Inițial, a fost doar Mark Zuckerberg hacking departe la un codebase care a constat exclusiv din PHP cod Cum funcționează Facebook? Nuci și șuruburi [Tehnologie explicată] Cum funcționează Facebook? Nuts and Bolts [Tehnologie Explained] Citește mai mult, interacționând cu o bază de date MySQL.
De atunci, aceasta a crescut în mărime, atât în ceea ce privește utilizatorii, cât și dezvoltatorii care lucrează la o bază de coduri care este în continuă creștere. În curând a devenit evident că, în timp ce PHP era un limbaj excelent pentru a începe să facă Facebook, nu mai era potrivit nevoilor companiei.
Și astfel au creat Hack, care este un limbaj construit în scopuri care permite o dezvoltare mai rapidă, echipe de dezvoltare mai mari, menținând în același timp interoperabilitatea completă cu limbajul popular de programare PHP Aflați cum să construiți cu PHP: Un curs Crash Învățați să construiți cu PHP: este limba utilizată de Facebook și Wikipedia pentru a servi zilnic miliarde de solicitări; limba de-facto utilizată pentru predarea programării web a oamenilor. Este frumos simplu, dar strălucitor de puternic. Citeste mai mult .
Recepția lui Hack de către comunitatea de dezvoltare nu a fost deloc surprinzătoare. Oamenii sunt foarte entuziasmați de o limbă care este rapidă, dar ușor de dezvoltat, păstrând în același timp compatibilitatea cu multe biblioteci PHP existente chiar acum.
Iată tot ce trebuie să știți despre instalarea lui Hack, precum și despre cum să vă umeziți picioarele cu limba.
Ce este Special despre Hack?
Întrebare mare. Probabil știți că unele limbi de programare sunt compilate în codul byte care rulează pe o mașină virtuală specială (cum ar fi Java și Clojure), în timp ce alte limbi (precum PHP, Ruby și Python) rulează într-un interpret.
De asemenea, probabil știți că limbile interpretate sunt în mod inerent mai lenești decât limbile care generează un cod octet optimizat în mod specific pentru mașinile virtuale pe care le rulează. Din acest motiv, există dialecte de Python și Ruby (numite Jython și respectiv JRuby) care rulează pe mașina virtuală Java Ce este mașina virtuală Java și cum funcționează? Ce este mașina virtuală Java și cum funcționează aceasta? Deși nu este absolut necesar să știți că funcționează pentru a programa în Java, este bine să știți pentru că vă poate ajuta să deveniți un programator mai bun. Citeste mai mult .
Hack rulează în mod unic pe mașina sa virtuală, numită mașina virtuală Hip Hop. Acesta este acest VM care a fost folosit de Facebook pentru a scala miliarde de utilizatori zilnici.
Hack este mai mult decât VM pe care rulează. De asemenea, vine cu adnotări de tip, permițându-vă să declarați variabile pe baza conținutului pe care îl vor stoca (șir, integer, boolean), funcții lambda (anonime), precum și generice.
Instalarea programului Hack
Am niște vești proaste pentru utilizatorii de sisteme de operare OS X și Windows. Hack fie nu funcționează pe aceste platforme, sau suportul este atât de fulgător încât nu merită să discutăm. În schimb, veți fi nevoiți să declanșați un VPS Linux Aflați totul despre serverele virtuale private în două minute Aflați totul despre serverele virtuale private în două minute Cu atât de multe servicii de găzduire web disponibile, este greu să decideți pe cineva potrivit să satisface nevoile tale. Citește mai mult sau VM.
Din lenea pură, am ajuns să mă ocup de crearea unui Linux VPS cu Digital Ocean, care sunt unul dintre furnizorii mei favoriți VPS. Am creat o mică picătură care rulează Ubuntu 13:10 Ubuntu 13.10 Lansat cu prieteni Scope, Filtre Dash și mai multe Ubuntu 13.10 lansat cu prietenii Domeniul de aplicare, filtre Dash și mai mult Canonical a lansat cea mai recentă și cea mai mare versiune a lumii cele mai populare gratuit și open-source sistem de operare desktop, Ubuntu 13.10 “Saucy Salamander”. Citiți mai multe, apoi instalați Hack cu următoarele comenzi.
wget -O - http://dl.hhvm.com/conf/hhvm.gpg.key | sudo apt-key adăugați - echo deb http://dl.hhvm.com/ubuntu saucy principal | sudo tee /etc/apt/sources.list.d/hhvm.list sudo apt-get actualizare sudo apt-get upgrade sudo apt-get instalare hhvm-noapte
După cum puteți vedea aici, descarc cheia GPG pentru depozitele Hack; adăugați depozitul în lista surselor mele; actualizați definițiile surselor mele; actualizați sistemul meu și apoi instalați Hack. Simplu, într-adevăr.
Hacking cu hack
Acum, e timpul să scriem un cod Hack. Vom începe cu programul "Hello World" testat și testat. Acesta nu va fi rulat într-un browser web, ci mai degrabă tipăriți "Hello World" în consola.
Creați un fișier nou numit HelloWorld.php (da, din anumite motive Hack insistă să utilizați .php ca extensia de fișier implicită) în editorul dvs. de text preferat (alegerea mea preferată este VIM Top 7 motive pentru a da editorului de text Vim o șansă Top 7 motive pentru a da editorului de text Vim o șansă De ani de zile am încercat un text editorul după altul.Ai numele, am încercat.Am folosit fiecare și fiecare dintre aceste editoare pentru mai mult de două luni ca primul meu editor de zi cu zi .. Cumva, eu ... Citește mai mult] și adăugați următoarele linii.
Ce ar trebui să tipărească Salut Lume la consola când a fugit cu "hhvm", așa cum se întâmplă.
Bine, să încercăm să rulați un program Hack în browser. În primul rând, va trebui să instalăm Apache și PHP. Am atins acest lucru într-un articol anterior Semnat pentru Web Hosting numai pentru SSH? Nu vă faceți griji - instalați cu ușurință orice software Web înscris pentru SSH-numai Web Hosting? Nu vă faceți griji - instalați ușor orice software Web Nu știți primul lucru despre operarea Linux prin linia sa de comandă puternică? Nu vă mai faceți griji. Citiți mai multe, dar pentru a vă reîmprospăta memoria, voi trece din nou prin ea. Rulați următoarele comenzi.
sudo apt-get instala apache2 sudo apt-get instala php5
Puteți instala, de asemenea, Apache, PHP, MySQL și o grămadă de utilități utile cu următoarea comandă. (Nu uitați că la sfârșitul liniei - lamp-server nu este un singur pachet, ci mai degrabă o colecție)
sudo apt-get instalați lamp-server ^
Vă recomandăm să rulați acest lucru dacă intenționați să examinați mai atent dezvoltarea web cu limbajul de programare Hack deoarece conține o mulțime de instrumente pe care le puteți găsi destul de utile.
Odată ce ați făcut acest lucru, reporniți VM Hip Hop cu următoarea comandă.
sudo /etc/init.d/hhvm start
Verificați dacă Apache rulează deschizând un browser și navigând la adresa IP a serverului dvs. web. Dacă totul se execută, ar trebui să vezi asta.
Grozav! Acum, navigați la / var / www și eliminați pagina pe care tocmai ați văzut-o (numită 'index.html') cu următoarele comenzi.
cd / var / www rm index.html
Acum, creați un fișier numit index.php și adăugați aceleași rânduri pe care le-ați scris anterior.
Salut Lume„;
Odată ce ați făcut acest lucru, revizuiți serverul web cu browserul web ales.
După cum puteți vedea, există o ciudățenie cu Hack recunoscând sfârșitul unui șir. Ca rezultat, aș dori să profit de această ocazie pentru a vă reaminti că, deși această tehnologie este destul de răcoritoare, este încă destul de brută și, eventual, nu este pregătită pentru implementări de producție. Cu toate acestea, voi adăuga că rulez versiunea de noapte a lui Hack, care este cea mai sângeroasă versiune disponibilă. Ca rezultat, nu ar trebui să fie prea surprinzător faptul că unele lucruri nu funcționează perfect.
Dacă știți PHP, ați putea recunoaște declarația "Echo" pe care am folosit-o înainte. Ei bine, Hack poate apela orice funcție PHP. Aici numesc "phpinfo ();" în cadrul unui program Hack.
Unele caracteristici specifice Hack
Hack aduce o mulțime la masă, în ceea ce privește noile caracteristici lingvistice. Am discutat mai înainte despre unele dintre ele, inclusiv declarațiile de tip. Din păcate, nu vom putea să acoperim totul în acest articol, dar m-am gândit că ar fi o idee bună să te uiți la modul în care Hack se ocupă de definirea tipului.
Așadar, pentru a recupera, definițiile de tip sunt unde definiți o variabilă bazată pe conținutul pe care îl deține. Cum funcționează? Păi, cam așa.
După cum puteți vedea, începem cu declarația de tip, urmată de numele variabilei (începând cu un semn de dolar, similar cu cea din PHP tradițional), urmată de valoarea atribuită variabilei.
Acest lucru intră, de asemenea, în joc cu declarațiile de funcții. Când declarați o funcție și transmiteți un parametru, trebuie să declarați tipul de variabilă pe care îl veți trece în ea. Dacă nu faceți acest lucru sau nu treceți la un tip greșit de variabilă, așteptați plânsul și scârțâitul dinților.
Deci, cum funcționează de fapt în Hack? Să aflăm.
Creați un fișier nou numit 'function.php' și scrieți următoarele rânduri.
Dacă ați folosit PHP în trecut, ați putea să descifrați unele dintre acestea. Am creat o funcție pe care am numit-o "salut". Apoi îi transmitem un șir, care este apoi reluat la consola, urmând cuvântul "Hello".
Dar ce e asta? : void pic? Ei bine, în Hack, trebuie să-i spunem computerului dacă funcția va reveni la o valoare. Dacă nu este, spunem că funcția este "nulă". Ca tot cu Hack, trebuie să declarăm tipul de valori care vor fi returnate.
Apoi, rulați acest cod cu aplicația de linie de comandă "hhvm" și ar trebui să vedem acest lucru.
Concluzie
Sunt multe de iubit despre Hack.
Este un limbaj care vă obligă să scrieți un cod mai bun, fiind ușor de înțeles și ridicol de repede. De asemenea, are sprijinul uneia dintre cele mai mari companii de tehnologie din acest moment, care o utilizează zilnic în producție pentru a transforma unul din cele mai mari site-uri existente pe scară largă la milioane de utilizatori.
Cu toate acestea, este încă o limbă foarte nouă. De fapt, am scris acest articol a doua zi după ce a fost lansat publicului. Este greu să vă recomandăm ca cineva să înceapă să o pună în producție chiar acum, dar cu siguranță să se joace cu el.
Dar asta este doar opinia mea. O să încercați? Dați-mi un comentariu de mai jos și spuneți-mi ce credeți.
Explorați mai multe despre: Apache Server, Programare, Dezvoltare Web.