27 декабря было официально объявлено о выпуске новой версии Ruby 3.4. Одним из ключевых изменений в Ruby 3.4 является переход с традиционного синтаксического анализатора `parse.y` на новый анализатор под названием Prism. Этот переход направлен на улучшение поддерживаемости, устойчивости к ошибкам, переносимости и производительности языка Ruby.
В Ruby 3.4 введён новый параметр блока `it`, который упрощает работу с блоками без необходимости указывать имя переменной. Например, выражение `ary.map { it.upcase }` становится более читабельным и простым в сравнении с традиционными числовыми параметрами `_1`, `_2` и т.д. Модульный механизм сборки мусора (Modular GC) в Ruby 3.4 был разделён на отдельные файлы модулей, что повышает гибкость и эффективность управления памятью. Это изменение позволяет более гибко настраивать и оптимизировать процесс сборки мусора в зависимости от конкретных потребностей приложения.

Кроме того, Ruby 3.4 включает в себя несколько значительных оптимизаций, направленных на повышение производительности. Одной из ключевых оптимизаций является улучшение работы YJIT (компилятор «точно в срок»), который теперь может более эффективно выполнять интроспекцию и оптимизацию кода, написанного на Ruby. Например, метод `Integer#times` был переписан на Ruby в версии 3.3, что позволило YJIT существенно увеличить скорость выполнения циклов. Также были улучшены возможности сжатия памяти и обработки строк. Эти изменения обеспечивают более эффективное использование ресурсов и ускоряют выполнение различных операций в приложениях на Ruby.
В библиотеке сокетов Ruby 3.4 реализована поддержка RFC 8305 «Happy Eyeballs V2», которая повышает эффективность подключения программ Ruby в современных сетевых средах. Эта технология поддерживает параллельный анализ и соединение IPv6 и IPv4, выполняя попытки соединения с интервалом в миллисекунды. Это позволяет приложениям быстро установить лучшее соединение, обеспечивая стабильную надёжность в различных сетевых условиях.

