0 calificaciones0% encontró este documento útil (0 votos)
101 vistas17 páginas
Ruby Diapositivas
Ruby es un lenguaje de programación interpretado, orientado a objetos creado por Yukihiro "Matz" Matsumoto en 1993. Matz combinó características de lenguajes como Perl, Smalltalk, Eiffel, Ada y Lisp para crear un lenguaje equilibrado que incorpora programación funcional e imperativa. La filosofía de Ruby se centra en la productividad y diversión del programador sobre la máquina.
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd
0 calificaciones0% encontró este documento útil (0 votos)
101 vistas17 páginas
Ruby Diapositivas
Ruby es un lenguaje de programación interpretado, orientado a objetos creado por Yukihiro "Matz" Matsumoto en 1993. Matz combinó características de lenguajes como Perl, Smalltalk, Eiffel, Ada y Lisp para crear un lenguaje equilibrado que incorpora programación funcional e imperativa. La filosofía de Ruby se centra en la productividad y diversión del programador sobre la máquina.
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 17
RUBY
Yukihiro “Matz” Matsumoto
RUBY • Los ideales del creador de Ruby • 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 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 1.
• 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. HISTORIA • 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 (en español rubí) como broma aludiendo al lenguaje de programación Perl (perla en inglés). La última versión estable de la rama 1.8 es la 1.8.7_p248, de la rama 1.9 es la 1.9.2_p180 . La versión en 1.9 que incorpora mejoras sustanciales en el rendimiento del lenguaje, que se espera queden reflejadas en la próxima versión estable de producción del lenguaje, Ruby 1.9.0.1 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 dio a conocer como Ruby. • Un poco de historia… • Fue creado por Yukihiro Matsumoto (aka Matz) en 1993 en Japón. • Matz unió lo mejor de su lenguaje de programación favorito (PERL) para crear un lenguaje potente, flexible e incluso divertido. • Escogió lo mejor de la programación (ADA, PERL, SMALLTALK, EIFFEL, LISP) e incluso creó un lenguaje orientado a objetos más potente que Python. • Es un lenguaje que fomenta la productividad. • EN Ruby primero interesa la mejora entendible por humanos y después por las máquinas. • Es perfecto para principiantes, ya que es sencillo. • Características. • Mejor amigo del programador. CARACTERITICAS • Es un lenguaje de propósito general, es decir, con Ruby se pueden desarrollar todo tipo de aplicaciones diferentes: aplicaciones de servicio web, clientes de correo electrónico, procesamiento de datos en Backend, aplicaciones de red, etc. Cualquier cosa que se te ocurra puedes hacerlo con Ruby. • Es un lenguaje interpretado, es decir, no es compilado, se necesita que el intérprete de Ruby evalué el código y lo traduzca en lenguaje de máquina entendible por un ordenador, pero no existe un proceso previo de compilación como en C o Java. • Es dinámico y flexible. Con estrategias como la metaprogramación (escribir programas que escriben o manipulan otros programas). Incluso se puede utilizar el propio lenguaje Ruby para alterar el código en tiempo de ejecución. • Es de alto nivel, significa que está lejos del lenguaje de máquina y es muy cercano al inglés, a veces parecerá que simplemente se está escribiendo en inglés. • Es de software libre (Open Source) y multiplataforma, se puede descargar totalmente gratis de la página oficial y ejecutarlo en diferentes sistemas operativos. • Características[editar] • 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 código) • expresiones regulares nativas similares a las de Perl a nivel del lenguaje • Posibilidad de redefinir los operadores (sobrecarga de operadores) • recolección de basura automática • Altamente portable • Hilos de ejecución simultáneos en todas las plataformas usando hilos verdes, o no gestionados por el sistema operativo. • Carga dinámica de DLL/bibliotecas compartidas en la mayoría de las plataformas • Introspección, reflexión y metaprogramación • Amplia librería estándar • Soporta inyección de dependencias • Soporta alteración de objetos en tiempo de ejecución • continuaciones y generadores • Ruby actualmente no tiene soporte completo de Unicode,7a pesar de tener soporte parcial para UTF-8. FILOSOFIA • El creador del lenguaje, Yukihiro "Matz" Matsumoto, ha dicho que Ruby está diseñado para la productividad y la diversión del desarrollador, siguiendo los principios de una buena interfaz de usuario.2Sostiene que el diseño de sistemas necesita enfatizar las necesidades humanas más que las de la máquina:3 • A menudo la gente, especialmente los ingenieros en computación, se centran en las máquinas. Ellos piensan, "Haciendo esto, la máquina funcionará más rápido. Haciendo esto, la máquina funcionará de manera más eficiente. Haciendo esto..." Están centrados en las máquinas, pero en realidad necesitamos centrarnos en las personas, en cómo hacen programas o cómo manejan las aplicaciones en los ordenadores. Nosotros somos los jefes. Ellos son los esclavos. • Ruby sigue el principio de la menor sorpresa, lo que significa que el lenguaje debe comportarse de tal manera que minimice la confusión de los usuarios experimentados. Matz ha dicho que su principal objetivo era hacer un lenguaje que le divirtiera a él mismo, minimizando el trabajo de programación y la posible confusión. Él ha dicho que no ha aplicado el principio de menor sorpresa al diseño de Ruby,3sin embargo, la frase se ha asociado al lenguaje de programación Ruby. La frase en sí misma ha sido fuente de controversia, ya que los no iniciados pueden tomarla como que las características de Ruby intentan ser similares a las características de otros lenguajes conocidos. En mayo de 2005 en una discusión en el grupo de noticias comp.lang.ruby, Matz trató de distanciar Ruby de la mencionada filosofía, explicando que cualquier elección de diseño será sorprendente para alguien, y que él usa un estándar personal de evaluación de la sorpresa. Si ese estándar personal se mantiene consistente habrá pocas sorpresas para aquellos familiarizados con el estándar.4 • Matz lo definió de esta manera en una entrevista:3 • Todo el mundo tiene un pasado personal. Alguien puede venir de Python, otro de Perl, y pueden verse sorprendidos por distintos aspectos del lenguaje. Entonces podrían decir 'Estoy sorprendido por esta característica del lenguaje, así que Ruby viola el principio de la menor sorpresa.' Espera, espera. El principio de la menor sorpresa no es sólo para ti. El principio de la menor sorpresa significa el principio de 'mi' menor sorpresa. Y significa el principio de la menor sorpresa después de que aprendes bien Ruby. Por ejemplo, fui programador de C++ antes de empezar a diseñar Ruby. Programé exclusivamente en C++ durante dos o tres años. Y después de dos años de programar en C++, todavía me sorprendía. 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.). A diferencia de los métodos get y set de otros lenguajes como C++ o Java, los métodos de acceso en Ruby pueden ser escritos con una sola línea de código. Como la invocación de estos métodos no requiere el uso de paréntesis, es trivial cambiar una variable de instancia en una función sin tocar una sola línea de código o refactorizar dicho código. Los descriptores de propiedades de Python son similares pero tienen una desventaja en el proceso de desarrollo. Si uno comienza en Python usando una instancia de variable expuesta públicamente y después cambia la implementación para usar una instancia de variable privada expuesta a través de un descriptor de propiedades, el código interno de la clase necesitará ser ajustado para usar la variable privada en vez de la propiedad pública. Ruby elimina está decisión de diseño obligando a todas las variables de instancia a ser privadas, pero también proporciona una manera sencilla de declarar métodos set y get. Esto mantiene el principio de que en Ruby no se puede acceder a los miembros internos de una clase desde fuera de esta; en lugar de esto se pasa un mensaje (se invoca un método) a la clase y recibe una respuesta. 100 OBETOS • 100% Orientado a Objetos • TODO es un objeto, es decir, todo tiene una serie de propiedades (variables de instancia) y sobre el objeto podemos realizar acciones (o ejecutar métodos). • Semántica[editar] • 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 y métodos singleton(pertenecientes y definidos por una sola instancia más que definidos por la clase). A pesar de que Ruby no soporta herencia múltiple, la clases pueden importar módulos como mixins. Es compatible con la sintaxis procedimental, 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. • Ruby ha sido descrito como un lenguaje de programación multiparadigma: permite programación procedimental (definiendo funciones y variables fuera de las clases haciéndolas parte del objeto raíz Object), con orientación a objetos, (todo es un objeto) o funcionalmente (tiene funciones anónimas, clausuras y continuaciones; todas las sentencias tiene valores, y las funciones devuelven la última evaluación). Soporta introspección, reflexión y metaprogramación, además de soporte para hilos de ejecución gestionados por el intérprete. Ruby tiene tipado dinámico, y soporta polimorfismo de tipos (permite tratar a subclases utilizando la interfaz de la clase padre). Ruby no requiere de polimorfismo de funciones (sobrecarga de funciones) al ser dinámicamente tipado (los parámetros de una función pueden ser de distinto tipo en cada llamada, encargándose dicha función de determinar el tipo y actuar en consecuencia). • De acuerdo con las preguntas frecuentes de Ruby, 5"Si te gusta Perl, te gustará Ruby y su sintaxis. Si te gusta Smalltalk, te gustará Ruby y su semántica. Si te gusta Python, la enorme diferencia de diseño entre Python y Ruby/Perl puede que te convenza o puede que no". 6
• Viendo todo como un objeto
• Inicialmente, Matz buscó en otros lenguajes para encontrar la sintaxis ideal. Recordando su búsqueda, dijo, “quería un lenguaje que fuera más poderoso que Perl, y más orientado a objetos que Python 2 ”. • En Ruby, todo es un objeto. Se le puede asignar propiedades y acciones a toda información y código. La programación orientada a objetos llama a las propiedades variables de instancia y las acciones son conocidas como métodos. La orientación a objetos pura de Ruby se suele demostrar con un simple código que aplica una acción a un número. • 5.times { print "Nos *encanta* Ruby -- ¡es fuera de serie!" } • En muchos lenguajes, los números y otros tipos primitivos no son objetos. Ruby sigue la influencia del lenguaje Smalltalk pudiendo poner métodos y variables de instancia a todos sus tipos de datos. Esto facilita el uso de Ruby, porque las reglas que se aplican a los objetos son aplicables a todo Ruby. A CERCA DEL CRECIMIENTO EN TUBY • Acerca del crecimiento de Ruby • Desde su liberación pública en 1995, Ruby ha atraído devotos desarrolladores de todo el mundo. En el 2006, Ruby alcanzó reconocimiento masivo, formándose grupos de usuarios activos en las ciudades más importantes del mundo y llenando las capacidades de las conferencias relacionadas a Ruby. • Ruby-Talk, la lista de correo más importante sobre el lenguaje Ruby ha crecido hasta lograr un promedio de 200 mensajes por día. • El índice TIOBE, que mide el crecimiento de los lenguajes de programación, ubica a Ruby en la posición #13 del ranking mundial. Refiriéndose a su crecimiento, 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 es totalmente libre. No sólo gratis, sino también libre para usarlo, copiarlo, modificarlo y distribuirlo. APARIENCIA VISUAL DE TUBY • 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. TUBY Y MIXIN • Ruby y el Mixin • A diferencia de otros lenguajes de programación orientada a objetos, Ruby se caracteriza por su intencional herencia simple. Sin embargo, Ruby incorpora el concepto de módulos (llamados categorías en Objective-C), que son colecciones de métodos. • Las clases pueden mezclar (mixin) un módulo e incorporar todos sus métodos gratuitamente. Por ejemplo, cualquier clase que implemente el método each puede incorporar el módulo Enumerable, que le agrega un conjunto de métodos que usan each para recorrer sus elementos. • class MiArray • include Enumerable • end • En general, los Rubyistas ven esto como una forma mucho más clara de herencia múltiple, que es compleja e incluso puede ser restrictiva. BLOQUES • Los Bloques, una funcionalidad realmente expresiva • Los bloques de Ruby son también vistos como una fuente de gran flexibilidad. El desarrollador puede anexar una cláusula a cualquier método, describiendo cómo debe actuar. La cláusula es llamada bloque y se ha convertido en una de las más famosas funcionalidades para los recién llegados a Ruby que vienen de otros lenguajes imperativos como PHP o Visual Basic. • Los bloques están inspirados por los lenguajes funcionales. Matz dijo, “en las cláusulas de Ruby, quise respetar la cultura de Lisp3”. • motores_de_busqueda = • %w[Google Yahoo MSN].map do |motor| • "http://www." + motor.downcase + ".com" • end • En este código, el bloque está descrito entre la construcción do ... end. El método map aplica el bloque a la lista de palabras provista. Muchos otros métodos en Ruby dejan abierta la posibilidad al desarrollador para que escriba su propio bloque describiendo los detalles de qué debe hacer ese método. POR QUE USAR RUBY • PRO QUE USAR RUBY • A menudo muchos programadores recomiendan comenzar con Ruby a los principiantes ya que es un lenguaje fácil de usar. Otra de las razones principales es que viene con una larga lista de beneficios en comparación con otros lenguajes de programación. Muchos de estos beneficios los experimentarás casi tan pronto como empieces a trabajar con Ruby. • Para empezar, el ecosistema de Ruby es enorme, y eso sin contar la parte de Ruby on Rails. • Los recursos de Ruby son abundantes: cuando trabajas con un lenguaje de programación, los recursos disponibles son los elementos imprescindibles. Además de una amplia documentación oficial, hay una gran cantidad de recursos disponibles para el desarrollador de Ruby medio, incluyendo libros, screencasts, videos, cursos online, clases locales, bootcamps de desarrollo, foros, etc. • Ruby tiene una comunidad activa: hay un montón de desarrolladores que trabajan activamente con Ruby. Una comunidad activa es otra fuente abundante de ayuda cuando nos encontramos ante un problema. • Ruby cuenta con más de 60.000 bibliotecas y varios frameworks para elegir: Con frameworks y bibliotecas como Ruby on Rails o Chef, puedes incorporar el código preexistente en tus propios proyectos. RubyGems fue creado específicamente para Ruby, para ayudar a administrar los numerosos frameworks y bibliotecas construidas en el lenguaje. Todas estas fuentes se traducen en un ciclo de desarrollo más fácil y rápido para tus proyectos. • Además, el aprendizaje de Ruby es un trampolín para trabajar con frameworks como Ruby on Rails. Rails te permitirá desarrollar aplicaciones web mucho más rápido aprovechando una enorme fuente de código preexistente. En lugar de construir una aplicación o una plataforma completa desde cero, puedes utilizar módulos preexistentes de código y juntarlos para crear algo totalmente diferente. • Tanto Ruby como Ruby on Rails están experimentando un crecimiento increíble de demanda en estos momentos. No sólo hablamos de empresas que contratan para construir aplicaciones web utilizando Ruby on Rails (y mantenerlas), sino que además hay una enorme demanda de ingenieros de DevOps. Un ingeniero de DevOps gestiona la automatización y el despliegue de servidores que ejecutan frameworks como Puppet y Chef. Dado que estos sistemas se utilizan para gestionar servidores fiables y eficientes diseñados para manejar cargas pesadas de tráfico, la necesidad de ingenieros que puedan operar estos sistemas crecerá. Sobre todo, porque lo que hacemos está conectado a la web. FLEXIBILIDAD EN TUBY • La flexibilidad de Ruby • Ruby es considerado un lenguaje flexible, ya que permite a sus usuarios alterarlo libremente. Las partes esenciales de Ruby pueden ser quitadas o redefinidas a placer. Se puede agregar funcionalidad a partes ya existentes. Ruby intenta no restringir al desarrollador. • Por ejemplo, la suma se realiza con el operador suma (+). Pero si prefieres usar la palabra sumar, puedes agregar un método llamado sumar a la clase Numeric que viene incorporada. • class Numeric • def sumar(x) • self.+(x) • end • end • • y = 5.sumar 6 • # ahora y vale 11 • Los operadores de Ruby son simples conveniencias sintácticas para los métodos. Los puedes redefinir como y cuando quieras. EMPRESAS QUE USAN RUBY ON RAILS • propgrama con ruby • Hace unos días realizábamos una lista de cinco páginas web que trabajan con Drupal 8. Pues bien, ahora le toca el turno a Ruby. El lenguaje de programación interpretado, reflexivo y orientado a objetos, creado por el programador japonés Yukihiro Matsumoto en 2006, está muy presente en páginas webs que visitamos a diario. A continuación, dejamos una lista de portales que seguro que son familiares. • 1. Twitter. Quizá sea una “trampa” en la lista, pero había que mencionar a esta enorme red social. Millones de usuarios de todo el mundo la utilizan a diario. En sus inicios, se creó sobre Ruby, aunque a día de hoy cambió a Scala para gestionar mejor la gran cantidad de mensajes en tiempo real. • 2. Airbnb. Se trata de una empresa y una plataforma de software dedicada a la oferta de alojamientos a particulares y turísticos. El nombre es un acrónimo de airbed and breakfast (colchón inflable y desayuno). Airbnb tiene una oferta de más de 2.000.000 propiedades en 192 países y más de 33.000 ciudades. • 3. Hulu. Es un sitio web de pago, apoyado por publicidad, streaming de programas de televisión y películas de NBC, FOX, y muchas otras redes y estudios. Actualmente sólo se ofrecen a los usuarios en los Estados Unidos. Es una plataforma muy parecida a Netflix o HBO. • 4. Groupon. El gigante de los descuentos a nivel mundial. Lanzado en noviembre de 2008 en Chicago, su base está realizada en Ruby. Millones de personas de todo el mundo se benefician a diario de los descuentos en la web. • 5. Bloomberg. Fundada en 1981, es una de las mayores corporaciones del mundo dedicada al mundo de las finanzas, con su propia agencia de noticias y software bursátil y con más de 15.000 empleados, una de las empresas más grandes que recurre a Ruby. • 6. Soundcloud. El YouTube del sonido. La plataforma sueca gestiona 175 millones de visitas únicas al mes y la subida de doce horas de audio por minuto, y se ha convertido en una referencia tanto para los usuarios como para los creadores. Originalmente fue escrita en Ruby, pero al igual que Twitter más tarde adoptó Scala para ciertas partes de la aplicación, aunque R sigue presente en el código de SoundCloud. • 7. Github. No podíamos olvidarnos de la mayor red social de desarrolladores a nivel mundial. El repositorio de código de Github está construido sobre Ruby, tiene más de 10 millones de usuarios y almacena más de 25 millones de repositorios. PUESTOS DE TRABAJO • Puestos de trabajo para desarrolladores de Ruby • La mayoría de los trabajos que requieren conocimientos de Ruby tienen que ver con el desarrollo web. Un gran número de ellos requieren conocer el framework de Rails u otros lenguajes y herramientas de desarrollo. NOMBRES PARA LOS DEARROLADORES EN TUBY • Los títulos de trabajo más populares para los desarrolladores de Ruby son: • Ingeniero Ruby o Ruby on Rails. • Desarrollador Ruby / Ruby on Rails. • Ingeniero / Desarrollador backend. • Desarrollador fullstack. • Desarrollador de Software Agile. • Ingeniero de versiones. • Desarrollador Web / Ingeniero de Software • Como puedes ver, hay varios términos para describir estas carreras. En cada puesto ofertado se mencionarán otras herramientas e idiomas con los que el candidato ideal debería estar familiarizado. REFERENCIAS • ↑ https://www.ruby-lang.org/en/news/2018/12/25/ruby-2-6-0-released/ • ↑ «El lenguaje de programación Ruby, por Yukihiro Matsumoto». informit.com (en inglés). Consultado el 7 de octubre de 2016. • ↑ Saltar a:a b c Bill Venners (29 de septiembre de 2003). Artima, ed. «La filosofía de Ruby, una conversación con Yukihiro Matsumoto, Parte I» (en inglés). Consultado el 2 de mayo de 2015. • ↑ Ruby Weekly News 23rd – 29th May 2005