SlideShare una empresa de Scribd logo
1 de 13
QUE ES RUBY?
 Ruby es un lenguaje de programación interpretado, reflexivo y orientado a
objetos, creado por el programador japonés Yukihiro "Matz" Matsumoto, quien
comenzó a trabajar en Ruby en 1993, y lo presentó públicamente en 1995.
Combina una sintaxis inspirada en Python y Perl con características de
programación orientada a objetos similares a Smalltalk. Comparte también
funcionalidad con otros lenguajes de programación como Lisp, Lua, Dylan y CLU.
Ruby es un lenguaje de programación interpretado en una sola pasada y su
implementación oficial es distribuida bajo una licencia de software libre.
UN POCO DE HISTORIA:
 El lenguaje fue creado por Yukihiro "Matz" Matsumoto, quien empezó a
trabajar en Ruby el 24 de febrero de 1993, y lo presentó al público en el
año 1995. En el círculo de amigos de Matsumoto se le puso el nombre de
"Ruby" como broma aludiendo al lenguaje de programación "Perl" (perla).
Diferencias en rendimiento entre la actual implementación de Ruby
(1.8.6) y otros lenguajes de programación más arraigados han llevado al
desarrollo de varias máquinas virtuales para Ruby. Entre ésas se
encuentra JRuby, un intento de llevar Ruby a la plataforma Java, y
Rubinius, un intérprete modelado basado en las máquinas virtuales de
Smalltalk. Los principales desarrolladores han apoyado la máquina virtual
proporcionada por el proyecto YARV, que se fusionó en el árbol de código
fuente de Ruby el 31 de diciembre de 2006, y se dió a conocer como Ruby
1.9
Yukihiro 'Matz' Matsumoto

             “Quería un lenguaje que fuera más poderoso que
             Perl y más orientado a objetos que Python.”

             “Ruby está diseñado para hacer que la
             programación no sólo sea fácil sino también
             entretenida.”

             ● Mayormente influenciado por Smalltalk y Perl.
LOS IDEALES DE SU
CREADOR
Ruby es un lenguaje con un balance cuidado. Su
creador, Yukihiro “matz” Matsumoto, mezcló
partes de sus lenguajes favoritos
(Perl, Smalltalk, Eiffel, Ada, y Lisp) para formar
un nuevo lenguaje que incorporara tanto la
programación funcional como la programación
imperativa.
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.
Continuando sobre esto, agrega:
Ruby es simple en apariencia, pero complejo
por dentro, como el cuerpo humano.
Hitos
● 1993 – Comienza el desarrollo

● 1995 – Lanzado al público

● 2001 – Programming Ruby 1ra edición (1.6)

● 2004 – Programming Ruby 2da edición (1.8)

● 2004 – El catalizador: Ruby on Rails

● 2008 – Programming Ruby 3ra edición (1.9)
Características
 ● Orientado a objetos

 ● Tipado dinámico

 ● Herencia simple

 ● Módulos

 ● Mixins (casi herencia múltiple)

 ● Tendencia a la programación declarativa

 ● Afín a la creación
Semántica
Ruby es orientado a objetos: todos los tipos de datos son un objeto, incluidas las
clases y tipos que otros lenguajes definen como primitivas, (como
enteros, booleanos, y "nil"). Toda función es un método. Las variables siempre son
referencias a objetos, no los objetos mismos. Ruby soporta herencia con enlace
dinámico, mixins. A pesar de que Ruby no soporta herencia múltiple, la clases
pueden importar módulos como mixins. La sintaxis procedural está soportada, pero
todos los métodos definidos fuera del ámbito de un objeto son realmente métodos
de la clase Object. Como esta clase es padre de todas las demás, los cambios son
visibles para todas las clases y objetos.
Sintaxis
La sintaxis de Ruby es similar a la de Perl o Python. La definición de clases y métodos
está definida por palabras clave. Sin embargo, en Perl, las variables no llevan prefijos.
Cuando se usa, un prefijo indica el ámbito de las variables. La mayor diferencia con C y
Perl es que las palabras clave son usadas para definir bloques de código sin llaves. Los
saltos de línea son significativos y son interpretados como el final de una sentencia; el
punto y coma tiene el mismo uso. De forma diferente que Python, la indentación no
es significativa.
Una de las diferencias entre Ruby y Python y Perl es que Ruby mantiene todas sus
variables de instancia privadas dentro de las clases y solo la expone a través de
métodos de acceso (attr_writer, attr_reader, etc).
Todo es un objeto
            'Hola Mundo'.length          #=> 10

            'Soy un String'.index('u')   #=> 4

            -1234.abs                    #=> 1234

            1234 + 1 == 1234.+(1)        #=> true

            1234.to_s                    #=> '1234‘

            1234.to_s.reverse            #=> '4321‘

            1234.to_s.reverse.to_i       #=> 4321
