Resumen Programacion en Ruby
Resumen Programacion en Ruby
ANTECEDENTES
Ruby es un lenguaje de programación dinámico y de código abierto que fue creado a mediados de
la década de 1990 por Yukihiro "Matz" Matsumoto en Japón, con el objetivo de combinar la
programación funcional con la orientación a objetos.
creó Ruby buscando un lenguaje que se ajustara a sus necesidades. Buscaba que fuera
sintácticamente simple, completamente orientado a objetos y portátil. Al no encontrar algo que se
ajustara a estas características, decidió crear un lenguaje propio. Matz liberó la primera versión
pública de Ruby (0.95) en 1995, aunque tenía trabajando en ella desde 1993
CARACTERÍSTICAS
Ruby se destaca por su sintaxis legible y su enfoque en la productividad del desarrollador. Está
inspirado en varios lenguajes de programación, como Perl, Smalltalk y Lisp, y combina características
de programación orientada a objetos con características de programación funcional
Características de Ruby
Sintaxis Legible: Ruby se destaca por su sintaxis clara y fácil de leer, lo que mejora
la productividad del desarrollador.
Inspiración de Otros Lenguajes: Se inspira en varios lenguajes de programación,
como Perl, Smalltalk y Lisp.
Programación Orientada a Objetos: Combina características de programación
orientada a objetos con elementos de programación funcional.
Tipado Dinámico: Ruby utiliza un sistema de tipado dinámico, lo que permite mayor
flexibilidad en el manejo de datos.
Sin Puntos y Comas: La sintaxis de Ruby no requiere el uso de puntos y comas al
final de las líneas.
Todo es un Objeto: En Ruby, todo, incluidas las clases y los módulos, es considerado
un objeto.
Reescritura del Lenguaje: Los desarrolladores pueden modificar o extender el
lenguaje según sus necesidades.
Altamente Productivo: Ruby está diseñado para maximizar la productividad del
desarrollador.
Interpretado: Es un lenguaje interpretado, lo que significa que el código se ejecuta
directamente sin necesidad de un proceso de compilación.
PRINCIPALES USOS
Análisis de datos: cuenta con bibliotecas y frameworks, como Rubygems y SciRuby, que facilitan el
análisis y la manipulación de datos.
Desarrollo de juegos: especialmente para juegos independientes y juegos en 2D. Las bibliotecas
como Gosu proporcionan capacidades gráficas y de entrada para el desarrollo de juegos en Ruby.
Automatización de pruebas: las bibliotecas como RSpec y Cucumber permiten escribir pruebas
automatizadas en un formato legible; esto facilita la creación y ejecución de pruebas de calidad.
OBJETIVOS
VENTAJAS DE RUBY
1. Es de propósito general, ya que está diseñado para usarse para cualquier tipo de
aplicaciones de servicio web
2. Es ágil, ya que permite que las aplicaciones desarrolladas funcionen con rapidez y sin
presentar
3. demasiados errores
4. Es dinámico y flexible, ya que ofrece algunas estrategias como la meta-programación, que
permite escribir programas que manipulan a otros
5. Es natural, Ruby ha sido un cambio en la perspectiva del lenguaje de programación, debido
a que es bastante natural, pero no es simple.
6. Contiene un lenguaje muy dinámico, debido a que permite toda clase de cambios que
desee hacer el usuario libremente
7. Algo que lo caracteriza entre las demás alternativas de programación, es que es nuevo e
innovador
8. Contiene una gran diversidad de funciones y herramientas que se pueden utilizar de forma
gratuita
DESVENTAJAS DE RUBY
1. Velocidad de ejecución: Ruby es conocido por ser un lenguaje interpretado, lo que puede
resultar en una menor velocidad de ejecución en comparación con lenguajes compilados
como C++ o Java
2. Consumo de memoria: El consumo de memoria de Ruby es relativamente alto en
comparación con otros lenguajes.
3. Escalabilidad: Aunque Ruby ofrece una gran flexibilidad y productividad para el desarrollo
web, puede enfrentar problemas de escalabilidad en aplicaciones de gran tamaño y tráfico
intenso
4. Documentación: Aunque la comunidad de Ruby es bastante activa y hay una amplia
cantidad de recursos disponibles, la documentación puede no ser tan extensa o clara como
en otros lenguajes
TIPOS DE DATOS
Numeros (Numeric)
Cadena de Texto (String) Representan secuencias de caracteres. Las cadenas en Ruby pueden
definirse usando comillas simples o dobles.
Booleanos (Boolean) Este tipo de dato solo tiene dos posibles valores: true (verdadero) o false
(falso). Se utiliza para representar condiciones lógicas.
Arreglos (Array) Los arreglos son listas ordenadas de elementos, que pueden ser de cualquier tipo
de dato. Los elementos se almacenan entre corchetes [] y se separan por comas
Hashes (Hash) Los hashes son colecciones de pares clave- valor, donde cada clave está asociada a
un valor. Se definen con llaves {} y las claves pueden ser cualquier tipo de dato.
Nil nil es un valor especial que representa "nada" o "vacío". Es similar a null en otros lenguajes de
programación.
Rango (Rangue) Los rangos representan un intervalo de valores, y son útiles para iteraciones o
verificaciones de inclusión. Se definen con dos puntos .. o tres puntos ... (excluye el último valor).
Representan números complejos, que incluyen una parte real y una imaginaria
DECLARACIÓN DE VARIABLES
En Ruby, simplemente asignas un valor a una variable para declararla. No es necesario especificar
el tipo de dato, ya que Ruby lo detecta automáticamente:
Deben comenzar con una letra minúscula o un guion bajo (_). Son sensibles a mayúsculas y
minúsculas.
Entrada
gets: Permite recibir entradas del usuario desde la consola. Lo que se ingresa siempre será una
cadena (String).
Para eliminar el salto de línea que agrega gets al final de la entrada, se usa chomp.
Salida de Datos
En Resumen
puts: Imprime y agrega un salto de línea. print: Imprime sin agregar un salto de línea. gets: Recibe
entrada del usuario (siempre como una cadena).
to_s (a cadena).
Clase: Es un molde o plantilla a partir de la cual se crean objetos. Define las características (atributos)
y el comportamiento (métodos) que los objetos de esa clase
Objeto: Es una instancia de una clase. Un objeto tiene atributos (datos) y métodos (funcionalidades).
Atributos: Son las propiedades o características que pertenecen a un objeto. En Ruby, los atributos
se definen usando variables de instancia (que comienzan con @).
Métodos: Son las acciones o comportamientos que un objeto puede realizar. En Ruby, los métodos
se definen con def.
Encapsulamiento: Es el principio que sugiere que los detalles internos de los objetos (atributos y
métodos) deben estar ocultos o protegidos. Se puede controlar el acceso a esos atributos usando
getters y setters.
Ruby ofrece los métodos attr_accessor, attr_reader, y attr_writer para manejar el acceso a los
atributos:
Herencia: Es el mecanismo que permite que una clase herede características y comportamientos de
otra clase. Esto ayuda a reutilizar código.
Características
Flexibilidad: No impone una estructura estricta del proyecto, lo que permite mucha libertad en
cómo organizar el código.
Rutas sencillas: Permite definir rutas fácilmente para manejar diferentes tipos de solicitudes HTTP
(GET, POST, etc.).
Integración fácil con otros sistemas: Puedes integrar fácilmente otros componentes, como bases
de datos, autenticación, entre otros.
Camping es otro framework de desarrollo web basado en Ruby, pero es mucho más pequeño y
minimalista en comparación con otros frameworks como Ruby on Rails o incluso Sinatra. Está
diseñado para tener un núcleo pequeño, pero ser lo suficientemente potente para manejar
aplicaciones web completas
Extremadamente ligero: Todo el framework está diseñado para ocupar menos de 4 KB de código.
Es un framework minimalista por excelencia.
Estructura inspirada en Rails: Aunque es minimalista, Camping se inspira en Rails y sigue algunos
de sus principios, como el uso de controladores, vistas y modelos, pero en una forma mucho más
compacta.
Ramaze es un framework ligero, flexible y modular que te permite construir aplicaciones web en
Ruby de manera sencilla. Si bien no incluye tantas herramientas preconfiguradas como Rails, es muy
útil para aquellos que buscan un framework más minimalista pero aún completo. Su soporte para
múltiples motores de plantillas y ORMs lo hace adecuado para aplicaciones personalizadas o ligeras.
Goliath es una excelente opción para aplicaciones web que requieren manejar muchas conexiones
concurrentes o para APIs que necesitan responder de forma rápida y eficiente. Gracias a su
arquitectura no bloqueante basada en EventMachine, Goliath es particularmente adecuado para
aplicaciones de alto rendimiento, como microservicios, APIs RESTful, servicios de streaming en
tiempo real y otras aplicaciones que requieren un manejo eficiente de la concurrencia.