Mejor respuesta
Python es bastante capaz como lenguaje del lado del servidor. Hay otras opciones que, según sus necesidades, pueden ser una mejor opción:
Go, PHP, Java / Kotlin y C # para nombrar unos pocos. Estos han establecido bibliotecas del lado del servidor (o en el caso de Go y PHP, que se construyen específicamente como motores del lado del servidor).
Respuesta
Estábamos seguros de que no queríamos usar PHP. Facebook está atascado en eso por razones heredadas, no porque sea la mejor opción en este momento. [1] Nuestra principal conclusión de esa experiencia es que la elección del lenguaje de programación es muy importante y es extremadamente costoso de cambiar.
Python era un lenguaje que Charlie y yo conocíamos razonablemente bien (aunque lo conozco mucho mejor ahora que Lo hice cuando empezamos). También consideramos brevemente C #, Java y Scala. Los mayores problemas con Python son la velocidad y la falta de verificación de tipos.
C # parecía bastante prometedor. Como lenguaje de programación, es genial, pero:
- No queríamos estar en la pila de Microsoft. Estábamos preparados para aprender algo nuevo, y MS SQL Server en realidad parecía bastante bueno, pero sabíamos que necesitaríamos integrarnos con mucho código fuente abierto que solo tiene soporte de segunda clase para .NET, si es que lo admite. Además, la mayoría de los mejores ingenieros en estos días están acostumbrados a cosas de código abierto.
- No queríamos correr el riesgo de estar en Mono (una implementación de código abierto de C # / .NET). No está claro cuánto tiempo estará disponible la financiación para ese proyecto, y había oído hablar de varios problemas de rendimiento. Además, parecía que todo lo demás en el ecosistema C # supondría que estábamos en la pila de Microsoft.
Por muchas pequeñas razones, los programas Java terminan siendo más largos y más dolorosos de escribir que los programas de Python equivalentes. También es más difícil interoperar con cosas que no son de Java. Scala tenía muchas de las desventajas de Java y la JVM, aunque no era tan malo. El lenguaje parecía demasiado nuevo y como si conllevara algún riesgo innecesario (por ejemplo, quién sabe qué tan bueno será el soporte en 10 años).
Otros dos lenguajes en los que pensamos brevemente fueron OCaml y Haskell (ninguno tenía ecosistemas lo suficientemente grandes o bibliotecas estándar lo suficientemente buenas, y ambos eran potencialmente demasiado difíciles para algunos diseñadores / analistas de datos / no ingenieros que podrían necesitar escribir código).
Decidimos que Python era lo suficientemente rápido para la mayor parte de lo que tenemos que hacer (ya que enviamos nuestro código de rendimiento crítico a servidores backend escritos en C ++ siempre que sea posible). En cuanto a la verificación de tipos, terminamos escribiendo pruebas unitarias muy completas que vale la pena escribir de todos modos, y logran la mayoría de los mismos objetivos. También teníamos mucha confianza en que Python continuaría evolucionando en una dirección que sería buena para la vida de nuestro código base, después de haberlo visto evolucionar durante los últimos 5 años.
Hasta ahora, hemos he estado bastante contento con la elección. Hay un pequeño sesgo de selección, pero todos los primeros empleados que habían estado trabajando con otros lenguajes en el pasado estaban felices de hacer la transición a Python, especialmente los que provienen de PHP. sucedió:
- Python 2.6 llegó al punto en el que suficientes bibliotecas que usamos eran compatibles con él, e hicimos una transición muy fácil a él.
- Tornado (web framework) fue lanzado como código abierto, y trasladamos nuestro servicio web de actualización en vivo a eso.
- PyPy llegó al punto en que parece que eventualmente será utilizable y nos dará una aceleración significativa.
Todos juntos, nos dan la confianza de que el lenguaje y el ecosistema se están moviendo en una buena dirección.
[1] ¿Cuáles son los s de PHP? y ¿Los ingenieros de Facebook disfrutan de la programación en PHP? y ¿Por qué Facebook no ha migrado de PHP? y ¿Cuáles son algunas de las ventajas de PHP sobre otros lenguajes de programación? para más información al respecto.