Facebook vuole costruire un PHP migliore con Hack. Spoiler è davvero buono.

Facebook vuole costruire un PHP migliore con Hack. Spoiler è davvero buono. / Wordpress e sviluppo Web

10 anni fa, in una stanza del dormitorio di Harvard, è stato lanciato Facebook. Inizialmente, era solo Mark Zuckerberg a scavalcare una base di codice che consisteva esclusivamente nel codice PHP. Come funziona Facebook? The Nuts and Bolts [Technology Explained] Come funziona Facebook? The Nuts and Bolts [Technology Explained] Leggi di più, interagendo con un database MySQL.

Da allora ha raggiunto dimensioni ingenti, sia in termini di utenti che di sviluppatori che lavorano su un codebase in costante crescita. Ben presto divenne evidente che mentre PHP era un ottimo linguaggio per iniziare con Facebook, non era più adatto alle esigenze dell'azienda.

E così hanno creato Hack, che è un linguaggio appositamente progettato che consente uno sviluppo più veloce, team di sviluppo più ampi, mantenendo la piena interoperabilità con il popolare linguaggio di programmazione PHP. Imparare a costruire con PHP: un corso di crash Imparare a costruire con PHP: un corso di crash PHP è la lingua utilizzata da Facebook e Wikipedia per servire miliardi di richieste al giorno; il linguaggio di fatto usato per insegnare alla gente la programmazione web. È meravigliosamente semplice, ma brillantemente potente. Leggi di più .

L'accoglienza di Hack da parte della comunità di sviluppo è stata a dir poco sbalorditiva. Le persone sono estremamente entusiaste di un linguaggio veloce, ma facile da sviluppare pur mantenendo la compatibilità con le molte librerie PHP esistenti al momento.

Ecco tutto quello che devi sapere sull'installazione di Hack e su come bagnare i piedi con la lingua.

Cosa c'è di così speciale su Hack?

Grande domanda. Probabilmente sai che alcuni linguaggi di programmazione sono compilati su un codice byte eseguito su una macchina virtuale speciale (come Java e Clojure), mentre altri linguaggi (come PHP, Ruby e Python) vengono eseguiti in un interprete.

Probabilmente sai anche che le lingue interpretate sono intrinsecamente più lente delle lingue che producono codice byte che è specificamente ottimizzato per le macchine virtuali su cui girano. È per questo motivo che ci sono dialetti di Python e Ruby (chiamati rispettivamente Jython e JRuby) che girano sulla Java Virtual Machine Cos'è la Java Virtual Machine e come funziona? Cos'è la Java Virtual Machine e come funziona? Anche se non è strettamente necessario sapere che funziona per programmare in Java, è comunque utile sapere perché potrebbe aiutarti a diventare un programmatore migliore. Leggi di più .

Hack gira in modo univoco sulla propria macchina virtuale, chiamata la macchina virtuale Hip Hop. È questa VM che è stata utilizzata da Facebook per scalare per miliardi di utenti giornalieri.

Hack è più della VM su cui gira. Include anche annotazioni di tipo, che consentono di dichiarare le variabili in base al contenuto che verranno archiviate (stringa, numero intero, booleano), lambda (anonime) e generiche.

Installare Hack

Ho delle brutte notizie per gli utenti di OS X e Windows. Hack o non funziona su queste piattaforme, o il supporto è così traballante che non vale la pena discutere. Invece, dovrai attivare un VPS Linux. Imparare tutto sui server privati ​​virtuali in due minuti. Imparare tutto sui server privati ​​virtuali in due minuti Con così tanti ottimi servizi di web hosting disponibili, è difficile decidere quello giusto soddisfa i tuoi bisogni Leggi altro o VM.

Per pura pigrizia, ho deciso di creare un VPS Linux con Digital Ocean, che è uno dei miei fornitori di VPS preferiti. Ho creato una piccola droplet con Ubuntu 13:10 Ubuntu 13.10 Lanciato con Friends Scope, Dash Filters e altri Ubuntu 13.10 Lanciato con Friends Scope, Dash Filters e altro Canonical ha lanciato l'ultima e grande versione del mondo più popolare gratuito e open source sistema operativo desktop, Ubuntu 13.10 “Saucy Salamander”. Leggi altro, quindi installa Hack con i seguenti comandi.

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

Come puoi vedere qui, scarica la chiave GPG per i repository Hack; aggiungi il repository alla mia lista di fonti; aggiornare le definizioni delle mie fonti; aggiornare il mio sistema e quindi installare Hack. Semplice, davvero.

Hacking con Hack

Ora è il momento di scrivere un codice Hack. Inizieremo con il collaudato programma 'Hello World'. Questo non verrà eseguito in un browser Web, ma verrà stampato "Hello World" sulla console.

Crea un nuovo file chiamato HelloWorld.php (sì, per qualche motivo Hack insiste sull'uso .php come estensione di file predefinita) nel tuo editor di testo preferito (la mia scelta preferita è VIM I 7 principali motivi per dare a Vim Text Editor un'occasione I 7 principali motivi per dare a Vim Text Editor un'occasione Per anni ho provato un testo un editor dopo l'altro, l'hai nominato, l'ho provato, ho usato ciascuno di questi editor per oltre due mesi come il mio principale editor quotidiano ... In qualche modo, ho ... Leggi di più) e aggiungo le seguenti righe.

