Facebook vill bygga ett bättre PHP med Hack. Spoiler Det är riktigt bra.

Facebook vill bygga ett bättre PHP med Hack. Spoiler Det är riktigt bra. / Wordpress & Webbutveckling

För 10 år sedan, i ett Harvard sovsal, lanserades Facebook. Ursprungligen var det bara Mark Zuckerberg som hakade iväg vid en kodbas, som uteslutande bestod av PHP-kod. Hur fungerar Facebook? Nötterna och bultarna [Teknologi förklarad] Hur fungerar Facebook? Nötterna och bultarna [Teknologi förklaras] Läs mer, interagera med en MySQL-databas.

Sedan dess har den blivit ballongad i storlek, både när det gäller användare och utvecklare som arbetar med en kodbas som ständigt växer. Det blev snart klart att medan PHP var ett bra språk för att starta Facebook med, passade det inte längre företagets behov.

Och så skapade de Hack, vilket är ett målbyggt språk som möjliggör snabbare utveckling, större utvecklingsgrupper, samtidigt som man behåller fullständig driftskompatibilitet med det populära PHP-programmeringsspråket. Lär dig att bygga med PHP: En Crash Course Lär dig att bygga med PHP: En Crash Course PHP är det språk som Facebook och Wikipedia använder för att betjäna miljarder ansökningar dagligen; de facto-språket som används för att lära ut webbläsning. Det är vackert enkelt, men briljant kraftfullt. Läs mer .

Mottagandet av Hack av utvecklingssamhället har varit inget annat än fantastisk. Människor är väldigt exalterade på ett språk som är snabbt, men ändå lätt att utveckla, samtidigt som man behåller bakåtkompatibilitet med de många PHP-bibliotek som existerar just nu.

Här är allt du behöver veta om att installera Hack, liksom hur du får dina fötter våta med språket.

Vad är så speciellt om Hack?

Stor fråga. Du vet säkert att vissa programmeringsspråk sammanställs till byte-kod som körs på en speciell virtuell maskin (som Java och Clojure), medan andra språk (som PHP, Ruby och Python) kör i en tolk.

Du vet också säkert att tolkade språk är i sig långsammare än språk som producerar byte-kod som är optimalt optimerad för de virtuella maskinerna de kör på. Det är av den anledningen att det finns dialekter av Python och Ruby (kallad Jython och JRuby respektive) som körs på Java Virtual Machine Vad är Java Virtual Machine och hur fungerar det? Vad är Java Virtual Machine och hur fungerar det? Även om det inte är absolut nödvändigt att veta att det fungerar för att kunna programmera i Java är det fortfarande bra att veta, eftersom det kan hjälpa dig att bli en bättre programmerare. Läs mer .

Hack körs unikt på sin egen virtuella maskin, kallad Hip Hop Virtual Machine. Det är den här VM som har använts av Facebook för att skala för miljarder dagliga användare.

Hack är mer än VM som det går på. Det kommer också med typannoteringar, så att du kan deklarera variabler baserat på innehållet som de kommer att lagra (sträng, heltal, booleska), lambda (anonyma) funktioner samt generiska.

Installera Hack

Jag har några dåliga nyheter för OS X och Windows-användare. Hack fungerar inte heller på dessa plattformar, eller stöd är så fläckigt att det inte är värt att diskutera. I stället måste du antingen skjuta upp en Linux VPS Lär dig allt om virtuella privata servrar på två minuter Läs allt om virtuella privata servrar om två minuter Med så många bra webbhotellstjänster som möjligt, är det svårt att bestämma rätten att passar dina behov. Läs mer eller VM.

Utan ren latskap slutade jag med att skapa en Linux VPS med Digital Ocean, som är en av mina favorit VPS-leverantörer. Jag skapade en liten dropp som kör Ubuntu 13:10 Ubuntu 13.10 lanserad med Friends Scope, Dash Filters och More Ubuntu 13.10 lanserades med Friends Scope, Dash Filters och More Canonical har lanserat den senaste och bästa versionen av världens mest populära gratis och öppen källkod desktop operativsystem, Ubuntu 13.10 “Saucy Salamander”. Läs mer och installera sedan Hack med följande kommandon.

wget -O - http://dl.hhvm.com/conf/hhvm.gpg.key | sudo apt-key add-echo deb http://dl.hhvm.com/ubuntu saucy main | sudo tee /etc/apt/sources.list.d/hhvm.list sudo apt-få uppdatering sudo apt-få uppgradering sudo apt-get installera hhvm-nightly

Som du kan se här, laddar jag ner GPG-nyckeln till Hack-repositorierna; lägg till förvaret till min källlista uppdatera mina källdefinitioner Uppgradera mitt system och installera sedan Hack. Enkelt, verkligen.

Hacking With Hack

Nu är det dags att skriva lite Hack-kod. Vi börjar med det testade testet "Hello World" -programmet. Den här kommer inte att köras i en webbläsare, men skriv ut "Hello World" till konsolen.

Skapa en ny fil som heter HelloWorld.php (ja, av någon anledning Hack insisterar på att använda .php som standard filtillägg) i din favorit textredigerare (mitt föredragna val är VIM De bästa 7 skälen att ge Vim Text Editor en chans Topp 7 skäl att ge Vim Text Editor en chans I åratal har jag provat en text redaktör efter en annan. Du heter det, jag försökte det. Jag använde var och en av dessa redaktörer i över två månader som min primära dagliga redaktör. På något sätt, jag ... Läs mer) och lägg till följande rader.

