← Ruby EspañolChapter 01 of 13

Introduccion a Ruby

## Objetivos de Aprendizaje - Comprender la historia y filosofia de Ruby - Configurar el entorno de desarrollo de Ruby - Escribir y ejecutar tu primer programa en Ruby - Comprender los fundamentos de la sintaxis de Ruby ## Que es Ruby? Ruby es un lenguaje de programacion dinamico y orientado a objetos creado por Yukihiro Matsumoto (Matz) en 1995. ```ruby puts "Hola, Mundo!" ``` ## Filosofia de Ruby ### Principios de Diseno - **Felicidad del Programador** - Ruby esta disenado para hacer felices a los desarrolladores - **Convencion sobre Configuracion** - Los valores predeterminados sensibles reducen la fatiga de decisiones - **DRY** - Don't Repeat Yourself (No te repitas) - **TIMTOWTDI** - There Is More Than One Way To Do It (Hay mas de una forma de hacerlo) ### Caracteristicas Clave - Puramente orientado a objetos (todo es un objeto) - Tipado dinamico - Recoleccion de basura - Consola interactiva (IRB) - Rica biblioteca estandar ## Instalando Ruby ### Descarga Obtener Ruby desde o usar un gestor de versiones: ```bash # Usando rbenv (macOS/Linux) brew install rbenv rbenv init # Usando RubyInstaller (Windows) # Descargar desde https://rubyinstaller.org/ ``` ### Verificar Instalacion ```bash ruby --version ``` ## Tu Primer Programa ### Archivo: hola_mundo.rb ```ruby puts "Hola, Mundo!" ``` ### Ejecutar el Programa ```bash ruby hola_mundo.rb ``` ## Estructura de un Programa en Ruby ```ruby # Este es un comentario # Definir un metodo def saludar(nombre) "Hola, #{nombre}!" end # Llamar al metodo e imprimir resultado puts saludar("Mundo") ``` ### Componentes 1. **Comentarios**: Lineas que comienzan con `#` 2. **Metodos**: Definidos con `def...end` 3. **Variables**: No se necesita declaracion de tipo 4. **Interpolacion de cadenas**: `"#{expresion}"` ## Comentarios ```ruby # Comentario de una sola linea =begin Comentario de multiples lineas Esto rara vez se usa en la practica =end ``` ## El Metodo puts ```ruby # Imprimir con salto de linea puts "Hola" puts "Mundo" # Imprimir sin salto de linea print "Hola " print "Mundo" puts # Imprimir array (cada elemento en nueva linea) puts [1, 2, 3] # Salida: # 1 # 2 # 3 ``` ## Print vs puts vs p ```ruby nombre = "Alicia" print "Hola: " # Sin salto de linea, sin comillas puts "Hola: " # Con salto de linea, sin comillas p "Hola: " # Con salto de linea, con comillas (depuracion) puts nombre # Alicia p nombre # "Alicia" (muestra comillas - util para depuracion) ``` ## Ruby Interactivo (IRB) ```bash irb ``` ```ruby irb(main):001:0> 1 + 2 => 3 irb(main):002:0> "hola".upcase => "HOLA" irb(main):003:0> exit ``` ## Variables ```ruby nombre = "Ruby" # Variable local @edad = 25 # Variable de instancia @@contador = 0 # Variable de clase PI = 3.14159 # Constante ``` ## Convenciones de Nombres | Tipo | Convencion | Ejemplo | |------|------------|---------| | Variable local | minusculas con guion bajo | `primer_nombre` | | Variable de instancia | prefijo @ | `@nombre` | | Variable de clase | prefijo @@ | `@@contador` | | Constante | MAYUSCULAS | `TAMANO_MAXIMO` | | Nombre de metodo | minusculas con guion bajo | `def calcular_total` | ## Argumentos de Linea de Comandos ```ruby # hola.rb nombre = ARGV[0] || "Mundo" puts "Hola, #{nombre}!" ``` ```bash ruby hola.rb Alicia # Salida: Hola, Alicia! ``` ## Versiones de Ruby ```bash ruby --version ``` | Version | Ano | Caracteristica | |---------|------|----------------| | Ruby 2.5 | 2017 | Reenvio de argumentos | | Ruby 2.7 | 2019 | Pattern matching | | Ruby 3.0 | 2020 | Ractor, RBS | | Ruby 3.2 | 2022 | Compilador YJIT | ## IDEs ### Editores Populares - Visual Studio Code (recomendado) - RubyMine - Sublime Text - Vim/Neovim con vim-ruby ### Extensiones Utiles para VS Code - Ruby - erb - Ruby Solargraph ## Resumen - Ruby esta disenado para la felicidad del programador - Todo en Ruby es un objeto - Usa el comando `ruby` para ejecutar archivos `.rb` - Usa `puts` para salida, `print` para inline - IRB proporciona exploracion interactiva de Ruby - Los tipos de variables se infieren (no se necesita declaracion)

Comments

Comments powered by Giscus

To enable comments, add your Giscus embed code here.

Learn more about Giscus →