Logo Studenta

Programa Ruby

¡Este material tiene más páginas!

Vista previa del material en texto

República Bolivariana de Venezuela
Ministerio del Poder Popular para la Educación Universitaria
Universidad Politécnica Territorial del Estado Trujillo “Mario Briceño Iragorry”
Núcleo “Barbarita de la Torre”
Trujillo – Edo – Trujillo 
Cátedra: Acreditable II
Ruby
	
Elaborado por:
Ojeda, R. Rosimar.
V-27.466.011
PNF en Informática
Trayecto II – Trimestre I
Noviembre, 2022
¿Qué es Ruby?
 Ruby es un lenguaje de programación interpretado, reflexivo y orientado a objetos. Este 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.
 A diferencia de lenguajes como C y C++, un lenguaje de secuencias de comandos no se comunica directamente con el hardware. Se escribe en un archivo de texto y luego un intérprete lo analiza y lo convierte en código. Estos programas son generalmente de naturaleza procesal, lo que significa que se leen de arriba a abajo.
Los lenguajes orientados a objetos, por otro lado, dividen piezas de código en objetos que se pueden crear y usar según sea necesario. Puede reutilizar estos objetos en otras partes del programa, o incluso en otras aplicaciones.
 El lenguaje de programación Ruby es un lenguaje de propósito general altamente portátil que sirve para muchos propósitos.
 Ruby es excelente para crear aplicaciones de escritorio, sitios web estáticos, servicios de procesamiento de datos e incluso herramientas de automatización. Se utiliza para servidores web, DevOps y raspado y rastreo web.
 Este lenguaje de programación es multiplataforma y gracias a un framework que facilita el desarrollo de aplicaciones online populares empleadas por redes sociales y muchas webs reconocidas. Además, este código informático también permite crear proyectos para ordenadores y dispositivos móviles, lo cual lo hace atractivo y versátil para cualquier desarrollador.
Origen de Ruby
 Matsumoto ha dicho que Ruby fue concebido en 1993. En una publicación de 1999 en la lista de correo de ruby-talk, describe algunas de sus primeras ideas sobre el lenguaje:
“Estaba hablando con mi colega sobre la posibilidad de un lenguaje de scripting orientado a objetos. Conocía Perl (Perl4, no Perl5), pero en realidad no me gustaba porque olía a lenguaje de juguete (todavía lo tiene). El lenguaje orientado a objetos parecía muy prometedor. Entonces conocí a Python. Pero no me gustó, porque no pensé que fuera un verdadero lenguaje orientado a objetos; las características de OO parecían ser un complemento del lenguaje. Como maníaco del lenguaje y fanático de OO durante 15 años, realmente quería un lenguaje de scripting genuino, orientado a objetos y fácil de usar. Busqué, pero no pude encontrar uno. Así que decidí hacerlo.”
 Matsumoto describe el diseño de Ruby como un simple lenguaje Lisp en su núcleo, con un sistema de objetos como el de Smalltalk, bloques inspirados en funciones de orden superior y una utilidad práctica como la de Perl.
