É uma boa ideia usar Python como uma linguagem do lado do servidor?


Melhor resposta

Python é bastante capaz como uma linguagem do lado do servidor. Existem outras opções que, dependendo de suas necessidades, podem ser uma escolha melhor:

Go, PHP, Java / Kotlin e C # para nomear um pouco. Eles estabeleceram bibliotecas do lado do servidor (ou, no caso de Go e PHP, que são construídas especificamente como mecanismos do lado do servidor).

Resposta

Tínhamos certeza de que não queríamos usar PHP. O Facebook está preso a isso por motivos de legado, não porque seja a melhor escolha no momento. [1] Nossa principal lição com essa experiência é que a escolha da linguagem de programação é muito importante e extremamente cara de mudar.

Python era uma linguagem que Charlie e eu conhecíamos razoavelmente bem (embora eu a conheça muito melhor agora do que Eu fiz quando começamos). Também consideramos brevemente C #, Java e Scala. Os maiores problemas com Python são a velocidade e a falta de verificação de tipos.

C # parecia muito promissor. Como linguagem de programação, é ótimo, mas:

  • Não queríamos estar na pilha da Microsoft. Estávamos prontos para aprender algo novo, e o MS SQL Server realmente parecia muito bom, mas sabíamos que precisaríamos nos integrar com muitos códigos-fonte abertos que têm apenas suporte de segunda classe para .NET, se é que temos suporte. Além disso, a maioria dos melhores engenheiros hoje em dia está acostumada com coisas de código aberto.
  • Não queríamos correr o risco de estar no Mono (uma implementação de código aberto de C # / .net). Não está claro quanto tempo haverá financiamento para esse projeto, e eu ouvi falar de vários problemas de desempenho. Além disso, parecia que tudo o mais no ecossistema C # assumiria que estávamos na pilha da Microsoft.

Por uma série de pequenos motivos, programas Java acabam sendo mais longos e mais difíceis de escrever do que os programas Python equivalentes. Também é mais difícil interoperar com coisas não Java. Scala tinha muitas desvantagens de Java e JVM, embora não fosse tão ruim. A linguagem parecia um pouco nova e poderia trazer alguns riscos desnecessários (por exemplo, quem sabe quão bom será o suporte em 10 anos).

Duas outras línguas em que pensamos brevemente foram OCaml e Haskell (nenhum dos dois tinha ecossistemas grandes o suficiente ou bibliotecas padrão boas o suficiente, e ambos eram potencialmente muito difíceis para alguns designers / analistas de dados / não engenheiros que precisavam escrever código).

Decidimos que Python era rápido o suficiente para a maior parte do que precisamos fazer (já que enviamos nosso código crítico de desempenho para servidores de back-end escritos em C ++ sempre que possível). No que diz respeito à verificação de tipos, acabamos escrevendo testes de unidade muito completos que valem a pena ser escritos de qualquer maneira e alcançam a maioria dos mesmos objetivos. Também tínhamos muita confiança de que Python continuaria a evoluir em uma direção que seria boa para a vida de nossa base de código, tendo visto sua evolução nos últimos 5 anos.

Até agora, nós “vimos ficamos muito felizes com a escolha. Há um pequeno viés de seleção, mas todos os primeiros funcionários que trabalharam com outras linguagens no passado ficaram felizes com a transição para Python, especialmente aqueles vindos do PHP. Desde o início, as coisas a seguir aconteceu:

  • Python 2.6 chegou ao ponto em que muitas das bibliotecas que usamos eram compatíveis com ele e fizemos uma transição muito fácil para ele.
  • Tornado (web framework) foi lançado como código aberto e mudamos nosso serviço da web de atualização ao vivo para isso.
  • O PyPy chegou ao ponto em que parece que será eventualmente utilizável e nos dará uma aceleração significativa.

Todos juntos, eles nos dão a confiança de que a linguagem e o ecossistema estão se movendo em uma boa direção.

[1] O que é o horror s de PHP? e Os engenheiros do Facebook gostam de programar em PHP? e por que o Facebook não migrou do PHP? e quais são algumas das vantagens do PHP sobre outras linguagens de programação? para saber mais sobre isso.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *