Вы находитесь на странице: 1из 18

QUE ES RUBY?

Ruby es un lenguaje de programacin dinmico y


de cdigo abierto enfocado en la simplicidad y
productividad. Su elegante sintaxis se siente
natural al leerla y fcil al escribirla. A menudo ha
manifestado que est tratando de hacer que Ruby
sea natural, no simple, de una forma que se
asemeje a la vida real.
SU CREADOR
Yukihiro Matsumoto, tambin conocido
como Matz diseador del lenguaje de programacin Ruby.

Mezcl partes de sus lenguajes favoritos (Perl, Smalltalk,


Eiffel, Ada, y Lisp) para formar un nuevo lenguaje que
incorporara tanto la programacin funcional como la
programacin imperativa.
CARACTERSTICAS.
orientado a objetos
cuatro niveles de mbito de variable: global, clase, instancia y
local.
manejo de excepciones
iteradores y clausuras o closures (pasando bloques de cdigo)
expresiones regulares nativas similares a las de Perl a nivel del
lenguaje
posibilidad de redefinir los operadores (sobrecarga de operadores)
recoleccin de basura automtica
altamente portable
Hilos de ejecucin simultneos en todas las plataformas
usando green threads
Carga dinmica de DLL/bibliotecas compartidas en la mayora de
las plataformas
amplia librera estndar
soporta inyeccin de dependencias
soporta alteracin de objetos en tiempo de ejecucin
REFERENCIAS DEL LENGUAJE.
Ruby ha atrado devotos desarrolladores de todo el
mundo.
En el 2006, Ruby alcanz reconocimiento masivo,
formndose grupos de usuarios activos en las
ciudades ms importantes del mundo y llenando las
capacidades de las conferencias relacionadas a Ruby.
El ndice TIOBE, ubica a Ruby en la posicin #13 del
ranking mundial. predicen, Todo indica que Ruby
llegar a estar entre los 10 primeros en menos de 6
meses. Gran parte de su crecimiento se atribuye a la
popularidad alcanzada por aplicaciones desarrolladas
con Ruby, en particular el framework de desarrollo
web Ruby on Rails.
RUBY DESDE OTROS LENGUAJES

RUBY desde java


RUBY desde PHP
RUBY desde PYTHON
RUBY DESDE JAVA

Al ir de Java hacia Ruby, puedes esperar que el tamao


del cdigo disminuya considerablemente. Tambin lleva
menos tiempo el armado de prototipos.
Semejanzas
Como en Java, en Rubyla memoria es manejada
automticamente mediante un colector de basura
(garbage collector).
los objetos son fuertemente tipados.

hay mtodos pblicos, privados y protegidos.

tiene herramientas de documentacin embebidas (la de


Ruby se llama RDoc). La documentacin generada por
rdoc se ve muy similar a la generada por javadoc.
RUBY DESDE JAVA CONTINUACIN.
Diferencias
A diferencia de Java, en Rubyno necesita compilar
el cdigo fuente. Directamente se ejecuta
hay distintos conjuntos de herramientas para interfaz
grfica. Los usuarios de Ruby pueden probar
con WxRuby, FXRuby, Ruby-GNOME2, o el Ruby Tk
incluido.
se usa la palabra clave (end)despus de definir clases,
en vez de tener que poner llaves encerrando el cdigo.
todas las variables de instancia son privadas. Desde
afuera, todo se accede usando mtodos.
los parntesis en las llamadas a los mtodos
usualmente son opcionales y a menudo son omitidos.
RUBY DESDE PHP
Similaridades
Como en PHP, en Rubylas variables son
dinmicamente tipadas, as que no tienes que
preocuparte por declararlas.
hay clases, y puedes controlar el acceso a ellas como
en PHP 5 (public, protected y private).
algunas variables comienzan con $, pero no todas.

tienes documentos internos (heredocs en ingls).

tienes excepciones, como PHP 5.

hay una biblioteca estndar bastante grande.

true y false se comportan como en PHP, pero null se


llama nil.
RUBY DESDE PHP CONTINUACIN
Diferencias
los parntesis son opcionales en las llamadas a los
mtodos, excepto para clarificar qu parmetros
van para qu mtodo, cuando es necesario.
la biblioteca estndar y las extensiones estn
organizadas en mdulos y clases.
las variables son referencias.

no hay clases abstract o interfaces.

slo false y nil son falsos: 0, array() y "", son todos


