Por qué no Python?
Lunes, Marzo 10, 2008
Acabo de leer este post de Giuseppe el cual me pareció muy interesante.
Estoy de acuerdo con la gran mayoría de lo dicho en el post, sin embargo me llamó mucho la atención que Giuseppe no haya comentado las razones por las cuales descartó Python, las cuales me interesaría muchísimo leer.
Tengo la fuerte impresión, desde hace un tiempo mas bien largo, de que python es la mejor opción dentro de los “tres mosqueteros” como los llama Giuseppe (perl, python y ruby).
El por qué no elegiría perl es muy simple y se refiere mas que nada a la sintaxis, atención que esto no implica que perl no sea un gran lenguaje, de lo cual hace mucho tiempo estoy convencido.
En cuanto a python y ruby la cosa está mucho mas reñida por sus similitudes y diferencias, ambos lenguajes resultan muy ágiles y poderosos para escribir casi cualquier tipo de solución en ellos.
En cuanto a sintaxis python y ruby tienen cada uno ventajas y desventajas. Python parece ser mas apropiado para escribir codigo mas legible lo cual lo hace mas mantenible a largo plazo en comparación con el código que se escribe con ruby. Ruby permite mas libertad, lo cual lo convierte en un lenguaje mas placentero para escribir código, hace mas fácil construir prototipos y DSLs con él y seguramente permite reducir levemente la cantidad de LoC. Personalmente prefiero la sintaxis de ruby aunque para proyectos grandes y complejos creo que la de python es menos riesgosa.
En cuanto a performance, python lleva la ventaja, al menos en mi experiencia, y siempre hablando del ruby de matz (no he desarrollado proyectos completos con jruby el cual tiene el potencial de performance de la JVM).
Sin embargo cada vez que vuelvo a Ruby por algún proyecto en particular, siempre me decepciona en un momento u otro la calidad de las librerías estandar. Suelen estar a medio implementar, ser incompletas, sin consistencia en el diseño de las APIs, o con APIs muy pobres y hasta APIs copiadas 1 a 1 de otros lenguajes. Suelen tener bugs y cuando las empiezo a hacer el debug ya no me sorprenden letreros del tipo “no implementado” en el código. Su documentación también desilusiona bastante, la gran mayoría de los métodos no tienen ni una descripción de lo que hacen.
En comparación, las librerías de python suelen estar completas y ser bastante robustas, bien documentadas e incluso tener muy buena performance.
En fin… sigo queriendo saber por qué Giuseppe excluyó a Python de su lista…
Lunes, Marzo 10, 2008 a las 18:32
Hola Pil,
Ante todo, gracias por comentarme, y citarme en tu blog.
Voy a comenzar a escribir en breves segundos una nueva entrada en mi blog exclusivamente para contestarte, pero sobre todo, antes de nada (para quien lea tu blog y no el mío
) dejar claro que la decisión ha sido más por decisión personal, que técnica.
Un saludo, y espero que lo leas.
Jueves, Marzo 13, 2008 a las 16:32
[...] Marzo 13, 2008 Después de leer la respuesta de Giuseppe a mi post anterior (y tener tiempo libre para responder) me quedé con la impresión de que Giuseppe me malinterpretó [...]