El viernes decidí comprarme un libro técnico para aprender un nuevo lenguaje con el cual desarrollar un pequeño trabajito paralelo que tengo aparcado y de paso para engrosar el currículum con un nuevo y flamante lenguaje de programación. El trabajo es rehacer una pequeña aplicación que gestiona una web estática y que esta hecho con Visual Basic 6. Como no tengo muchas ganas de trastear con VB y la aplicación es realmente pequeña voy a utilizar este trabajo, que aunque remunerado no corre prisa, para añadir un punto nuevo al currículum. Así que estuve indagando en los dos lenguajes que voy a comparar decidiendo cual seria el escogido. Como la aplicación tiene que ser para Windows, los bindings GTK+ y Qt de Python no resultan ninguna ventaja. Así que tenia bastante pensado utilizar wxWindows para relizar el interfaz de usuario. Lo primero que hice fue leerme el tutorial de Python de la pagina oficial y realmente te ayuda a aprender el lenguaje, sobretodo si, como yo, estas familiarizado con Perl. Tras esto me puse a investigar Ruby y la verdad es que la sintaxis no es tan bonita como Python, que tiene una sintaxis muy limpia, de lo mas limpio que he visto en lenguajes de programación prácticos. Lo bueno que tiene Ruby es que esta diseñado pensando mucho en el diseño y en hacer un lenguaje plenamente Orientado a Objetos, no nos extrañaremos si tenemos en cuenta que es mas joven aun que Java, mientras que Perl (87) y Python (91) llevan bastante tiempo en activo. Esto hace que, aunque a primera vista la sintaxis de Python sea mas limpia, en cuanto te familiarizas un poco con Ruby la sintaxis pasa totalmente desapercibida.
Sin mas dilación pasemos a las simpáticas listas de ventajas de cada uno.

Python

  • Gran cantidad de excelente documentación online: esto es un punto muy bueno para Python. Es un lenguaje que no necesitas ningún libro ya que en Internet se puede encontrar el Cookbook, muy buenos tutoriales, etc. Lo único malo es que se tiende a abusar de gags de los Monty Python que para los no familiarizados puede resultar algo molesto.
  • Mucho soporte por parte de la industria: hay bastantes empresas que han empezado a apostar por Pyhon, con lo cual tenemos bastantes IDEs muy buenos, como Komodo de ActiveState.
  • Sintaxis muy clara: debido a su feature de tener que organizar el código mediante espacios, el código en Python queda muy bonito, limpio y claro.
  • Python tiene mejor soporte para Windows. Esto no es especialmente importante para mi ya que no tenía intención de usar COM o OLE o demas tecnologias Microsoft, pero claramente es un punto a favor de la serpiente.

Ruby

  • Ruby es un lenguaje elegante, con un impecable diseño y que además tiene algunas cosillas heredadas de Perl aunque, dicho sea de paso, solo las buenas ;)
  • Ruby trae integrado la parte de Testing Unitario lo cual quiere decir que facilitara utilizarlo y, creo, que se incita a ello, lo cual es una buena practica
  • Aunque no tiene todavía demasiado soporte, en los últimos días esta experimentando un boom debido al fantástico framework Ruby on Rails, asi que es posible que, en un futuro tenga bastante soporte por parte de la empresa
  • Es un lenguaje arcano, creado en Japón, lo cual le da un toque nada despreciable de misticismo para añadir al currículum :)

Finalmente, tras valorar pros y contras y, principalmente debido a que, de los dos, el que tenia el mejor libro-biblia, como el Programming Perl (el libro del camello) es para Perl, era Ruby con su “PickAxe”, me decidí por este segundo, mas que nada porque me apetecía tener un libro de papel. Espero que esta comparación os sea de utilidad o al menos que os haya entretenido un rato.

4 comentarios en “Una comparación Ruby/Python”

  1. GitaninNocturno dice:

    Un apunte: Python también viene con clases para realizar Test Unitarios en su librería estándar desde la versión 2.1; basta con importar el módulo unittest.

    Más información: http://www.onlamp.com/pub/a/python/2004/12/02/tdd_pyunit.html

    Un saludo.

  2. FANatiko dice:

    @GitaninNocturno: Gracias por el apunte. Al final, cosas de la vida, el proyecto no llego a más. Y, aun mas curioso, he acabado utilizando más Python ya que a mi jefe (y alguno otro programador de la empresa) le gusta bastante para hacer utilidades y tal y tenemos unos cuantos scripts en Python y, realmente, esta muy bien. Aunque lo usamos mas bien para substituir a los batch files (BAT) de MS-DOS ya que trabajamos en Windows (porque usamos herramientas de Win32) pero queremos la potencia que una shell nos da.

  3. angel dice:

    veo que ha pasado algo de tiempo..hoy por hoy usas ruby…seguistes aprendiendolo?, para mi es mi lenguaje favorito, sobre python, lamentablemente es demasiado lento y eso lo limita bastante

  4. @angel: Pues al final acabe decantandome por Python para hacer ese programa ya que lo utilizamos durante un tiempo para nuestro sistema de build (con SCons) y lo aprendi así.

    En cuanto a velocidad, no hay mucha diferencia entre Ruby y Python (los dos se mueven en ordenes similares respecto a C/C++) y el segundo tiene más librerías. Ruby tiene RoR, que es muy chula, pero p.ej para interfaz de usuarío tienes menos alternativas.

    De todas formas, aunque ahora básicamente programo en C++, saber Python es super util, porque te permite desarrollar pequeños scripts para tareas concretas de forma muy rápida.

Deja una Respuesta