Módulos
● Los módulos son la forma de agrupar métodos, clases y constantes.

● Proveen 2 funcionalidades:

– Espacio de nombres (namespace)
– Compartición de código mediante Mixins




 Mixins
 ● Los módulos se pueden incluir dentro de la definición de una clase para que ésta
 automáticamente incorpore la funcionalidad provista por el módulo.

 ● Se lo puede ver como una forma de tener herencia múltiple, aunque no es
 exactamente lo mismo.
IDEs

● NetBeans – www.netbeans.org/products/ruby
● Eclipse + RDT – rubyeclipse.sourceforge.net
● RadRails – www.aptana.com/rails
Ruby es totalmente libre. No sólo gratis, sino también libre para
usarlo, copiarlo, modificarlo y distribuirlo.

Más contenido relacionado

La actualidad más candente

Estructura unix
Estructura unixEstructura unix
Estructura unixCalP
 
Chapter 02 php basic syntax
Chapter 02   php basic syntaxChapter 02   php basic syntax
Chapter 02 php basic syntaxDhani Ahmad
 
Estrategias para utilizar android con seguridad
Estrategias para utilizar android con seguridadEstrategias para utilizar android con seguridad
Estrategias para utilizar android con seguridadJuan Quiroz
 
Trabajo de compiladores completo alexandra
Trabajo de compiladores completo alexandraTrabajo de compiladores completo alexandra
Trabajo de compiladores completo alexandraAlexandraMolinaSanchez
 
Programación lógica y funcional
Programación lógica y funcionalProgramación lógica y funcional
Programación lógica y funcionalAlejandra MA
 
Tipos de lenguaje de programacion
Tipos de lenguaje de programacionTipos de lenguaje de programacion
Tipos de lenguaje de programacionLy Andre
 
Programación orientada a objetos presentacion
Programación    orientada    a objetos presentacionProgramación    orientada    a objetos presentacion
Programación orientada a objetos presentacionfranciscocain
 
Modelos o Ciclos de vida de software
Modelos o Ciclos de vida de softwareModelos o Ciclos de vida de software
Modelos o Ciclos de vida de softwareWilliam Matamoros
 
Administración de procesos y del procesador
Administración de procesos y del procesadorAdministración de procesos y del procesador
Administración de procesos y del procesadorFernando Camacho
 
Procesos de los sistemas operativos
Procesos de los sistemas operativosProcesos de los sistemas operativos
Procesos de los sistemas operativosDeivis Romero
 
Cuadro comparativo de herramientas de programacion eclipse, java
Cuadro comparativo de herramientas de programacion eclipse, javaCuadro comparativo de herramientas de programacion eclipse, java
Cuadro comparativo de herramientas de programacion eclipse, javaCCCRiis
 

La actualidad más candente (20)

Estructura unix
Estructura unixEstructura unix
Estructura unix
 
Taller de Base de Datos - Unidad 5 transacciones
Taller de Base de Datos - Unidad 5  transaccionesTaller de Base de Datos - Unidad 5  transacciones
Taller de Base de Datos - Unidad 5 transacciones
 
Chapter 02 php basic syntax
Chapter 02   php basic syntaxChapter 02   php basic syntax
Chapter 02 php basic syntax
 
Ensayo de php
Ensayo de phpEnsayo de php
Ensayo de php
 
Xampp Ppt
Xampp PptXampp Ppt
Xampp Ppt
 
Programacion Orientada a Objetos
Programacion Orientada a ObjetosProgramacion Orientada a Objetos
Programacion Orientada a Objetos
 