¿Quién creó Ruby? 
 Yukihiro Matsumoto, también conocido como “Matz” (n. 14 de abril de 1965) es un informático y programador de software libre, principalmente conocido por ser el principal diseñador del lenguaje de programación Ruby.
 Matsumoto, nació en la Prefectura de Tottori, en Honshu occidental. De acuerdo a una entrevista realizada por Japan Inc. Yukihiro se convirtió en programador autodidacto hasta el final de la secundaria. Se graduó en Ciencias de la Computación en la Universidad de Tsukuba, donde ingresó al departamento de investigación sobre lenguajes de programación y compilaciones. 
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. 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 esas 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 1.9.
Ventajas y Desventajas de Ruby
Ventajas de usar Ruby en la programación web
Las principales ventajas de usar Ruby en la programación web son las siguientes:
· Es código libre y no se debe preocupar de pagar licencias por su uso, e incluso es gratis y tampoco se tiene que tener dinero para costear la descarga desde la web. De esta manera se puede utilizar, copiar, modificar y distribuir este lenguaje de programación sin preocuparte por las leyes nacionales e internacionales.
· Permite programar en la web viendo todo como un objeto, ya que su estructura y sintaxis es orientada a objetos. De esta manera puedes asignar propiedades y acciones a cualquier forma de código que escribas usando a Ruby como base. Esta es una excelente forma de usar las variables de instancias y clases, establecer métodos para cualquier proyecto online que se te ocurra, sin importar si usas números y otros tipos primitivos.
· Cuenta con flexibilidad para modificarlo a al gusto, ya que permite eliminar o redefinir cualquier parte de código esencial de Ruby. Esto significa que tiene acceso a lo que necesite para adicionar funciones extras a las formas de código que ya existen, de modo que no se límite al programar. Esto último se puede hacer hasta el punto de modificar el operador “+” para sumar por la palabra “suma” con tan sólo adicionar un método a la clase Numeric.
· Ofrece bloques para que agregar cláusulas a cualquier método dentro del código de programación. Para muchos desarrolladores, tanto novatos como experimentados, se trata de una funcionalidad que aporta flexibilidad. Esto último permite describir de manera natural como debe actuar cada fragmento del lenguaje que esté relacionado con aquellos. Además, estos últimos están inspirados en lenguajes funcionales como Lisp o Perl.
· Utiliza convenciones simples para determinar y mencionar a las variables, lo que mejora su legibilidad frente a otros lenguajes.
Desventajas de usar Ruby en la programación web
Estas son las principales desventajas de usar Ruby en la programación web:
· No cuenta con comunidades y soporte de atención al cliente tan amplio como otros lenguajes de programación. Esto es un punto negativo ya que si se está empezando con la programación web y apenas usa Ruby va a necesitar libros y documentación técnica a la que no se puede tener fácil acceso. Ello comparado con otros códigos tales como PHP y C#, los cuales tienen amplia comunidad y ayuda extendida online, incluyendo muchos más recursos literarios.
· Tim Bray, desarrollador web, ha mencionado en reiteradas oportunidades que el lenguaje de programación Ruby es más lento en cuanto al procesamiento se refiere. Además, esto mismo se ha comprobado a través de varios sitios web que miden la respuesta de los códigos informáticos. Esto implica que necesitas más tiempo de trabajo para comprobar el funcionamiento de un proyecto.
· En vista de ser nuevo en el campo de los lenguajes de programación web, requiere mayor tiempo para que familiarizarse con las estructuras y su funcionamiento general. Además, tiene su propio código de codificación, lo que significa que la curva de aprendizaje es mayor comparado con otros como PHP o Perl.
· Las actualizaciones sonmás lentas comparadas con otros lenguajes de programación como PHP, que una vez creado se ha actualizado para corregir errores varias veces al año. Esto te ocasiona retrasos al desarrollar un proyecto web si esperas que corrijan aspectos de seguridad o funcionalidad que sean esenciales para que un programa funcione correctamente.
· No se encuentran muchas framework creadas con Ruby, lo que limita un poco el desarrollo de aplicaciones para la web. Sin embargo, una de las mejores es Ruby on Rails, muy aceptada por la comunidad de desarrolladores ya que favorece la convención antes que la configuración.
Origen del nombre “Ruby”
 En el círculo de amigos de Matsumoto se le colocó el nombre de “Ruby” (en español Rubí) como broma aludiendo al lenguaje de programación “Perl” (Perla). Esto debido a que la sintaxis de Ruby es similar a la de Python y Perl.
Característica del Lenguaje Ruby
· 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, entre otros. Cualquier cosa que se le ocurra puede 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.
· 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 green threads.
· 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.
Filosofía 
 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.2​ Sostiene 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,3​ sin 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. 
 Matz lo definió de esta manera en una entrevista: 
“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.”
Instalación del Lenguaje Ruby
 Ruby es un lenguaje disponible para Windows, Linux y Mac. En este curso utilizamos Windows, pero no debería haber muchas diferencias si utiliza alguno de los otros dos sistemas operativos.
La página oficial del lenguaje Ruby es ruby-lang.org
Luego de descargado el archivo de instalación procedemos a ejecutarlo (aceptamos la licencia):
 En el siguiente diálogo procedemos a chequear el complemento Tcl/Tk, modificación del path y asociar los archivos con extensión *.rb y *.rbw:
 Finalmente, ya se instaló el lenguaje Ruby en el equipo listo para que empezar a codificar los primeros programas:
 Ya instalado el intérprete del lenguaje Ruby, pero hay que tener en cuenta que no se instaló ningún entorno de desarrollo de Ruby
 Se debe elegir algún editor para escribir los programas, es libre de utilizar su editor de texto favorito, en este caso se utilizará el editor Visual Studio Code, un editor Open Source desarrollado por Microsoft.
 Si instala el Visual Studio Code el proceso es muy sencillo:
 Una vez instalado podemos iniciar el programa accediendo desde el menú de inicio de Windows o el ícono sobre el escritorio:
 Se va a crear un programa mínimo en Ruby para ver si tenemos todo correctamente instalado. Creamos un nuevo archivo desde Visual Studio Code (o su editor favorito):
