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

Funciones de un sistema de proteccion + matrices de acceso
Funciones de un sistema de proteccion + matrices de accesoFunciones de un sistema de proteccion + matrices de acceso
Funciones de un sistema de proteccion + matrices de accesoMarco Lopez
 
Poo 3 herencia
Poo 3 herenciaPoo 3 herencia
Poo 3 herenciajlmanmons
 
Tabla comparativa de programacion orientada , objetos y estructurada.
Tabla comparativa de programacion orientada , objetos y estructurada.Tabla comparativa de programacion orientada , objetos y estructurada.
Tabla comparativa de programacion orientada , objetos y estructurada.Sandy Montoya Reyes
 
Metodología tradicional
Metodología tradicionalMetodología tradicional
Metodología tradicionalJesenia Escobar
 
MODELO COCOMO (INGENIERA DE SOFTWARE)
MODELO COCOMO (INGENIERA DE SOFTWARE)MODELO COCOMO (INGENIERA DE SOFTWARE)
MODELO COCOMO (INGENIERA DE SOFTWARE)Yadith Miranda Silva
 
Diccionario de datos
Diccionario de datosDiccionario de datos
Diccionario de datosJorge Garcia
 
PostgreSQL
PostgreSQLPostgreSQL
PostgreSQLbrobelo
 
Descomposición modular y estilos de control
Descomposición modular y estilos de controlDescomposición modular y estilos de control
Descomposición modular y estilos de controlJuan Pablo Bustos Thames
 

La actualidad más candente (20)

Programacion Orientada a Objetos
Programacion Orientada a ObjetosProgramacion Orientada a Objetos
Programacion Orientada a Objetos
 
Funciones de un sistema de proteccion + matrices de acceso
Funciones de un sistema de proteccion + matrices de accesoFunciones de un sistema de proteccion + matrices de acceso
Funciones de un sistema de proteccion + matrices de acceso
 
Poo 3 herencia
Poo 3 herenciaPoo 3 herencia
Poo 3 herencia
 
Tabla comparativa de programacion orientada , objetos y estructurada.
Tabla comparativa de programacion orientada , objetos y estructurada.Tabla comparativa de programacion orientada , objetos y estructurada.
Tabla comparativa de programacion orientada , objetos y estructurada.
 
Metodología tradicional
Metodología tradicionalMetodología tradicional
Metodología tradicional
 
Paradigmas de la programación
Paradigmas de la programación Paradigmas de la programación
Paradigmas de la programación
 
El DBA y sus funciones
El DBA y sus funcionesEl DBA y sus funciones
El DBA y sus funciones
 
MODELO COCOMO (INGENIERA DE SOFTWARE)
MODELO COCOMO (INGENIERA DE SOFTWARE)MODELO COCOMO (INGENIERA DE SOFTWARE)
MODELO COCOMO (INGENIERA DE SOFTWARE)
 
Presentación JavaScript
Presentación JavaScriptPresentación JavaScript
Presentación JavaScript
 
Noción de archivo real y virtual
Noción de archivo real y virtual Noción de archivo real y virtual
Noción de archivo real y virtual
 
Diccionario de datos
Diccionario de datosDiccionario de datos
Diccionario de datos
 
6 Curso de POO en Java - clases y objetos
6  Curso de POO en Java - clases y objetos6  Curso de POO en Java - clases y objetos
6 Curso de POO en Java - clases y objetos
 
Apache CouchDB
Apache CouchDBApache CouchDB
Apache CouchDB
 
PostgreSQL
PostgreSQLPostgreSQL
PostgreSQL
 
Cuadro comparativo sgbd
Cuadro comparativo sgbdCuadro comparativo sgbd
Cuadro comparativo sgbd
 
Descomposición modular y estilos de control
Descomposición modular y estilos de controlDescomposición modular y estilos de control
Descomposición modular y estilos de control
 
Conceptos Basicos de POO
Conceptos Basicos de POOConceptos Basicos de POO
Conceptos Basicos de POO
 
Formato ieee830
Formato ieee830Formato ieee830
Formato ieee830
 
Ventajas vs Desventajas se SGBD
Ventajas vs Desventajas se SGBDVentajas vs Desventajas se SGBD
Ventajas vs Desventajas se SGBD
 
Ingenieria de software
Ingenieria de softwareIngenieria de software
Ingenieria de software
 

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.