Vilket ska skriva ut Hej världen till konsolen när sprang med "hhvm", som så.

Okej, låt oss försöka köra ett Hack-program i webbläsaren. Först måste vi installera Apache och PHP. Jag har berört detta i en tidigare artikel som registrerats för SSH-bara webbhotell? Oroa dig inte - Installera enkelt vilken webbprogramvara som registrerats för SSH-bara webbhotell? Oroa dig inte - enkelt installera någon webbprogramvara Vet inte det första med operativsystemet Linux genom sin kraftfulla kommandorad? Oroa dig inte mer. Läs mer, men för att uppdatera ditt minne kommer jag att springa igenom det igen. Kör följande kommandon.

sudo apt-få installera apache2 sudo apt-get installera php5

Du kan också installera Apache, PHP, MySQL och en hel massa andra användbara verktyg med följande kommando. (Glöm inte caret i slutet av raden - lamp-servern är inte ett enda paket, utan snarare en samling)

sudo apt-get install lamp-server ^

Du rekommenderas att köra detta om du planerar att ta en närmare och mer allvarlig titt på webbutveckling med Hack-programmeringsspråket, eftersom det innehåller många verktyg som du kanske tycker är ganska användbara.

När du har gjort det, starta om Hip Hop VM med följande kommando.

sudo /etc/init.d/hhvm starta

Kontrollera att Apache körs genom att öppna en webbläsare och navigera till din webbservers IP-adress. Om allt körs borde du se detta.

Bra! Navigera nu till / var / www och ta bort den sida du just såg (kallad index.html) med följande kommandon.

cd / var / www rm index.html

Skapa nu en fil som heter index.php och lägg till samma linjer som du skrev tidigare.

Hej världen

";

När du har gjort det, kolla din webbserver med din valda webbläsare.

Som du kan se finns det en del raseri med Hack som känner igen slutet på en sträng. Som ett resultat skulle jag vilja ta tillfället i akt att påminna om att även om denna teknik är ganska cool är den fortfarande ganska rå, och kanske inte klar för produktionsutplaceringar. Jag kommer dock att tillägga att jag kör den nattliga versionen av Hack, vilken är den mest blödande kanten versionen tillgänglig. Som ett resultat borde det inte vara för förvånande att vissa saker inte går helt bra.

Om du känner till PHP kanske du känner igen det uttalande "Echo" som jag använde tidigare. Tja, Hack kan ringa någon PHP-funktion. Här ringer jag "phpinfo ();" inom ett Hack-program.

Någon Hack-specifik Funktionalitet

Hack tar en hel del till bordet, med hänsyn till nya språkfunktioner. Jag diskuterade några av dem före, inklusive typdeklarationer. Tyvärr kommer vi inte att kunna täcka allt i den här artikeln, men jag tänkte att det kan vara en bra idé att titta på hur Hack hanterar typdefinitioner.

Så, för att återskapa, är typdefinitioner var du definierar en variabel baserat på innehållet som den skulle innehålla. Hur fungerar det? Tja, lite så här.

 

Som du kan se börjar vi med typdeklarationen, följd av variabelns namn (börjar med ett dollartecken, ungefär som i traditionellt PHP), följt av det värde som tilldelas variabeln.

Detta kommer också till spel med funktionsdeklarationer. När du förklarar en funktion och skickar den till en parameter måste du deklarera typen av variabel som du kommer att passera in i den. Om du inte gör det, eller gå in i fel typ av variabel, räknar du med att du skrattar och krossar tänderna.

Så, hur fungerar det faktiskt i Hack? Låt oss ta reda på.

Skapa en ny fil som heter 'function.php' och skriv följande rader.

 

Om du har använt PHP tidigare kan du eventuellt dechifiera något av detta. Vi har skapat en funktion som vi kallat "hej". Vi skickar sedan en sträng som sedan echoes till konsolen, efter ordet "Hello".

Men vad är det där : tomrum bit? Tja, i Hack måste vi berätta för datorn om funktionen kommer att returnera ett värde. Om det inte är så säger vi att funktionen är "ogiltig". Som allt med Hack måste vi förklara vilken typ av värden som kommer att returneras.

Vi kör sedan den här koden med kommandoraden "hhvm", och vi borde se detta.

Slutsats

Det finns mycket att älska om Hack.

Det är ett språk som innebär att du skriver bättre kod, samtidigt som du är lätt att förstå och löjligt snabbt. Det har också stöd från ett av de största teknikbolagen runt just nu, som använder det dagligen i produktion för att göra en av de största platserna i sin skala till miljoner användare.

Trots det är det fortfarande ett helt nytt språk. Faktum är att jag skrev den här artikeln dagen efter det släpptes till allmänheten. Det är svårt att rekommendera att någon börjar sätta den i produktion just nu men säkert leka med den.

Men det är bara min åsikt. Kommer du prova? Släpp mig en kommentar nedan och låt mig veta vad du tycker.

Utforska mer om: Apache Server, Programmering, Webbutveckling.