Facebook wil een betere PHP bouwen met een hack. Spoiler It's Really Good.
10 jaar geleden werd Facebook in een studentenhuis in Harvard gelanceerd. Aanvankelijk was het slechts Mark Zuckerberg die een codebasis hackte die uitsluitend bestond uit de PHP-code How Does Facebook Work? The Nuts and Bolts [Technology Explained] Hoe werkt Facebook? The Nuts and Bolts [Technology Explained] Read More, interactie met een MySQL-database.
Sindsdien is het in omvang toegenomen, zowel in termen van gebruikers als ontwikkelaars die werken aan een codebasis die voortdurend groeit. Het werd al snel duidelijk dat PHP weliswaar een geweldige taal was om Facebook mee te beginnen, maar dat het niet langer paste bij de behoeften van het bedrijf.
En zo creëerden ze Hack, een speciaal gebouwde taal die snellere ontwikkeling mogelijk maakt, grotere ontwikkelteams, terwijl de volledige interoperabiliteit met de populaire PHP-programmeertaal wordt gehandhaafd. Leren bouwen met PHP: een crashcursus Leren bouwen met PHP: een spoedcursus PHP is de taal die Facebook en Wikipedia gebruiken om dagelijks miljarden verzoeken te versturen; de de-facto taal die wordt gebruikt voor het leren van mensen web-programmering. Het is prachtig eenvoudig, maar briljant krachtig. Lees verder .
De ontvangst van Hack door de ontwikkelaarsgemeenschap is niets minder dan verbluffend. Mensen zijn enorm enthousiast over een taal die snel is, maar toch gemakkelijk te ontwikkelen is, terwijl ze achterwaartse compatibiliteit met de vele PHP-bibliotheken die er op dit moment bestaan, behoudt.
Hier is alles wat u moet weten over het installeren van Hack, evenals hoe u uw voeten nat kunt maken met de taal.
Wat is er zo speciaal aan Hack??
Geweldige vraag. U weet waarschijnlijk dat sommige programmeertalen zijn gecompileerd naar bytecode die op een speciale virtuele machine (zoals Java en Clojure) wordt uitgevoerd, terwijl andere talen (zoals PHP, Ruby en Python) in een tolk worden uitgevoerd.
U weet waarschijnlijk ook dat geïnterpreteerde talen inherent langzamer zijn dan talen die byte-code produceren die specifiek is geoptimaliseerd voor de virtuele machines waarop ze worden uitgevoerd. Om deze reden zijn er dialecten van Python en Ruby (respectievelijk Jython en JRuby) die op de Java Virtual Machine draaien. Wat is de Java Virtual Machine en hoe werkt het? Wat is de Java Virtual Machine en hoe werkt het? Hoewel het niet strikt noodzakelijk is om te weten dat het werkt om te programmeren in Java, is het nog steeds goed om te weten, omdat het kan helpen om een betere programmeur te worden. Lees verder .
Hack draait uniek op zijn eigen virtuele machine, de Hip Hop Virtual Machine. Het is deze VM die door Facebook is gebruikt om te schalen voor miljarden dagelijkse gebruikers.
Hack is meer dan de VM waarop het draait. Het komt ook met type-annotaties, waarmee je variabelen kunt declareren op basis van de inhoud die ze zullen opslaan (string, integer, boolean), lambda (anonieme) functies en generieke geneesmiddelen.
Hack installeren
Ik heb slecht nieuws voor OS X- en Windows-gebruikers. Hack werkt niet op deze platforms, of ondersteuning is zo slecht dat het niet de moeite waard is om te bespreken. In plaats daarvan zul je ofwel een Linux VPS moeten opstarten Leer alles over virtuele privéservers in twee minuten Leer alles over virtuele privéservers in twee minuten Met zoveel geweldige webhostingservices beschikbaar, is het moeilijk om de juiste keuze te maken voor past bij uw behoeften. Lees meer of VM.
Uit pure luiheid heb ik uiteindelijk genoegen genomen met het creëren van een Linux VPS met Digital Ocean, die een van mijn favoriete VPS-providers zijn. Ik heb een kleine druppel gemaakt met Ubuntu 13:10 Ubuntu 13.10 gelanceerd met vriendenbereik, dashfilters en meer Ubuntu 13.10 gelanceerd met vriendenbereik, dashfilters en meer Canonical heeft de nieuwste en geweldige versie van 's werelds populairste gratis en open-source gelanceerd desktop besturingssysteem, Ubuntu 13.10 “sauzige Salamander”. Lees Meer en vervolgens Hack geïnstalleerd met de volgende opdrachten.
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-get update sudo apt-get upgrade sudo apt-get install hhvm-nightly
Zoals je hier kunt zien, download ik de GPG-sleutel voor de Hack-repositories; voeg de repository toe aan mijn bronnenlijst; werk mijn brondefinities bij; upgrade mijn systeem en installeer vervolgens Hack. Eenvoudig, echt.
Hacken met een hack
Nu is het tijd om een Hack-code te schrijven. We beginnen met het beproefde 'Hello World'-programma. Deze wordt niet in een webbrowser uitgevoerd, maar drukt eerder 'Hello World' af op de console.
Maak een nieuw bestand met de naam HelloWorld.php (ja, om een of andere reden houdt Hack vast aan gebruiken .php als standaard bestandsextensie) in je favoriete teksteditor (mijn voorkeur is VIM De Top 7 Redenen om de Vim-teksteditor een kans te geven De Top 7 Redenen om de Vim-teksteditor een kans te geven Al jaren heb ik een tekst geprobeerd de ene na de andere editor, noem maar op, ik heb het geprobeerd, ik gebruikte deze editors gedurende meer dan twee maanden als mijn primaire dagelijkse editor, op de een of andere manier ... Lees meer) en voeg de volgende regels toe.
Welke moet afdrukken Hallo Wereld naar de console als het wordt uitgevoerd met 'hhvm', zoals zo.
Oké, laten we proberen een Hack-programma in de browser uit te voeren. Eerst moeten we Apache en PHP installeren. Ik heb dit in een vorig artikel dat is aangemeld voor SSH-only Web Hosting al besproken? Do not Worry - Eenvoudig elke websoftware installeren die is aangemeld voor alleen SSH-webhosting? Maak je geen zorgen - Eenvoudig elke websoftware installeren Weet je niet het eerste over het bedienen van Linux via zijn krachtige opdrachtregel? Maak je geen zorgen meer. Lees Meer, maar om je geheugen op te frissen, zal ik het opnieuw doornemen. Voer de volgende opdrachten uit.
sudo apt-get install apache2 sudo apt-get install php5
Je kunt ook Apache, PHP, MySQL en een hele reeks andere handige hulpprogramma's installeren met de volgende opdracht. (Vergeet niet de caret aan het einde van de regel - lamp-server is niet een enkel pakket, maar een verzameling)
sudo apt-get install lamp-server ^
U wordt aangeraden om dit uit te voeren als u van plan bent een nauwere, serieuzere kijk te nemen op de ontwikkeling van het web met de programmeertaal Hack, omdat het een groot aantal hulpmiddelen bevat die u mogelijk heel nuttig vindt.
Zodra je dat hebt gedaan, start je de Hip Hop VM opnieuw op met de volgende opdracht.
sudo /etc/init.d/hhvm start
Controleer of Apache wordt uitgevoerd door een browser te openen en naar het IP-adres van uw webserver te navigeren. Als alles loopt, zou u dit moeten zien.
Super goed! Navigeer nu naar / var / www en verwijder de pagina die u zojuist zag (ook wel 'index.html' genoemd) met de volgende opdrachten.
cd / var / www rm index.html
Maak nu een bestand met de naam index.php en voeg dezelfde regels toe die je eerder hebt geschreven.
Hallo Wereld";
Zodra u dat hebt gedaan, bezoekt u uw webserver opnieuw met de door u gekozen webbrowser.
Zoals je kunt zien, is er wat gekheid met Hack die het einde van een string herkent. Daarom wil ik graag van deze gelegenheid gebruik maken om u eraan te herinneren dat hoewel deze technologie best cool is, deze nog steeds behoorlijk rauw is en mogelijk niet klaar voor productie-implementaties. Ik zal echter toevoegen dat ik de nachtelijke versie van Hack gebruik, de meest verbluffende versie die beschikbaar is. Het is daarom niet zo verwonderlijk dat sommige dingen niet perfect verlopen.
Als u PHP kent, herkent u misschien de 'Echo'-verklaring die ik eerder gebruikte. Nou, Hack kan elke PHP-functie bellen. Hier roep ik 'phpinfo ();' binnen een Hack-programma.
Enkele specifieke Hack-functionaliteit
Hack brengt een heleboel naar de tafel, met betrekking tot nieuwe taalfuncties. Ik heb er eerder enkele besproken, inclusief typeaangiften. Helaas kunnen we niet alles in dit ene artikel behandelen, maar ik dacht dat het misschien een goed idee was om te kijken hoe Hack omgaat met typedefinities.
Om samen te vatten, typ definities zijn waar u een variabele definieert op basis van de inhoud die het zou bevatten. Hoe werkt dat? Nou ja, een beetje zoals dit.
Zoals u kunt zien, beginnen we met de typeaangifte, gevolgd door de naam van de variabele (beginnend met een dollarteken, ongeveer zoals in traditionele PHP), gevolgd door de waarde die is toegewezen aan de variabele.
Dit komt ook in het spel met functie-verklaringen. Wanneer u een functie declareert en een parameter doorgeeft, moet u aangeven welk type variabele u erin wilt invoeren. Als je dat niet doet, of het verkeerde type variabele doorgeeft, verwacht dan gejammer en geknars van tanden.
Dus hoe werkt dit eigenlijk in Hack? Laten wij het uitzoeken.
Maak een nieuw bestand met de naam 'function.php' en schrijf de volgende regels.
Als je in het verleden PHP hebt gebruikt, kun je een deel hiervan misschien ontcijferen. We hebben een functie gemaakt, die we 'hallo' hebben genoemd. We geven het vervolgens een reeks door, die vervolgens naar de console wordt gekopieerd, gevolgd door het woord 'Hallo'.
Maar wat is dat : ongeldig beetje? In Hack moeten we de computer vertellen of de functie een waarde retourneert. Als dat niet zo is, zeggen we dat de functie 'ongeldig' is. Zoals alles met Hack, moeten we aangeven welk type waarden wordt geretourneerd.
Vervolgens voeren we deze code uit met de 'hhvm' opdrachtregelapplicatie, en we zouden dit moeten zien.
Conclusie
Er is veel om van te houden over Hack.
Het is een taal die je verplicht om betere code te schrijven, terwijl je het gemakkelijk kunt begrijpen en belachelijk snel bent. Het heeft ook de ondersteuning van een van de grootste technologiebedrijven op dit moment, die het dagelijks in de productie gebruiken om een van de grootste sites op bestaande schaal te maken voor miljoenen gebruikers.
Desondanks is het nog steeds een heel nieuwe taal. Sterker nog, ik schreef dit artikel de dag nadat het voor het publiek werd vrijgegeven. Het is moeilijk om aan te bevelen dat iedereen het nu meteen in productie gaat nemen, maar er zeker mee speelt.
Maar dat is slechts mijn mening. Ga je het proberen? Stuur me een reactie hieronder en laat me weten wat je ervan vindt.
Ontdek meer over: Apache Server, Programming, Web Development.