Python vs. Java

Francesc Altet faltet en carabos.com
Jue Mayo 3 12:50:14 CEST 2007


El dj 03 de 05 del 2007 a les 11:31 +0200, en/na tny va escriure:
> El jue, 03-05-2007 a las 10:44 +0200, dlopez en aditel.org escribió:
> > Hola a tod en s :)
> > 
> > recientemente he tenido la gran noticia de poder participar en un  
> > proyecto que puede llegar a ser bastante grande.
> > 
> > La cuestión es que los que participamos en el proyecto en cuestión,  
> > tenemos que decidirnos por un lenguaje para implementarlo, (al menos,  
> > la parte crítica del negocio).
> > 
> > Por otros proyectos similares en los que hemos participado, y en su  
> > día se optó por Java (cuando Python no era lo que es ahora), parece  
> > que este lenguaje sería una opción a tener en cuenta. No obstante,  
> > siempre me ha parecido un lenguaje menos versátil que Python.
> > 
> > Pero claro, cuando hablamos de generar dinero, aquí lo que importa es  
> > que el lenguaje sea rapido en las operaciones, siempre y cuando ese  
> > incremento en el tiempo de programación sea asumible económicamente.
> > 
> > El funcionamiento básico del proyecto en cuestión, trataría de  
> > comunicación por red a través de varios protocolos, y unificarlo todo  
> > en un lenguaje común, que podría ser XML, pero no necesariamente, para  
> > luego almacenar y extras los datos en una BBDD.
> > 
> > Con esta ligera descripción, y partiendo que el factor rendimiento es  
> > bastante importante... ¿creéis que Python sería mejor o peor opción  
> > que Java?
> > 
> 
> Con psyco python va como una bala.
> Mi experiencia con psyco es muy satisfactoria, de media aumenta la
> velocidad de mis scripts entorno a un 1000%.

Cuidado con estos números. Dependiendo de lo que quieras acelerar, Psyco
puede ser más o menos rápido (aunque en general, nunca es más lento que
si no lo usas).  Aceleraciones de 10x, como la que dices obtener, son
fantásticas, aunque para mis códigos de producción, un factor 1.5x (o
incluso a veces 2x) de mejora son el pan de cada dia.

Después hay que tener en cuenta que Psyco no puede con todo. Por
ejemplo, Psyco se queja si intentas evaluar una lista comprensiva del
tipo:

e = [ p[0] for p in table.where('var2 <= 20')]

con un mensaje del tipo:

AttributeError: local variables of functions run by Psyco cannot be
accessed in any way, sorry

que básicamente quiere decir que Psyco no puede trabajar si en tu código
aparecen variable locales en funciones.

Otra cosa importante: Psyco sólo suporta arquitecturas i386 en 32-bits,
así que si tienes un PowerPC o un AMD/Intel con 64-bit olvídate.

Como complemento a esto, decir que el autor de Psyco, Armin Rigo, ha
trabajado muy duro en estos últimos años, junto con un puñado de otros
gurús, en el proyecto PyPy [1] para aplicar sus ideas al JIT (sin las
limitaciones del Psyco) que lleva incorporado.  Yo estuve en varias de
las charlas que dieron en el último EuroPython y la verdad es que tiene
muy buena pinta. Además, en marzo pasado PyPy salió en versión 1.0, así
que definitivament vale la pena echarle un vistazo para empezar un
proyecto nuevo.

[1] http://codespeak.net/pypy/dist/pypy/doc/news.html

Saludos,

-- 
Francesc Altet    |  Be careful about using the following code --
Carabos Coop. V.  |  I've only proven that it works, 
www.carabos.com   |  I haven't tested it. -- Donald Knuth

------------ próxima parte ------------
_______________________________________________
Python-es mailing list
Python-es en aditel.org
http://listas.aditel.org/listinfo/python-es


Más información sobre la lista de distribución Python-es