Estrategias para utilizar android con seguridad
Estrategias para utilizar android con seguridadEstrategias para utilizar android con seguridad
Estrategias para utilizar android con seguridad
 
Trabajo de compiladores completo alexandra
Trabajo de compiladores completo alexandraTrabajo de compiladores completo alexandra
Trabajo de compiladores completo alexandra
 
Programación lógica y funcional
Programación lógica y funcionalProgramación lógica y funcional
Programación lógica y funcional
 
Tipos de lenguaje de programacion
Tipos de lenguaje de programacionTipos de lenguaje de programacion
Tipos de lenguaje de programacion
 
Programación orientada a objetos presentacion
Programación    orientada    a objetos presentacionProgramación    orientada    a objetos presentacion
Programación orientada a objetos presentacion
 
PROGRAMACION CONCURRENTE
PROGRAMACION CONCURRENTEPROGRAMACION CONCURRENTE
PROGRAMACION CONCURRENTE
 
Normalizacion
NormalizacionNormalizacion
Normalizacion
 
ESTRUCTURA DE CAPAS DEL SISTEMA OPERATIVO
ESTRUCTURA DE CAPAS DEL SISTEMA OPERATIVOESTRUCTURA DE CAPAS DEL SISTEMA OPERATIVO
ESTRUCTURA DE CAPAS DEL SISTEMA OPERATIVO
 
Lenguaje de programación Ruby
Lenguaje de programación RubyLenguaje de programación Ruby
Lenguaje de programación Ruby
 
Modelos o Ciclos de vida de software
Modelos o Ciclos de vida de softwareModelos o Ciclos de vida de software
Modelos o Ciclos de vida de software
 
Administración de procesos y del procesador
Administración de procesos y del procesadorAdministración de procesos y del procesador
Administración de procesos y del procesador
 
Introducción a Django
Introducción a DjangoIntroducción a Django
Introducción a Django
 
Procesos de los sistemas operativos
Procesos de los sistemas operativosProcesos de los sistemas operativos
Procesos de los sistemas operativos
 
Cuadro comparativo de herramientas de programacion eclipse, java
Cuadro comparativo de herramientas de programacion eclipse, javaCuadro comparativo de herramientas de programacion eclipse, java
Cuadro comparativo de herramientas de programacion eclipse, java
 

Similar a Ruby presentacion

Ruby es un lenguaje de programación interpretado
Ruby es un lenguaje de programación interpretadoRuby es un lenguaje de programación interpretado
Ruby es un lenguaje de programación interpretadoYulgrecia2011
 
Presentaciones ruby
Presentaciones rubyPresentaciones ruby
Presentaciones rubyPedro1808
 
Ruby en linux
Ruby en linuxRuby en linux
Ruby en linuxvilna2011
 
Ruby en linux
Ruby en linuxRuby en linux
Ruby en linuxvilna2011
 
Lenguajes de programacion orientada a objetos
Lenguajes de programacion orientada a objetosLenguajes de programacion orientada a objetos
Lenguajes de programacion orientada a objetosRicardoAlbertoSalmor
 
Taller evento TestingUY 2016 - Automatización de Pruebas con Ruby
Taller evento TestingUY 2016 - Automatización de Pruebas con RubyTaller evento TestingUY 2016 - Automatización de Pruebas con Ruby
Taller evento TestingUY 2016 - Automatización de Pruebas con RubyTestingUy
 
Lenguajes de programacion orientada a objetos
Lenguajes de programacion orientada a objetosLenguajes de programacion orientada a objetos
Lenguajes de programacion orientada a objetosRicardoAlbertoSalmor
 
Texto Académico Sobre Software Libre
Texto Académico Sobre Software LibreTexto Académico Sobre Software Libre
Texto Académico Sobre Software Libreluisguc
 
programacion
programacionprogramacion
programacionNotLeooFF
 
Lenguajes de profgramacion valentina suarez restrepo
Lenguajes de profgramacion valentina suarez restrepoLenguajes de profgramacion valentina suarez restrepo
Lenguajes de profgramacion valentina suarez restrepoOnce Redes
 