Se pasa a codificar el siguiente programa en Ruby:
Programa: ejercicio001.go
puts "Hola mundo"
Se crea una carpeta en la unidad C:\ con el nombre: programasruby:
 Ahora se graba el archivo con el código fuente que escribimos con nuestro editor de texto con el nombre: ejercicio001.rb:
 Para poder ejecutar nuestro programa en Ruby debemos ir a "Símbolo del sistema":
 Se cambia al directorio donde guardamos nuestro programa en Ruby mediante el comando cd c:\programasruby:
 Ahora desde la consola se puede ejecutar el programa en Ruby. Para esto se escribe en la consola:
ruby ejercicio001.rb
 El resultado por pantalla debe ser un mensaje igual a "Hola mundo":
 En el directorio c:\programasruby hay un único archivo (ejercicio001.rb) y lo podemos ver escribiendo en la consola dir:
 Los archivos con extensión *.rb almacenan el código fuente de nuestro programa.
Con esto termina la instalación del lenguaje Ruby, selección de un editor de texto y control de la ejecución de un programa mínimo en Ruby.
Ejemplos de Algoritmos en Ruby
 A continuación, se presenta una breve explicación de algunas cosas básicas de Ruby (**Todos los comandos se hicieron bajo la terminal del SO Ubuntu 16.04 ++):
· Una vez que hayas instalado Ruby abres la terminal de tu máquinay ejecutas:
· $ ruby -v
Con este comando podrás ver la versión instalada de Ruby:
· Se puede editar un fichero con extensión .rb para programar un Hola Mundo.
Con el touch creamos el fichero y con el nano lo editamos y lo guardamos:
· $ touch hello_world.rb
· $ nano hello_world.rb
Dentro del fichero colocamos el Hola Mundo:
· Se puede utilizar la función nativa puts, que imprime una línea de texto por la pantalla y se le pasa una cadena de texto, es decir, un objeto de tipo string. Ejecutamos el fichero con la extensión .rb con el siguiente comando:
· $ ruby hello_world.rb
· Cuando se instala Ruby, este viene con el comando irb, que viene de Interactive Ruby. Este comando nos abre un shell (una consola) donde se pueden ir ejecutando sentencias de Ruby y probar nuestro código. Se pueden declarar variables, realizar operaciones matemáticas (suma, resta, división, división con flotante, multiplicación, potencia, modulo), colocar cadenas de string con comillas simples ‘ ‘ o dobles “ “, etc. Cada expresión que se ejecuta en la consola produce una salida, esto es porque en Ruby toda expresión devuelve un objeto.
· Se pueden crear símbolos (symbol), un tipo de dato que tiene Ruby muy parecido a los string, ya que representa un texto de alguna forma, sin embargo, son también muy parecidos a los números ya que son únicos e inmutables.
¿Qué tiene de especial un symbol? Que siempre que se escriba de la misma forma se tiene el mismo object_id, es decir, se está representando el mismo objeto. En cambio, con una cadena de texto la ejecución continua del método object_id sobre el objeto tipo string nos da un identificador del objeto diferente, porque, aunque estén escritos de la misma forma son objetos distintos. Además, no se puede cambiar un símbolo, una vez que se define no se puede cambiar un carácter o añadirle algo ya que son inmutables.
· También están en Ruby los Arrays. En ellos se puede añadir elementos de diferentes tipos, varios elementos a la vez, se puede acceder a un elemento, entre otras acciones.
· En Ruby en ningún momento se define el tipo del objeto sobre el que estes trabajando, en el momento de la definición es cuando el intérprete de Ruby hace la asignación.
· Están los objetos booleanos: TRUE/FALSE y están las clases de ambos.
· Toda expresión tiene en Ruby un estado verdadero/falso y todo objeto evalúa a true salvo el objeto false o nil (ausencia).