Quale dovrebbe stampare Ciao mondo alla console quando è stato eseguito con 'hhvm', in questo modo.

OK, proviamo a eseguire un programma Hack nel browser. Per prima cosa, avremo bisogno di installare Apache e PHP. Ho toccato questo in un precedente articolo firmato per il web hosting SSH-only? Non preoccuparti - Installa facilmente qualsiasi software Web firmato per l'hosting Web SSH-only? Non preoccuparti: installa facilmente qualsiasi software Web. Non conosci la prima cosa che riguarda l'utilizzo di Linux attraverso la sua potente linea di comando? Non preoccuparti più. Leggi di più, ma per rinfrescare la tua memoria, ci rieseguirò di nuovo. Esegui i seguenti comandi.

sudo apt-get install apache2 sudo apt-get install php5

È inoltre possibile installare Apache, PHP, MySQL e tutta una serie di altre utilità utili con il seguente comando. (Non dimenticare il punto di inserimento alla fine della linea - lamp-server non è un singolo pacchetto, ma piuttosto una raccolta)

sudo apt-get install lamp-server ^

Si consiglia di eseguirlo se si prevede di dare un'occhiata più seria e più approfondita allo sviluppo web con il linguaggio di programmazione Hack, in quanto contiene molti strumenti che potrebbero risultare utili.

Una volta fatto, riavvia la VM Hip Hop con il seguente comando.

sudo /etc/init.d/hhvm start

Verifica che Apache sia in esecuzione aprendo un browser e navigando verso l'indirizzo IP del tuo server web. Se tutto è in esecuzione, dovresti vedere questo.

Grande! Ora vai a / var / www e rimuovi la pagina appena vista (chiamata 'index.html') con i seguenti comandi.

cd / var / www rm index.html

Ora crea un file chiamato index.php e aggiungi le stesse linee che hai scritto prima.

Ciao mondo

";

Dopo averlo fatto, rivisita il tuo server web con il browser web scelto.

Come puoi vedere, c'è un po 'di stranezza con Hack che riconosce la fine di una stringa. Di conseguenza, vorrei cogliere l'occasione per ricordarvi che, sebbene questa tecnologia sia abbastanza interessante, è ancora abbastanza grezza e probabilmente non è pronta per le distribuzioni di produzione. Tuttavia, aggiungerò che sto eseguendo la versione notturna di Hack, che è la versione più sanguinolenta disponibile. Di conseguenza, non dovrebbe essere troppo sorprendente che alcune cose non funzionino perfettamente.

Se conosci PHP, potresti riconoscere la frase 'Echo' che ho usato prima. Bene, Hack può chiamare qualsiasi funzione PHP. Qui sto chiamando 'phpinfo ();' all'interno di un programma Hack.

Alcune funzionalità specifiche Hack

Hack porta molto in tavola, rispetto alle nuove funzionalità linguistiche. Ne ho discusso alcuni prima, incluse le dichiarazioni di tipo. Purtroppo, non saremo in grado di coprire tutto in questo articolo, ma ho pensato che potrebbe essere una buona idea guardare come Hack gestisce le definizioni dei tipi.

Quindi, per ricapitolare, le definizioni di tipo sono dove si definisce una variabile in base ai contenuti che avrebbe contenuto. Come funziona? Bene, un po 'come questo.

 

Come puoi vedere, iniziamo con la dichiarazione del tipo, seguita dal nome della variabile (che inizia con un segno di dollaro, molto simile al PHP tradizionale), seguita dal valore assegnato alla variabile.

Anche questo entra in gioco con le dichiarazioni di funzione. Quando stai dichiarando una funzione e passandole un parametro, devi dichiarare il tipo di variabile che ci passerai sopra. Se non lo fai, o passa nel tipo sbagliato di variabile, aspettati un gemito e uno stridore di denti.

Quindi, come funziona effettivamente in Hack? Scopriamolo.

Crea un nuovo file chiamato "function.php" e scrivi le seguenti righe.

 

Se hai usato PHP in passato, potresti essere in grado di decifrare qualcosa di questo. Abbiamo creato una funzione, che abbiamo chiamato "buongiorno". Poi passiamo una stringa, che viene poi echeggiata alla console, seguendo la parola 'Ciao'.

Ma cos'è? : vuoto po? Bene, in Hack, dobbiamo dire al computer se la funzione restituirà un valore. Se non lo è, diciamo che la funzione è "vuota". Come tutto con Hack, dobbiamo dichiarare il tipo di valori che verranno restituiti.

Quindi eseguiamo questo codice con l'applicazione della riga di comando 'hhvm' e dovremmo vederlo.

Conclusione

C'è molto da amare su Hack.

È un linguaggio che ti impone di scrivere codice migliore, pur essendo facile da capire e incredibilmente veloce. Ha anche il supporto di una delle più grandi aziende tecnologiche in questo momento, che la utilizza quotidianamente in produzione per realizzare uno dei più grandi siti in scala di grandezza a milioni di utenti.

Nonostante ciò, è ancora una lingua molto nuova. Infatti, ho scritto questo articolo il giorno dopo che è stato rilasciato al pubblico. È difficile raccomandare che qualcuno inizi a metterlo in produzione in questo momento, ma sicuramente ci giocherà.

Ma questa è solo la mia opinione. Ci proverai? Lasciami un commento qui sotto e fammi sapere cosa ne pensi.

Scopri di più su: Server Apache, programmazione, sviluppo Web.