Casa > Q > Quando É Que O Facebook Mudou De Php Para Python?

Quando é que o Facebook mudou de PHP para Python?

Umm, isto é uma pergunta difícil?

Facebook tem sido e sempre usará PHP, não importa o quê. As pessoas que dizem que o Facebook usa Hack. Isso é apenas a metade da verdade. Hack IMO é apenas um invólucro em torno do PHP. É basicamente só para suavizar o golpe que o PHP pode não ser capaz de lidar. Nos primeiros dias do Facebook, eu acredito que eles dependiam muito do memcached que é suposto facilitar o carregamento de dados do banco de dados. Aqui está um vídeo que Mark fez no início, falando sobre o memcached. Note também, memcached é uma classe PHP que você pode precisar instalar via PECL.

Então, realmente pelo que estou adivinhando, eles escreveram Hack para usar o PHP para que eles possam usar sua própria sintaxe para tornar as coisas mais rápidas. Na realidade, eles ainda estão escrevendo em PHP porque metade de sua sintaxe é retirada do PHP.

Esta captura de tela é retirada do site oficial do Hack e mostra claramente que.

main-qimg-1e15f45bd0681d3050a02a30437dbc9e

PHP agora permite (desde o PHP 7.0) declaração do tipo retornado como do Hack.

main-qimg-751f981d038a2b8a18ef2eec42a56ac2

Nas 2 fotos, você pode ver as semelhanças. Hack é basicamente apenas PHP, mas escrito de uma maneira ligeiramente diferente. Por isso eu disse que o Hack IMO é apenas um wrapper em torno do PHP porque você ainda pode rodar o código PHP no Hack. Se Hack não é PHP, você nunca poderia rodar código PHP. Uma comparação justa seria que o Python não usa PHP. Isso é verdade porque Python não é retrocompatível nem tem nenhuma semelhança com PHP.

Então as pessoas dizem que o Facebook não usa PHP, isso não é inteiramente verdade.

Agora, sobre a questão principal. O Facebook é uma combinação de várias linguagens, mas a principal linguagem de programação que eles usam é o PHP. Eu sei que o chat do Facebook costumava usar Erlang (não tenho certeza se ainda é). Outras partes do Facebook usam outras linguagens. Isso não significa que o Facebook "mudou" completamente para uma linguagem diferente. Isso só significa que eles podem fazer outra linguagem falar com PHP, o que é uma coisa legal.

A quantidade de poder humano que é necessário para trocar um sistema inteiro é um escândalo que não vale nem o tempo nem o custo da empresa. Imagine o sistema inteiro sendo reescrito para uma linguagem diferente. Uma vez que o Facebook continua a aumentar os recursos que eles têm, imagine quanto poder humano é necessário para fazer tal mudança. Isso deve ser como 5+ anos só para mudar todo um sistema como o do Facebook. Não só isso, você também tem que considerar: a linguagem apropriada, paradigmas de programação, padrões de design (eu acredito que o Facebook está fazendo a sua própria coisa e usando o seu próprio padrão feito chamado Flux), as melhores práticas, as 9 jardas inteiras. Você teria que encaixar tudo isso no sistema atual que você vai implementar. E também, e o treinamento? Agora você tem que requalificar todo o seu funcionário ou os funcionários que são programadores para usar a nova linguagem que você escolheu. Agora você também tem que definir algum tipo de padrão para que cada funcionário entenda como escrever e implementar código no seu novo sistema. A carga de trabalho e o poder humano é simplesmente ultrajante a partir daí que definitivamente levaria muito mais tempo do que alguns anos.

Então não. A resposta para a pergunta é: O Facebook nunca mudou, nem nunca mudará. Eles estão usando seu próprio wrapper para PHP, então eles podem realmente se importar menos com qualquer coisa "hip". Só porque você não gosta de uma linguagem, não significa que uma empresa vai mudar para a sua linguagem favorita porque você acha que é a coisa "hip" ou "hype" a fazer. Não faz nenhum sentido no ponto de vista de uma empresa nem no ponto de vista financeiro. As pessoas precisam de começar a pensar nisso em vez de gritar com pessoas que usam a linguagem que odeiam.

De McNully Kampner

O turno da noite nos iPhones é bom para os seus olhos? :: O que os desenvolvedores de ferramentas usam para criar aplicativos híbridos?