2011-07-24 12 views
10

Soy un novato en el mundo de Python y GAE y tengo una pregunta. Con Python, el enfoque normal es solo optimizar el código cuando sea necesario, solucionando los cuellos de botella más urgentes. Y una de las formas de lograrlo es reescribiendo las partes más críticas del programa en C.Mezcla de python con un lenguaje más rápido para la optimización en GAE

Al usar GAE ¿estamos perdiendo esta posibilidad para siempre? Dado que Google's Go language es ahora (o lo será tan pronto como se compila de manera más eficiente) el idioma más rápido en GAE, ¿habrá una manera de mezclar Python y Go en la misma aplicación? ¿Qué otras formas podrían usarse para lograr un resultado similar?

Respuesta

9

Consulte Can I write parts of the Google App Engine code in Java, other parts in Python? para saber cómo usar varios idiomas.

Básicamente, cada versión de una aplicación determinada solo puede usar un idioma de tiempo de ejecución.

Sin embargo, puede tener dos versiones diferentes de su aplicación, escritas en diferentes idiomas, y pueden pasar información de ida y vuelta a través del almacén de datos.

Además, puede tener dos aplicaciones diferentes, en dos idiomas diferentes, y puede tener que pasar información de ida y vuelta a través de las solicitudes.

+1

Tenga cuidado con dos aplicaciones diferentes de App Engine, ya que el acuerdo parece prohibir eso (es probable que evite que las personas intenten evitar las cuotas). – Kitsune

5

Creo que está cayendo en la optimización prematura aquí. Para casi todos los webapps, la mayoría del tiempo que se pasa es en RPC, esperando a que el resto del sistema haga algo como las consultas del almacén de datos del proceso. Del resto, una fracción significativa a menudo se gasta en el código C de todos modos. Hay relativamente pocas aplicaciones web que necesitan mucho trabajo intensivo de procesador para servir una consulta típica.

Si su aplicación es una de ellas, puede reconsiderar la escritura de toda su aplicación en Python, dada la falta de extensiones C en App Engine, y elegir Java o Go. Si su aplicación es una del 99% que necesita necesita hacer mucho trabajo intensivo de procesador para solicitudes típicas, no se preocupe.

Cuestiones relacionadas