Ruby on Rails - ETyC 2011
Ruby on Rails - ETyC 2011Ruby on Rails - ETyC 2011
Ruby on Rails - ETyC 2011Rafael Franco
 
Lenguajes programacion
Lenguajes programacionLenguajes programacion
Lenguajes programacionXavii Torres
 

Similar a Ruby presentacion (20)

Upel ruby
Upel rubyUpel ruby
Upel ruby
 
Ruby es un lenguaje de programación interpretado
Ruby es un lenguaje de programación interpretadoRuby es un lenguaje de programación interpretado
Ruby es un lenguaje de programación interpretado
 
Acerca de ruby
Acerca de rubyAcerca de ruby
Acerca de ruby
 
Presentaciones ruby
Presentaciones rubyPresentaciones ruby
Presentaciones ruby
 
Ruby en linux
Ruby en linuxRuby en linux
Ruby en linux
 
Ruby en linux
Ruby en linuxRuby en linux
Ruby en linux
 
Lenguajes de programacion orientada a objetos
Lenguajes de programacion orientada a objetosLenguajes de programacion orientada a objetos
Lenguajes de programacion orientada a objetos
 
Taller evento TestingUY 2016 - Automatización de Pruebas con Ruby
Taller evento TestingUY 2016 - Automatización de Pruebas con RubyTaller evento TestingUY 2016 - Automatización de Pruebas con Ruby
Taller evento TestingUY 2016 - Automatización de Pruebas con Ruby
 
Diseño de progra tarea
Diseño de progra tareaDiseño de progra tarea
Diseño de progra tarea
 
Lenguajes de programacion orientada a objetos
Lenguajes de programacion orientada a objetosLenguajes de programacion orientada a objetos
Lenguajes de programacion orientada a objetos
 
Ruby en 2020
Ruby en 2020Ruby en 2020
Ruby en 2020
 
Tabla
TablaTabla
Tabla
 
Tabla
TablaTabla
Tabla
 
Texto Académico Sobre Software Libre
Texto Académico Sobre Software LibreTexto Académico Sobre Software Libre
Texto Académico Sobre Software Libre
 
Lenguaje ruby
Lenguaje rubyLenguaje ruby
Lenguaje ruby
 
programacion
programacionprogramacion
programacion
 
Lenguajes de profgramacion valentina suarez restrepo
Lenguajes de profgramacion valentina suarez restrepoLenguajes de profgramacion valentina suarez restrepo
Lenguajes de profgramacion valentina suarez restrepo
 
Ruby on Rails - ETyC 2011
Ruby on Rails - ETyC 2011Ruby on Rails - ETyC 2011
Ruby on Rails - ETyC 2011
 
Poo presentacion
Poo presentacionPoo presentacion
Poo presentacion
 
Lenguajes programacion
Lenguajes programacionLenguajes programacion
Lenguajes programacion
 

