Python vs. Java

Chema Cortes pych3m4 en gmail.com
Jue Mayo 3 13:24:19 CEST 2007


El 3/05/07, dlopez en aditel.org <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.

Para aconsejarte mejor, me gustaría saber qué entiendes por "versátil".


> 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?

Si hablamos de empresa, hay que considerar que J2EE ha supuesto una
estandarización en servidores de aplicaciones web que no se puede
ignorar. Los vendedores de hardware y soluciones integradas se basan
en estas directrices, asegurándo a las empresas cierta escalabilidad
que no conseguirían con soluciones específicas. También es verdad que
se está favoreciendo la aparición de empresas "francotiradoras" que se
creen capaces de todo, pero cuya calidad de desarrollos deja mucho que
desear.

Aún así, jython es una buena opción para incorporar dentro de
cualquier desarrollo java, sirviendo tanto como lenguaje principal de
desarrollo, como lenguaje de scripting. La orientación tan fuerte a
objetos que tiene java hace muy pesado cierto tipo de programación
declarativa como la empleada al parsear ficheros xml. Por éso, muchos
programadores java están incorporando lenguajes de scripting como
jython o groovy en sus desarrollos.

Pero creo que en tu pregunta va incluido el tema de "rendimiento". No
sé qué tipo de desarrollos estás haciendo, pero no descartaría el
compilar nativamente java (gcj, jike,...). Python, "per sé", no es un
lenguaje rápido; es, sobre todo, elegante y de fácil escritura y
mantenimiento. Si tu principal requisito es la velocidad igual
deberías buscar otras cosas. Creo que ya te han respondido con algunas
alternativas (psyco, pyrex, pypy,...faltaría stackless). Yo, por mi
parte, te recomendaría algo de lua, el lenguaje de scripting más
rápido que hay y que menos requisitos de memoria pide, pudiéndose
combinar con java y python, si es necesario.




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