Programación en Ruby/Características especiales del lenguaje

De Wikilibros, la colección de libros de texto de contenido libre.
Ir a la navegación Ir a la búsqueda

Caracteristicas de Ruby

-Todo es un objeto

En ruby, se combinan las capacidades de los lenguajes funcionales con las de los lenguajes imperativos orientados a objetos, de esta manera cada elemento en ruby tiene un compartimiento similar, pero personalizado para las conveniencias de cada usuario. Tanto asi que incluso se pueden escribir metodos a números que escribimos normalmente, es decir podemos hacer:

5.times print { “Ruby es lo mejor” }


-Bloques

Funcionalidad traspasada de los lenguajes funcionales, uno puede escribir un bloque de código llamado cláusula a cualquier método, para describir como debe actuar. Estos bloques tienen la función de poder encerrar un conjunto de condigo, dándole una función.Estos solo podrán ser digitados despues de un método.


-La apariencia visual de Ruby


A pesar de que Ruby utiliza la puntuación muy limitadamente y se prefieren las palabras clave en inglés, se utiliza algo de puntuación para decorar el código. Ruby no necesita declaraciones de variables. Se utilizan convenciones simples para nombrar y determinar el alcance de las mismas.

♦ var puede ser una variable local.

♦ @var es una variable de instancia.

♦ $var es una variable global

Estos detalles mejoran la legibilidad permitiendo que el desarrollador identifique fácilmente los roles de las variables. También se hace innecesario el uso del molesto self. como prefijo de todos los miembros de instancia.

-Ademas… Ruby además posee otras funcionalidades para aclarar la vida los programadores, entre la cuales estan:

♦ Manejo de Excepciones

♦ Mark and Sweep Garbage collector

♦ Mucho soporte para comunicación con C, con un agradable API para utilizar Ruby desde C

♦ Manejo de multitareas (Threads) independiente del sistema operativo, puedes incluso usar threads en DOS!

♦ Gran Portabilidad, corre en toda clase de sistemas Linux/Unix, Windows, OS/2, dos, etc…