QNA > Q > Quando Facebook È Passato Da Php A Python?

Quando Facebook è passato da PHP a Python?

Umm, è una domanda a trabocchetto?

Facebook è stato e sarà sempre utilizzato PHP, non importa cosa. La gente che dice che Facebook usa Hack. Questa è solo una mezza verità. Hack IMO è solo un involucro intorno a PHP. È praticamente solo per ammorbidire il colpo che PHP potrebbe non essere in grado di gestire. Nei primi giorni di Facebook, credo che abbiano fatto molto affidamento su memcached che dovrebbe rendere più facile il caricamento dei dati dal database. Ecco un primo video che Mark ha fatto parlando di memcached. Prendete anche nota, memcached è una classe PHP che potreste aver bisogno di installare tramite PECL.

Quindi, da quello che ho capito, hanno scritto Hack per avvolgere PHP in modo da poter usare la loro sintassi per rendere le cose più veloci. In realtà, stanno ancora scrivendo in PHP perché metà della loro sintassi è presa da PHP.

Questo screenshot è preso dal sito ufficiale di Hack e mostra chiaramente proprio questo.

main-qimg-1e15f45bd0681d3050a02a30437dbc9e

PHP ora permette (da PHP 7.0) la dichiarazione di tipo restituito proprio come da Hack.

main-qimg-751f981d038a2b8a18ef2eec42a56ac2

Nelle 2 immagini, si possono vedere le somiglianze. Hack è praticamente solo PHP, ma scritto in modo leggermente diverso. Da qui il motivo per cui ho detto che Hack IMO è solo un involucro intorno a PHP perché è ancora possibile eseguire codice PHP in Hack. Se Hack non è PHP, non potresti mai eseguire codice PHP. Un paragone corretto sarebbe che Python non usa PHP. Ora questo è vero perché Python non è retrocompatibile e non ha alcuna somiglianza con PHP.

Quindi le persone che dicono che Facebook non usa PHP, non è del tutto vero.

Ora, la domanda principale. Facebook è una combinazione di più linguaggi, ma il principale linguaggio di programmazione che usano è PHP. So che la chat di Facebook usava Erlang (non so se lo è ancora). Altre parti di Facebook usano altri linguaggi. Questo non significa che Facebook in qualche modo sia "passato" completamente ad un linguaggio diverso. Significa solo che possono far parlare altri linguaggi con PHP, che è una cosa pulita.

La quantità di forza lavoro che ci vuole per cambiare un intero sistema è così scandalosa che non vale nemmeno il tempo dell'azienda o il costo. Immaginate solo che l'intero sistema venga riscritto in un linguaggio diverso. Dal momento che Facebook continua ad aggiungere funzioni che ha, immaginate quanta forza lavoro ci vuole per fare un tale cambiamento. Ci vogliono più di 5 anni solo per cambiare un intero sistema come quello di Facebook. Non solo, bisogna anche considerare; il linguaggio appropriato, i paradigmi di programmazione, i design pattern (credo che Facebook stia facendo la propria cosa e usando il proprio pattern chiamato Flux), le migliori pratiche, tutti i 9 metri. Dovreste inserire tutto questo nel sistema attuale che state per implementare. Inoltre, che dire della formazione? Ora dovete riqualificare tutto il vostro dipendente o i dipendenti che sono programmatori per usare il nuovo linguaggio che avete scelto. Dovete anche impostare un qualche tipo di standard in modo che ogni dipendente capisca come scrivere e implementare il codice nel vostro nuovo sistema. Il carico di lavoro e la potenza dell'uomo è semplicemente scandaloso da lì che ci vorrebbe sicuramente molto più tempo per farlo che un paio di anni.

Quindi no. La risposta alla domanda è: Facebook non ha mai cambiato né mai lo farà. Stanno usando il loro wrapper per PHP, quindi non gliene può importare di meno di qualsiasi cosa "alla moda". Solo perché non ti piace un linguaggio, non significa che un'azienda passerà al tuo linguaggio preferito perché pensi che sia la cosa "alla moda" o "hype" da fare. Non ha alcun senso, né dal punto di vista aziendale né da quello finanziario. La gente deve iniziare a pensare a questo invece di urlare contro le persone che usano la lingua che odiano.

Di Sean

Ho perso il mio libro RC. Chi può procurarmi un duplicato del libro RC a Bangalore, Indiranagar RTO? :: Un'app e un'API sono la stessa cosa?
Link utili