Dudas sobre Python II

Zara yozara en terra.es
Lun Feb 4 09:58:12 CET 2008


On Thu, 31 Jan 2008 10:42:32 -0200, Agrelot <agrelot en gmail.com> wrote:

>Antes que nada GRACIAS  José, Oswaldo, Ramón, Juan Ignacio por responder.
>"Por culpa" de Uds, creo que desde hoy me tendrán como un pythonero más.
>Solo una duda más ¿Cómo va con la velocidad (por el hecho de ser
>interpretado)?. ¿Los deja "conformes" como para un proyecto tipo
>profesional?. ¿Que programa de uso profesional hecho en Py me recomiendan
>para  bajarmelo para probar su rendimiento?.

Tres cosas hay que mirar para valorar la velocidad que se puede
esperar de un proyecto:

a) Los cuellos de botella del lenguaje: En ese caso, python o java, al
ser interpretados, pueden resultar más lentos frente a los compilados
(C, C++ ....) o que el propio ensamblador. *puede*, no deben. Muchas
veces, las estructuras de datos que usan los programas interpretados
están tan horrorosamente optimizaas que un humano normal ya no es
capaz de igualar su eficacia.

b) Los cuellos de bortella de la aplicación: Si se comunica mucho (por
ficheros, por red, con la pantalla), la velocidad puede estar limitata
por la entrada y salida, de tal modo que el punto (a) resulte
totalmente irrelevante. Y que conste que esto es muchísimo más
frecuente de lo que parece.

c) El tiempo de desarrrollo y de depuración. Un programa que tar 3
segundos en ejecutar algo bien, 5 segundos en ejecutar algo mal (bug),
y 5 meses en corregir ese bug, resulta en definitva mucho más lento
que un programa que haga lo mismo en 5 segundos, 7 segundos y 3 días
repectivamente. En ese respecto, los lenguajes de bajo nivel (C) y muy
bajo nivel (ensamblador) tienen tiempos de corrección muy largos,
mientras que un lenguaje dinámico como el python tiene un tiempo de
corrección muy corto. Los lenguajes con tipos muy fuertes (java, C++)
tienen  unos tiempos de depuración cortos o medios, pero con ventajas
frente al python en cuanto a que el compilador descubre ciertos
errores del sistema de tipos que en python sólo pueden aparecer al
ejecutar el trozo concreto en las condiciones concretas del error.

Personalement, yo utilizo el C++ para los programas de gran
complejidad o los procesos críticos, python para los procesos que
quiero generar rápidamente y que implican mucho proceso de cadenas
(especialmente expresiones regulares) porque me resulta mucho más
fácil de probar y de purar, y Haskell si deseo funciones o programas
de los que pueda comprobar su funcionamiento por medio del
razonamiento y no de los test unitarios.

Usa python, seguro que te encanta. El resto, vendrá después si acaso
sientes la necesidad.

saludos,

Zara

_______________________________________________
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