Hola mundo, Ruby!


El primer programa que hace un principiante en cualquier lenguaje de programación es el ya conocido “Hola Mundo”, y para mantener la tradición te enseñaré a hacerlo en ruby.

Abre tu editor de textos favorito y crea un fichero que se llame hola.rb, .rb es la extensión que se usa para los scripts de ruby.
Ahora copia el siguiente código en el el fichero creado.

#!/usr/bin/env ruby
puts "Hola Mundo."
print "Ya estoy programando en ruby."

¿Como ejecuto un script en ruby?

Abre un terminal y posiciónate donde guardaste el fichero y ejecuta:

$ ruby hola.rb

o simplemente dale permisos de ejecución y corre el programa:

$ chmod +x hola.rb

$ ./hola.rb

La primea línea en el código le indica al sistema donde encontrar el interprete de ruby, esto es para sistemas descendientes de UNIX. Los que son de la familia Windows hacen la asociación a través de la extensión del archivo.

Ahí tienes dos formas de imprimir en pantalla, la primera siempre genera un salto de línea al final, mientras que la segunda tienes que indicárselo explícitamente con un \n, quedando de la siguiente forma:

print "Ya estoy programando en ruby.\n"

Un programa muy sencillo verdad.

Voy a modificar un poco el script para darle algo de interactividad con el usuario y que conozcas nuevos métodos.

#!/usr/bin/env ruby
fecha = Time.now

print "Por favor escribe tu nombre y presiona la tecla de retorno: "
nombre = gets.chomp

puts "Hoy es #{fecha}"
puts "Hola #{nombre}. Bienvenido al mundo de Ruby."

Aquí aparecen tres nuevos métodos:

  • gets, lee una línea de la consola, en este caso el nombre que escribas.
  • chomp, devuelve una cadena de texto con el separador especificado eliminado. Si no se le pasa parámetro alguno, elimina el salto o fin de línea(\n, \r, \r\n).
  • El método now de la clase Time se explica por si solo.

Si vienes de PHP es muy probable que hayas utilizado la expansión de variables.

echo "Su nombre es $nombre .";

Acá tienes algo parecido, pero se le conoce como evaluación embebida que no es más que ejecutar el código embebido dentro de una cadena siempre y cuando se encuentre dentro de #{} y la cadena esté delimitada por comillas dobles.

La evaluación de código embebido no se limita solamente a variables, también se pueden llamar métodos, ejemplo:

puts "Hola #{nombre.capitalize}. Bienvenido al mundo de Ruby."

Voy a modificar nuevamente el código para agregar una pequeña validación y mostrarte algo de las estructuras condicionales que puedes utilizar.

#!/usr/bin/env ruby                                                                                                                                                     
fecha = Time.now

print "Por favor escribe tu nombre y presiona la tecla de retorno: "
nombre = gets.chomp

puts "Hoy es #{fecha}"
if( nombre.nil? or nombre.empty? )
  puts "Hola amigo poco conversador. Bienvenido al mundo de Ruby."
else
  puts "Hola #{nombre}. Bienvenido al mundo de Ruby."
end

La sentencia if evalúa una expresión, en caso de ser verdadera ejecuta el bloque de código, puede aparecer junto a la sentencia else que ejecutará su respectivo bloque de código en caso de ser evaluada de falso la expresión.

En el ejemplo anterior el código a ejecutar si la expresión evaluada es verdadera es el comprendido entre el if y el else; si la expresión es falsa será ejecutado el código comprendido entre el else y el end.

Algunas veces podrás observar el if sin paréntesis, así también es correcto pues los paréntesis son opcionales.

Te escribo una lista de operadores que puedes utilizar en esta sentencia:

  • ==, igual a.
  • !=, distinto de.
  • >, mayor que
  • >=, mayor igual que.
  • <, menor que.
  • <=, menor igual que.
  • and o &&, une dos condicionales y retorna verdadero si ambas son verdaderas.
  • or o ||, une dos condicionales y retorna verdadero si al menos una de ella es verdadera.
  • !, niega una expresión evaluada; si la expresión era falsa la convierte en verdadera y viceversa.

Te pongo algunos ejemplos para que los evalúes en la consola interactiva(irb)

"hola" == "hola"
"hola" != "hola"
5 == 3 and 2 > 3

Seguro te diste cuenta que en el último script hay dos métodos utilizados que terminan en signo de interrogación. Esto es una convención en ruby para los métodos que retornan true o false.

Cuando comiences a escribir tus propios métodos te recomiendo mantengas esta convención.

Conclusiones

Hoy hiciste tu primer script en ruby y te mostré nuevos métodos, ya eres capaz de hacer pequeños programas. Conociste sobre evaluación embebida, estructura de control y algo de las convenciones del lenguaje.

En el próximo encuentro trataré sobre métodos, clases y objetos. De aquí en adelante todo se pondrá más interesante.