verdaderos en las condiciones lgicas.
casi todo es una llamada a un mtodo,
incluso raise (equivalente a throw en PHP).
RUBY DESDE PYTHON
Similitudes
Al igual que con Python, en Rub, ...Hay un modo
interactivo (llamado irb ).
Usted puede leer documentos en la lnea de comando (con
la ri comandos en lugar de pydoc ).
Los literales de cadena puede ocupar varias lneas como
cuerdas de tres citados Python.
Los parntesis son para las listas, (que en Ruby, se llaman
"hash").
Las matrices funcionan de la misma (sumando los
convierte en una serie larga, pero al igual que las
componen este a3 = [a1, a2] le da una matriz de matrices).
Todo es un objeto, y las variables son slo referencias a
objetos.
A pesar de las palabras clave son un poco diferentes, las
excepciones trabajar sobre el mismo.
incrustacion doc herramientas (Ruby se llama rdoc).
RUBY DESDE PYTHON CONTINUACIN
Las diferencias
A diferencia de Python, en Rub, ...Las cadenas son mutables.
Hacer constantes (variables cuyo valor no va a cambiar). Hay
algunas forzadas caso convenciones de nombres (ej. clases
comienzan con una letra mayscula, las variables comienzan con
una letra minscula).
Slo hay una especie de contenedor de lista (una matriz), y es
mutable.
Los comentarios usual de estilo en la lnea (s) arriba las cosas (en
lugar de cadenas de documentacin por debajo de ellos) se
utilizan para la generacin de documentos.
Hay una serie de accesos directos que, a pesar de que dure ms
que recordar, que aprenden rpidamente. Ellos tienden a
burlarse de Ruby y muy productivo.
No hay manera de desactivar una variable una vez establecido
(como Python del estado de cuenta). Se puede restablecer una
variable a cero , permitiendo que el antiguo contenido sea
recolectado, pero la variable se mantendr en la tabla de
smbolos, siempre y cuando est en el mbito.
HISTORIA
Se present al pblico en el ao 1995.
La ltima versin estable de la rama 1.8 es la 1.8.7_p248,
de la rama 1.9 es la 1.9.2_p180 .
La versin en 1.9 que incorpora mejoras sustanciales en el
rendimiento del lenguaje, que se espera queden reflejadas
en la prxima versin estable de produccin del lenguaje,
Ruby 1.9.0.1
Diferencias en rendimiento entre la actual implementacin
de Ruby (1.8.6) y otros lenguajes de programacin ms
arraigados han llevado al desarrollo de varias mquinas
virtuales para Ruby.
Entre sas se encuentra JRuby, un intento de llevar Ruby
a la plataforma Java, y Rubinius, un intrprete modelado
basado en las mquinas virtuales de Smalltalk. Los
principales desarrolladores han apoyado la mquina
virtual proporcionada por el proyecto YARV, que se fusion
en el rbol de cdigo fuente de Ruby el 31 de
diciembre de 2006, y se di a conocer como Ruby 1.9
LA VERSIN MAS ACTUAL DE RUBY.

Ruby 1.8.7-p370 liberado.


http://www.ruby-lang.org/es/
CASOS DE XITO
Simulaciones
NASA Langley Research Center utiliza Ruby para realizar
simulaciones.
Un grupo de investigacin de Motorola utiliza Ruby para
un simulador de secuencia de comandos, tanto para
generar escenarios para publicar y procesar los datos.
Modelado en 3D
Google SketchUp es una aplicacin de modelado 3D que
utiliza Ruby para su macro scripting API .
Negocios
Rehab Toronto utiliza una base RubyWebDialogs aplicacin
para gestionar y realizar un seguimiento de atencin y
apoyo sobre el terreno para la mesa de ayuda de TI y TI
equipos de operaciones.
Robtica
En Morpha proyecto, Ruby se utiliz para implementar la
parte de control reactivo para el robot de servicio Siemens.
CASOS DE XITO
Redes
Domain Server Open usa Ruby para que las personas
que utilizan Dynamic DNS a los clientes a actualizar
en tiempo real su configuracin IP de modo que se
pueden asignar a los dominios estticos.
Telefona
Rub se est utilizando dentro de Lucent en un
producto de telefona mvil 3G.
Administracin del sistema
Ruby se utiliza para escribir la parte de datos central
de recogida de Level 3 Communications Capacidad de
Unix y el sistema de planificacin que recoge las
estadsticas de rendimiento de ms de 1700 de Unix
(Solaris y Linux) servidores repartidos por todo el
mundo.
CASOS DE XITO
Aplicaciones Web
Basecamp , una aplicacin de proyectos basada en web de gestin
desarrollado por 37signals , est programado ntegramente en Ruby.
A List Apart , una revista para las personas que hacen sitios web que
ha existido desde 1997, ha sido recientemente renovado y utiliza una
aplicacin hecha a la medida con Ruby on Rails.
Secuencia Azul , una sofisticada aplicacin de misin crtica que
forma parte de la propia Toyota Motor Manufacturing "secuencia-in-
time" proceso de produccin, ha sido recientemente seleccionado como
finalista de los British Computer (BCS) Premios de Informacin
Gerencial.
Seguridad
El Metasploit Framework , un proyecto de la comunidad de cdigo
abierto gestionado por Rapid7 , es una plataforma de pruebas de
penetracin gratuito que ayuda a los profesionales de TI evaluar la
seguridad de sus redes y aplicaciones. El Proyecto Metasploit se
compone de ms de 700.000 lneas de cdigo y ha sido descargado ms
de un milln de veces en 2010. Las ediciones comerciales Metasploit
Express y Pro Metasploit desarrollados por Rapid7 tambin se basan
en Ruby.
SALARIO DE UN PROGRAMADOR DE
RUBY.
Estados Unidos: como mnimo 80 120 / hora($ 1336- $
2004.00).
Reino Unido / Londres: 60 / hora($ 1002.39).
Alemania / Berln: 50 / hora($ 835.32).
Espaa: Hasta donde s la media est sobre los 30 40 /
hora($501.19-$668.26).
Mxico: la media de trabajo para clientes mexicanos est
cerca de los 30 / hora($501.19), pero algunas de las
empresas de este pas trabajan para clientes de EEUU,
facturando con las tarifas de all (80 120 )
India / Vietnam / Pakistn: 8 12 / hora($133.65-$
200.48). Por sorprendente que parezca es fcil encontrar
este tipo de tarifas en sitios como Odesk o Freelancer.