Razones para amar a Ruby
Viernes, Febrero 12th, 2010
Para los que aun no se hayan metido mucho con el lenguaje Ruby, aquí les presento una lista de las cosas que te podrían convencer de que lo uses un poco más.
- Es orientado a objetos. Ruby proporciona las herramientas necesarias para cubrir los conceptos clásicos de los lenguajes orientados a objetos como el encapsulamiento, la herencia, el polimorfismo, etc. Además, a diferencia de otros lenguajes como C++, Ruby fue diseñado desde un inicio para ser orientado a objetos.
- Es completamente orientado a objetos. No es redundancia. Es simplemente que en Ruby, completamente todo es un objeto. Incluso los datos primitivos como enteros, flotantes y cadenas son objetos. Por ejemplo se puede hacer lo siguiente: 5.to_s para convertir el número 5 a cadena.
- Es un lenguaje dinámico. Para las personas que están más familiarizadas con Java o C++, este es un cambio conceptual muy grande. Esto significa que los métodos o variables pueden ser agregados en tiempo de ejecución. Es similar en este aspecto a los lenguajes como Python y PHP.
- Es un lenguaje interpretado. Esta puede ser un arma de doble filo. Muchos podrían decir que es más una desventaja, ya que provoca que la ejecución del programa sea más lenta con lenguajes interpretados. Pero yo le veo varias ventajas… por ejemplo, al desarrollar una aplicación con Java o ASP.NET, se vuelve cansado el ciclo de modificar-recompilar para ver las modificaciones realizadas. En cambio con Ruby sólo modifico algo y se ve al instante el cambio realizado. Además de que si se necesita mayor velocidad para ciertas cosas, siempre se puede recurrir a programar esas partes en C.
- Entiende expresiones regulares. Por años este tema fue considerado del dominio único de UNIX, pero con Perl las cosas cambiaron y ahora Ruby está ayudando a seguir con ese cambio. Cada vez más gente se va dando cuenta de las ventajas que las expresiones regulares proporcionan para la manipulación de texto en nuestros programas.
- Es multiplataforma. Se ejecuta en las principales plataformas de hoy en día, como son Windows, MacOS, Linux e incluso en MS-DOS.
- Es una derivación. Ruby ha tomado cosas de otros lenguajes como Smalltalk, Lisp, C, C++, Perl y otros. Como Isaac Newton dijo alguna vez: “Si he visto más allá que otros, es porque he estado sobre los hombros de gigantes”. Ruby definitivamente ha hecho esto al basarse en esos lenguajes y ha logrado una mezcla excelente.
- Tiene un recolector de basura inteligente. Como la mayoría de los lenguajes modernos, ya cuenta con un componente que nos ayuda a olvidarnos de las rutinas de asignar y desasignar memoria.
- Es open-source. no hay que pagar por el uso de licencias y además puedes tener acceso al código y ver cómo está programado.
- Es intuitivo. Al principio puede parecer un poco extraña la sintaxis, pero una vez que la comprendes, verás que es muy fácil e intuitivo programar con Ruby. Es muy similar a un idioma humano.
- Tiene manejo de excepciones. Como Java y C++, Ruby entiende el concepto de excepciones. Esto significa que no tenemos que preocuparnos por códigos de error sin sentido y repercute en un código más claro.
- Tiene una clase Array. Los arreglos son dinámicos, por lo que no es necesario declarar su tamaño desde el inicio. No es necesario asignar memoria tampoco. Son objetos y por lo tanto tienen sus propias propiedades y métodos para la manipulación de su contenido.
- manejo de símbolos y mayúsculas de forma creativa. Un método que regresa un valor booleano normalmente termina en un símbolo de interrogación (por ejemplo: nil? o empty?); los métodos que modifican o destruyen datos terminan con un símbolo de exclamación (por ejemplo: clear!). Todas las constantes y los nombres de clases empiezan con letras mayúsculas. Todos los atributos de los objetos inician con el símbolo @. Simple, informativo e intuitivo.
- Permite iteradores. Entre otras cosas, permite pasar bloques de código de tal forma que el block es llamado por cada uno de los elementos del arreglo, lista, árbol o lo que sea.
- Gran atención a los detalles. Abundan los sinónimos para los métodos o propiedades. Si no recuerdas cuál usar entre size o length para una cadena o arreglo, pues usa cualquiera, ambos funcionan. Para los rangos, puedes usar begin y end o first y last. Y así en otros casos.
- Sintaxis flexible. Los paréntesis para las llamadas a métodos pueden ser omitidos, así como tambián las comas entre cada uno de los parámetros. La palabra reservada return puede ser igualmente omitida.
- Tiene un gran conjunto de librerías. Tiene soporte para hilos, sockets, persistencia de objetos, programas CGI, bases de datos y mucho más. Incluso igual hay soporte para librerías de gráficos de usuario como Tk, WxWidgets, Gtk, Qt y muchos más.
- Es un lenguaje conciso. No hay el uso de palabras extras como begin y then para despues de un if como en el caso de Pascal. Las variables no necesitan ser declaradas, los tipos de retorno no tienen que ser especificados para los métodos, y como ya dijimos anteriormente, el return puede no ser especificado, se tomará como valor de retorno la última expresión evaluada.
- Tiene sobrecarga de operadores. Esta característica que hizo tan popular C++ y luego ha sido implementada en lenguajes como C#, es muy útil para mejorar la lectura y la intuitividad de nuestro código. En lenguajes como Java que no cuentan con esta característica, para sumar dos variables de tipo BigDecimal es necesario hacer algo como num1.add(num2) cuando lo más lógico sería algo como num1 + num2; pues este tipo de expresiones las permite Ruby gracias a la sobrecarga de operadores.
- Por último pero no de menor importancia, es la magnífica librería Ruby on Rails que permite desarrollar aplicaciones web de la forma más fácil que he visto hasta ahora.
Bueno, esta es mi lista de las cosas que me gustan de Ruby, talvez he omitido algunas que no son tan obvias o que no me vienen a la mente en este momento, pero al menos espero que la lista cumpla el objetivo de que las personas que no conocen mucho el lenguaje puedan empezar a encariñarse con él.
