Didáctica de la Informática

26 noviembre 2005

Ruby

¿Existe algún lenguaje de programación que sea didáctico y al mismo tiempo práctico? A lo largo de los años he descubierto algunos. No resulta fácil, por cierto, y el motivo es que, por lo general, los lenguajes más didácticos son precisamente los menos conocidos. Parece existir una regla universal no escrita que dice que los lenguajes más raros, menos naturales y menos elegantes son precisamente los más utilizados, los más nombrados. Los mainstream, como dirían los ingleses.

Un lenguaje de programación didáctico debe ser:

  • fácil de aprender (es evidente)
  • potente (capaz de hacer de todo con muy poco código)
  • elegante (claro, que se entienda a la primera)
  • expresivo (que el código exprese su significado de manera natural)
  • ortogonal (que todo funcione donde se supone que deba funcionar)
Por supuesto, esta lista no está completa ni mucho menos. Cabría hablar mucho sobre las características de un buen lenguaje de programación didáctico, pero bajo mi punto de vista, éstas son las imprescindibles.

De entre todos los lenguajes (que tampoco son muchos) que cumplen tales requisitos, mi favorito es Ruby. Todo aquel interesado debería visitar su página principal, así como la página del grupo Rubies (la comunidad hispana del lenguaje Ruby). En todo caso, sus características más interesantes de cara a su utilización como primer lenguaje son:

  • Es un lenguaje moderno y evolutivo: nació en 1995 y es mejorado cada día.
  • Es un lenguaje orientado a objetos puro: en Ruby todo son objetos, incluyendo los datos básicos como el número 5 o la cadena "hola". No existen dos modos de trabajo (tipos y clases) como en Java o C++.
  • Es un lenguaje dinámico: no hay necesidad de declarar las variables y sus tipos.
  • Es un lenguaje fuertemente tipado: los objetos son instancias de una determinada clase (siempre conocida), y sobre ellos se pueden aplicar tan sólo una serie de operaciones bien definidas por sus clases (por tanto, sólo responden a determinados mensajes, siempre bien conocidos).
  • Es un lenguaje interpretado: los programas no se compilan, por lo que se acorta el ciclo clásico de «edición - compilación - enlace - ejecución». Además, se puede acceder directamente al intérprete en modo interactivo.
  • Tiene una sintaxis sencilla: heredada de otros lenguajes extraordinarios como Eiffel, pero al mismo tiempo compatible en cierta forma con la de otros más conocidos como C.
  • Es un lenguaje real: Ruby se utiliza para resolver todo tipo de problemas, pero es particularmente interesante en el tratamiento de cadenas y la administración de sistemas. Además, recientemente ha sufrido una explosión de popularidad gracias a la plataforma de desarrollo web Ruby on Rails, que ha supuesto un fuerte shock entre todos los desarrolladores de aplicaciones para Internet, y que ha dado lugar a imitadores basados en otros lenguajes (como el proyecto Django para Python).
Bajo muchos aspectos, creo que Ruby es el lenguaje de programación perfecto para aprender a programar. Ese aprendizaje puede luego complementarse con la adquisición de otras prácticas tan recomendables como el diseño por contrato, o el tipado estático (técnicas en las que el lenguaje Eiffel brilla con luz propia), pero las primeras tareas de programación pueden orientarse perfectamente hacia la claridad y la sencillez con herramientas tan adecuadas como Ruby.

En el próximo envío veremos algunos ejemplos de por qué Ruby es el candidato perfecto para nuestros propósitos.

2 Comentarios:

  • Oye, Ricky, he estado leyendo varias referencias que, como tú, califican a Ruby como el lenguaje ideal para iniciarse en eso de la programación. Ya sabes que llevo tiempo dándole vueltas a eso, y me ha interesado mucho lo de Ryuby. ¿Sabes si existe algún libro sobre Ruby, para principiantes a ser posible, en inglés o español, que pueda comprar?

    Por Blogger M. Ignacio Monge García, el 03 diciembre, 2005 15:42  

  • Hombre, precisamente estoy empezando ya a traducir el «How to Think Like a Computer Scientists (versión Python)» y adaptarlo a Ruby. Ya lo hice hace unos tres años para el lenguaje Eiffel, y el resultado lo puse en Sourceforge. El otro día hablé por e-mail con Jeff Elkner (el responsable de la adaptación a Python del libro original, que estaba diseñado para Java), y ya me dijo que sin problemas.

    Pero como eso va a tardar bastante... Te recomiendo el Programming Ruby (2 ed.). Es Imprescindible.

    Y bastante didácticos son también el Why's (poignant) guide to Ruby, el «Ruby in a Nutshell», el «The Ruby Way» y el «Ruby Developer's Guide». Yo los tengo todos así que sólo tienes que pedírmelos.

    Por Blogger Ricardo, el 04 diciembre, 2005 16:01  

Publicar un comentario

<< Inicio