Re: [Python-es] Presentación
lasizoillo
lasizoillo en gmail.com
Dom Jun 14 15:25:09 CEST 2009
El 14 de junio de 2009 12:11, nodie nodie<josemariaruiz en gmail.com> escribió:
> El 14 de junio de 2009 10:01, Javier Santana<qualopec en gmail.com> escribió:
>> Bienvenido José María. Ya que lo has comentado, para qué usas python?
>
> He probado casi todo lo que se puede poner sobre una CPU, y después de todo
> este tiempo Python es el único entorno en el que puedo leer programas
> de hace años y entenderlos en 1 minuto.
>
Razón más que suficiente para no usar otra cosa.
> Pero a pesar de eso tengo mis crisis. Estoy desarrollando un sistema
> con Cherrypy
> y me puse a hacer pruebas de rendimiento. Ví que daba 500 peticiones /segundo
> para un «hola mundo» mientras que tomcat6 da cerca de 2000peticiones/segundo.
>
¿Para que necesitas tanta velocidad? Se que más velocidad es menor
latencia hacia el usuario, que también es importante. ¿Has medido los
percentiles de tiempos de respuesta?
Java es mucho más rápido de ejecutar, consume mucha más memoria y se
programa mucho más lento. Los IDES te ayudan a generar gran cantidad
de código muy rápidamente que luego es un estorbo cuando estas
modificando el código (el 80% del tiempo). Como dice Hernan, mira
primero a ver si esas 500 peticiones/segundo no son suficientes.
Si no lo son, mira a ver si el contenido es cacheable y usa un cache.
Squid y Varnish son buenas opciones. Puedes hacer en ambos un "PURGE",
solicitar explicitamente que se expire un contenido. Toda la lógica de
uso del caché va a ser mucho más sencilla de hacer/integrar con
python. Ambas opciones van a ser mucho más rápidas que Tomcat. Estarán
a la altura de estatificar el contenido.
Si no es cacheable, diseña la parte crítica para que sea separable de
la no crítica mediante un balanceador (a nivel dns o urls). La parte
no crítica sigue haciéndola en python (que la harás más rápido). Para
la parte crítica usa Java, C (libevent te da mucho hecho), ... o
incluso python con algunos truquitos.
Si toda la parte es crítica, ahí ya si, igual tienes que olvidarte de python.
> Creo que lo peor de Python, y es algo que pretendo solucionar, es la
> sensación que da
> de no estar programando de «verdad». Ya sabes.... que no es JAVA xD.
>
A ti te va la marcha ;-)
> ¡¡¡Haces las cosas tan fácilmente que te preguntas a veces si lo has
> hecho bien!!!
Para eso estan las pruebas unitarias. Un rato después exclamas:
"Hostias, pues lo hice bien y hasta tengo pruebas hechas". Usando
python a uno se le acaban las excusas para no documentar los proyectos
;-)
>
> El lenguaje desaparece y solo tienes el problema delante. Es una sensación que
> solo he tenido programando en Lisp (sí... tube mi época psicodélica).
>
Lisp es una asignatura que se me quedo pendiente. Así que me olvidé de
tratar de aprender emacs y me centré en vim. Por cierto, el lenguaje
de scripting tiene un sospechoso parecido a python, aunque también se
puede usar python.
Un saludo:
Javi
_______________________________________________
Lista de correo Python-es
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes
Más información sobre la lista de distribución Python-es