martes, octubre 23, 2007

Ruby, ese "pequeño" lenguaje de programación

Bueno, ya dije en el post anterior me que encuentro aprendiendo a programar con Ruby...

Después de una semanita de estudio estoy empezando a llorar de alegría, ¡Ya me estoy despegando de C!, en esta última semana cuando estaba en clase de compiladores, mientra el profesor decía cosas yo estaba ya pensando en el código que supondría... EN RUBY!!! ESTABA PENSANDO EN UN COMPILADOR EN RUBY! no en Ada, ni C, ni Java... ni siquiera en ensamblador xDD, sólo en Ruby, señal de lo rápido que le puede llegar a gustar a uno este lenguaje y es que el desarrollo es muuuucho más rápido.

Para prácticar un poco decidí hacer las prácticas de otra asignatura que tuve en su momento (MP2) y así coger soltura con más o menos todos los detalles del lenguaje. Pues haciendo un paquete de listas, lo típico, se me ha quedado en esto.

class List
def initialize
@iter = nil
@list = []
end

def insert(elem, *rest)
@list << elem
rest.each do |i|
@list << i
end
return @list
end

def extract
@list.shift
end

def length
@list.length
end
end

¿No les parece simple a la par que fácil de leer y hermoso? ^^. De lo que más orgulloso me siento es del insertar :P

viernes, octubre 19, 2007

El man de ruby

Hola amiguetes! me echabais de menos?... NO?!, jo... Bueno da igual, ahí vamos con el apunte de hoy.

Pues resulta que estoy aprendiendo ruby, ya había mirado cosas hace algún tiempo pero ahora estoy en plan serio, ya escribo algunas cosillas y espero que en breve pueda empezar ya a usar todo el potencial de ruby tanto para hacerme bibliotecas, como programas grandes o para escribir pequeños scripts para hacer rápidamente una tarea.

Bueno, para todo el que quiera empezar y para recordarlo yo mismo, una de las primeras cosas que he aprendido en ésta mi n-ésima vez aprendiendo ruby (y que no sabía las veces anteriores) es que ruby tiene un sistema de documentación, el paquete RDoc (Ruby Documentation). Cuando lo hayamos instalado podremos hacer consultas usando el programa ri (Ruby Information) sobre cualquier método y se nos presentará en pantalla una pequeña ayuda diciendo qué es lo que hace y qué hay que pasarle, etc... MUY MUY ÚTIL PARA NOVATOS.

Otra cosa que me resulta pesada cuando se va a aprender uno un nuevo lenguaje es la cantidad de funciones que desconoce y empiezas a implementartelas tú sin saber que ya existen... Ahora para evitarme esa situación y conocer las funciones, cuando necesito hacer algo que lo primero que se me pasa por la cabeza es "joder, esto es algo típico", entonces es altamente probable que ruby ya tenga una función que hace eso y mil cosas más. Para saber que funciones tiene un objeto o clase existe un método llamado methods que devuelve un array con todos los métodos disponibles para ese objeto. Tener en cuenta que son TODOS, esto es, todos los heredados desde la clase Object hasta la clase que es. Si queremos ver que métodos tiene sólo de la última clase podemos utilizar el método instance_methods. Esto es especialmente útil para buscar nombres que nos suenen a que pueden hacer lo que queremos y luego usar ri o ri [.|#] (lo siento, tuve que poner una regexp :P) para ver qué es lo que realmente hace.

Pues eso, espero que si deciden aprender ruby, esto les ayude.