Curso de Ruby

Curso de Ruby

Sim贸n Soriano

Sim贸n Soriano

Diferencias entre Ruby 2.5 y 3

21/39

Lectura

Gracias a que la comunidad de Ruby es muy activa, constantemente se est谩n lanzando nuevas versiones del lenguaje y de los diferentes int茅rpretes. Al momento de crear este curso el 煤ltimo 鈥渞elease鈥 es la versi贸n 2.5.3. Para mantenerte actualizado sobre estas versiones puedes revisar la p谩gina oficial del lenguaje (https://www.ruby-lang.org) y tambi茅n, cada vez que sale una nueva versi贸n te recomiendo 鈥済ooglear鈥 los cambios que esta versi贸n incluye.

Por ejemplo:
http://lmgtfy.com/?q=ruby+2.5+release+new+features en donde te encontraras con articulos como https://blog.jetbrains.com/ruby/2017/10/10-new-features-in-ruby-2-5/ o https://www.engineyard.com/blog/ruby-250-new-features en donde te resumen las nuevas caracteristicas que se incluyen en la nueva version. Adicionalmente cada nueva versi贸n incluye parches de seguridad que son importantes para mantener tu aplicaci贸n siempre segura y protegida en contra de ataques por lo que es muy recomendable siempre estar revisando las nuevas versiones y actualizar las aplicaciones cuando sea posible.

驴Qu茅 esperar de Ruby 3?

Los desarrolladores de Ruby tienen un proyecto llamado Ruby 3x3 con el que pretenden hacer que la versi贸n 3 de Ruby sea 3 veces mas r谩pida que Ruby 2.

El termino r谩pido es muy subjetivo y depende de c贸mo se hagan las mediciones. Esto es algo que los desarrolladores del lenguaje tienen en cuenta as铆 que no podemos esperar que con Ruby 3, nuestra aplicaci贸n web que utiliza Ruby on Rails sea 3 veces mas r谩pida que la versi贸n que utiliza Ruby 2 pues el desempe帽o depende tambi茅n de muchos detalles de implementaci贸n que est谩n fuera del control de los desarrolladores del lenguaje.

Respecto al futuro de Ruby 3, los principales objetivos son:

  • Desempe帽o
  • Modelo de concurrencia
  • Tipos

Desempe帽o

Por lo pronto el proyecto ha hecho varios avances que ya se pueden ver respecto a desempe帽o. Como el punto de comparaci贸n es Ruby 2.0, ya hemos podido ver varias mejoras entre los releases intermedios como Ruby 2.1, 2.2, 2.3, etc en donde se han hecho mejoras por ejemplo de manejo de memoria que hacen que el int茅rprete sea m谩s r谩pido.

Concurrencia

Adicionalmente est谩n trabajando en un nuevo modelo de concurrencia para ofrecer nuevas abstracciones que no solamente van a hacer posible ejecuci贸n en paralelo sino que adem谩s van a ofrecer una manera m谩s f谩cil de crear programas concurrentes. Esta nueva abstracci贸n es llamada guild, propuesta por Koichi Sasada en http://rubykaigi.org/2016/presentations/ko1.html. A grandes rasgos, los guilds son como grupos de ejecuci贸n de threads. Dentro del mismo guild pueden existir varios threads que comparten variables, pero estos threads en el mismo guild o grupo no se pueden ejecutar en paralelo. Sin embargo, threads en diferentes guilds si pueden ejecutarse en paralelo pero no tienen acceso a las mismas variables, lo cual limita lo que se puede hacer con guilds pero a la vez ofrece garant铆as para evitar problemas comunes de programas concurrentes como data races. Para compartir informaci贸n entre diferentes guilds, se pueden usar channels (muy parecido al modelo de concurrencia en Go) y tambi茅n se puede compartir objetos que sean inmutables. Para conocer mas sobre este modelo de concurrencia te recomiendo leer este blog post (https://mensfeld.pl/2016/11/getting-ready-for-new-concurrency-in-ruby-3-with-guilds/) en donde explican a grandes rasgos como prepararnos para el nuevo modelo de concurrencia en Ruby 3.

Tipos

Finalmente, en lo que respecta a tipos en Ruby 3, aunque es uno de los grandes objetivos pues se sabe que la comunidad est谩 pidiendo soporte para esto, el trabajo en este campo no est谩 tan avanzado como en los otros 2 puntos.

Release de Ruby 3

En una conversaci贸n con 3 l铆deres de la comunidad incluyendo a Matz (el creador de Ruby), se habl贸 de Ruby 3x3 y de los diferentes avances, sin embargo dijeron que hay todav铆a mucho trabajo por hacer y qu茅 podemos esperar por Ruby 3 hasta el 2020.

Puedes encontrar la conversaci贸n en https://blog.heroku.com/ruby-3-by-3 y un post en redit en donde se hace un resumen del avance de Ruby 3x3 en https://www.reddit.com/r/ruby/comments/7hhgrt/where_is_the_work_on_ruby_3/

Aportes 6

Preguntas 1

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesi贸n.

Se espera para diciembre de 2020 el release de Ruby 3, con actualizaciones importantes en:

  • Rendimiento
  • Concurrencia
  • An谩lisis est谩tico
  • Problemas de transici贸n

M谩s informaci贸n en Big News: Ruby Version 3.0

Buena info, alguien sabe que es eso de Tipos?

Que buen tema, interesante y motivador.

Si quieren recibir semanalmente a su correo articulos sobre las nuevas actualizaciones y noticias interesantes de Ruby y RoR suscribanse a Ruby Weekly

Excelente!, 驴Alguien sabe donde se pueden hacer aportes para el desarrollo de la nueva versi贸n?

Justo liberaron ruby 3 hace algunos dias, excelente par irme a leer las notas y diferencias con la version 2.x