4 puntos por GN⁺ 2024-12-26 | 2 comentarios | Compartir por WhatsApp
  • Al igual que en años anteriores, Ruby 3.4.0 se lanzó el 12/25.

  • Las actualizaciones principales incluyen la adición de la referencia al parámetro de bloque it, el cambio a Prism como parser por defecto, la incorporación de soporte de Happy Eyeballs Version 2 en la librería socket, mejoras en YJIT y la adición del GC modular, entre otros cambios.

  • Referencia al parámetro de bloque it

    • Se introdujo it, que permite hacer referencia a los parámetros de bloque sin un nombre de variable. Esto funciona de manera similar a _1 y es cómodo de usar en bloques simples.
  • Cambio a Prism como parser por defecto

    • El parser por defecto cambió de parse.y a Prism. No debería haber cambios grandes para los usuarios, y si surge algún problema de compatibilidad se solicita reportarlo.
  • Happy Eyeballs Version 2 en la librería socket

    • Se agregó soporte de Happy Eyeballs Version 2 (RFC 8305) a la librería socket, lo que permite conexiones de red más eficientes y confiables para el entorno de internet moderno.
  • Mejora de YJIT

    • Se mejoró el rendimiento en la mayoría de los benchmarks, se redujo el uso de memoria, se corrigieron diversos errores y se agregaron nuevas características.
  • GC modular

    • Se agregó GC modular para permitir la carga dinámica de implementaciones alternativas del recolector de basura (GC). Requiere la toolchain de Rust.
  • Cambios en el lenguaje

    • Se emitirá una advertencia cuando se modifique un literal de cadena en un archivo sin el comentario frozen_string_literal. Incluye cambios diversos, como soporte para keyword splatting con **nil.
  • Actualización de clases núcleo

    • Incluye varias actualizaciones de clases núcleo, como permitir que Exception#set_backtrace acepte un arreglo de Thread::Backtrace::Location.
  • Actualización de la biblioteca estándar

    • Mejoras de rendimiento y nuevas funcionalidades en varias bibliotecas estándar como RubyGems, Bundler, JSON y Tempfile.
  • Problemas de compatibilidad

    • Incluye cambios relacionados con la compatibilidad, como cambios en la forma de mostrar mensajes de error y backtraces, y cambios en la representación de Hash#inspect.
  • Actualización de la API de C

    • Incluye actualizaciones de la API de C, como la eliminación de las funciones rb_newobj y rb_newobj_of.
  • Otros cambios

    • Incluye varios cambios, como emitir una advertencia al pasar bloques no utilizados a métodos, entre otros.

2 comentarios

 
GN⁺ 2024-12-26
Opinión de Hacker News
  • Hay mucha expectación por el cambio en el parser de Ruby. Antes aprendimos que había que usar yacc, pero Ruby se suma a la lista de lenguajes que usan parsers escritos a mano.

    • Reemplazar un parse.y de 16k líneas por un prism.c de 22k líneas es una jugada arriesgada.
  • Ruby 3.4.1 ya está desactualizado.

  • El rendimiento de Ruby mejoró bastante en los últimos años. Desde la versión 3.3, todos mis apps las ejecuto con la opción --yjit, y la diferencia es grande.

  • La estrategia de Shopify está alineada con la de YJIT: si no puedes refactorizar el servicio, hay que refactorizar Ruby.

  • Es un buen extra adicional que el rendimiento también mejore a nivel de JIT y GC.

  • Espero el lanzamiento de Ruby como en la tradición de Navidad de cada año.

  • Al final de cada año actualizo mi app de Rails, y últimamente esto se volvió más fácil porque es más estable y con mejor rendimiento.

  • Felicitaciones y agradecimiento al equipo de Ruby.

  • Desde que salió la noticia de Rails 8 quise probar Ruby, pero me rendí porque la instalación fue demasiado complicada.

    • Instalar Ruby 3.3 en Mac y Windows fue todo un reto.
    • En Docker también hubo que hacer ajustes de versión, y también hubo problemas con devContainers.
    • Después de instalar, el resaltado de sintaxis en archivos html.erb de Rails quedaba completamente roto en VSCode y otros editores.
    • Intenté buscar solución en línea, pero no pude y al final lo dejé.
    • Probé en Mac, Windows y Linux, y falló en todos. Si alguien lo logra arreglar, sería el mejor regalo de Navidad.
 
eajrezz 2024-12-26

Después de las noticias de Rails 8 quería probar Ruby, pero terminé renunciando porque el proceso de instalación era demasiado difícil.

Hay un script que facilita la instalación de Rails en macOS. => https://rails.new/