Ruby presentacion

  • 1.
  • 2. QUE ES RUBY? Ruby es un lenguaje de programación interpretado, reflexivo y orientado a objetos, creado por el programador japonés Yukihiro "Matz" Matsumoto, quien comenzó a trabajar en Ruby en 1993, y lo presentó públicamente en 1995. Combina una sintaxis inspirada en Python y Perl con características de programación orientada a objetos similares a Smalltalk. Comparte también funcionalidad con otros lenguajes de programación como Lisp, Lua, Dylan y CLU. Ruby es un lenguaje de programación interpretado en una sola pasada y su implementación oficial es distribuida bajo una licencia de software libre.
  • 3. UN POCO DE HISTORIA: El lenguaje fue creado por Yukihiro "Matz" Matsumoto, quien empezó a trabajar en Ruby el 24 de febrero de 1993, y lo presentó al público en el año 1995. En el círculo de amigos de Matsumoto se le puso el nombre de "Ruby" como broma aludiendo al lenguaje de programación "Perl" (perla). Diferencias en rendimiento entre la actual implementación de Ruby (1.8.6) y otros lenguajes de programación más arraigados han llevado al desarrollo de varias máquinas virtuales para Ruby. Entre ésas se encuentra JRuby, un intento de llevar Ruby a la plataforma Java, y Rubinius, un intérprete modelado basado en las máquinas virtuales de Smalltalk. Los principales desarrolladores han apoyado la máquina virtual proporcionada por el proyecto YARV, que se fusionó en el árbol de código fuente de Ruby el 31 de diciembre de 2006, y se dió a conocer como Ruby 1.9
  • 4. Yukihiro 'Matz' Matsumoto “Quería un lenguaje que fuera más poderoso que Perl y más orientado a objetos que Python.” “Ruby está diseñado para hacer que la programación no sólo sea fácil sino también entretenida.” ● Mayormente influenciado por Smalltalk y Perl.
  • 5. LOS IDEALES DE SU CREADOR Ruby es un lenguaje con un balance cuidado. Su creador, Yukihiro “matz” Matsumoto, mezcló partes de sus lenguajes favoritos (Perl, Smalltalk, Eiffel, Ada, y Lisp) para formar un nuevo lenguaje que incorporara tanto la programación funcional como la programación imperativa. 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. Continuando sobre esto, agrega: Ruby es simple en apariencia, pero complejo por dentro, como el cuerpo humano.
  • 6. Hitos ● 1993 – Comienza el desarrollo ● 1995 – Lanzado al público ● 2001 – Programming Ruby 1ra edición (1.6) ● 2004 – Programming Ruby 2da edición (1.8) ● 2004 – El catalizador: Ruby on Rails ● 2008 – Programming Ruby 3ra edición (1.9)
  • 7. Características ● Orientado a objetos ● Tipado dinámico ● Herencia simple ● Módulos ● Mixins (casi herencia múltiple) ● Tendencia a la programación declarativa ● Afín a la creación
  • 8. Semántica Ruby es orientado a objetos: todos los tipos de datos son un objeto, incluidas las clases y tipos que otros lenguajes definen como primitivas, (como enteros, booleanos, y "nil"). Toda función es un método. Las variables siempre son referencias a objetos, no los objetos mismos. Ruby soporta herencia con enlace dinámico, mixins. A pesar de que Ruby no soporta herencia múltiple, la clases pueden importar módulos como mixins. La sintaxis procedural está soportada, pero todos los métodos definidos fuera del ámbito de un objeto son realmente métodos de la clase Object. Como esta clase es padre de todas las demás, los cambios son visibles para todas las clases y objetos.
  • 9. Sintaxis La sintaxis de Ruby es similar a la de Perl o Python. La definición de clases y métodos está definida por palabras clave. Sin embargo, en Perl, las variables no llevan prefijos. Cuando se usa, un prefijo indica el ámbito de las variables. La mayor diferencia con C y Perl es que las palabras clave son usadas para definir bloques de código sin llaves. Los saltos de línea son significativos y son interpretados como el final de una sentencia; el punto y coma tiene el mismo uso. De forma diferente que Python, la indentación no es significativa. Una de las diferencias entre Ruby y Python y Perl es que Ruby mantiene todas sus variables de instancia privadas dentro de las clases y solo la expone a través de métodos de acceso (attr_writer, attr_reader, etc).
  • 10. Todo es un objeto 'Hola Mundo'.length #=> 10 'Soy un String'.index('u') #=> 4 -1234.abs #=> 1234 1234 + 1 == 1234.+(1) #=> true 1234.to_s #=> '1234‘ 1234.to_s.reverse #=> '4321‘ 1234.to_s.reverse.to_i #=> 4321
  • 11. Módulos ● Los módulos son la forma de agrupar métodos, clases y constantes. ● Proveen 2 funcionalidades: – Espacio de nombres (namespace) – Compartición de código mediante Mixins Mixins ● Los módulos se pueden incluir dentro de la definición de una clase para que ésta automáticamente incorpore la funcionalidad provista por el módulo. ● Se lo puede ver como una forma de tener herencia múltiple, aunque no es exactamente lo mismo.
  • 12. IDEs ● NetBeans – www.netbeans.org/products/ruby ● Eclipse + RDT – rubyeclipse.sourceforge.net ● RadRails – www.aptana.com/rails
  • 13. Ruby es totalmente libre. No sólo gratis, sino también libre para usarlo, copiarlo, modificarlo y distribuirlo.