December 25-én megjelent a Ruby 4.0.0, amely bemutatja a "Ruby Box" és "ZJIT" technológiákat, és számos fejlesztést tartalmaz. A Ruby 4.0 karácsony napján jelent meg 2025-ben, ezzel megünnepelve a Ruby első nyilvános kiadásának 30. évfordulóját.
Ruby Box: Forradalom az alkalmazás-izolációban
A Ruby Box egy új kísérleti funkció, amely definíciók elkülönítését biztosítja. A Ruby Box környezeti változóval (RUBY_BOX=1) aktiválható, és a Ruby::Box osztályt használja. A boxban betöltött definíciók izolálva vannak az adott boxban.
A Ruby Box képes izolálni/elkülöníteni a monkey patch-eket, globális/osztály változók módosításait, osztály/modul definíciókat, valamint a betöltött natív/ruby könyvtárakat más boxoktól.
A várható felhasználási területek között találjuk:
- Teszt esetek futtatása boxban más tesztek védelmében, amikor a teszt eset monkey patch-eket használ
- Webalkalmazás boxok párhuzamos futtatása blue-green deployment végrehajtásához egy app szerveren egy Ruby folyamaton belül
- Webalkalmazás boxok párhuzamos futtatása függőségi frissítések értékeléséhez meghatározott ideig
ZJIT: Az új generációs fordító
A Ruby 4.0 ZJIT-tel érkezik, amely az új just-in-time fordítójuk az YJIT fordító új generációjaként. A ZJIT egy kísérleti, metódus-alapú JIT fordító, amelyet ugyanaz a Shopify csapat fejlesztett, amely az YJIT-et is készítette.
Míg az YJIT közvetlenül a Ruby VM YARV bájtkódját fordítja alacsony szintű IR-re, egy alapblokk után a másikat feldolgozva, addig a ZJIT Static Single Assignment Form (SSA) formát használ magas szintű köztes reprezentációként és teljes metódusokat fordít egyszerre.
A ZJIT célja, hogy hozzáférhetőbb legyen a közreműködők számára. Egy "tankönyvi" fordító architektúrát követ, amely könnyebben érthető és módosítható. Bár a ZJIT gyorsabb mint az interpretált kód, az YJIT marad az ajánlott választás a production környezethez. A ZJIT megalapozza a jövőbeli teljesítménybeli fejlesztéseket és közösségi hozzájárulásokat.
Ractor API átdolgozás és további újítások
A Ractorok, Ruby válasza az igazi párhuzamosságra, jelentős API átdolgozást kaptak. Az új design a Ractor::Port-ot használja a ractorok közötti kommunikációhoz. A régi Ractor.yield és Ractor#take metódusok eltávolításra kerültek. Ez a változás az inter process communication (IPC) szemantikát tükrözi, intuitívabbá téve az API-t a párhuzamos programozási mintákban jártas fejlesztők számára.
A Set osztály a standard könyvtárból a core osztállyá lett előléptetve. Többé nincs szükség a require 'set' használatára.
A fejlesztők számára a Ruby 4.0 elsősorban folytonosságot jelent: a meglévő kód továbbra is fut, a teljesítmény tovább javul, és a típusrendszer érettebb lesz. Az igazi innováció az infrastruktúrában rejlik a következő évtizedre – a ZJIT, Modular GC és a továbbfejlesztett Ractorok versenyképesen tartják majd a Ruby-t az elkövetkező években.
Forrás: Ruby-lang.org - https://www.ruby-lang.org/en/news/2025/12/25/ruby-4-0-0-released/
A cikk AI segítségével készült, hiteles nemzetközi forrásokból származó információk alapján.