Ruby 4.0의 핵심 기능들은 다음과 같습니다.
Ruby Box (실험적 격리)
-
환경 변수로 활성화되는 기본 비활성화 기능입니다.
-
클래스, 모듈, 인스턴스 및 전역 변수를 격리하여, 동일 애플리케이션 내에서 여러 라이브러리 버전의 공존을 가능하게 합니다.
-
기존 ‘Namespace’와의 혼동을 피하고자 명칭이 변경되었습니다.
-
일부 사용자들은 JRuby, TruffleRuby 등의 기존 격리 기능에 비해 현재 구현이 미흡하며, 병렬 처리 및 명확한 의미론적 모델이 부족하다고 평가합니다.
Ractor (동시성)
-
Ruby 3.0에 도입되었으나, 여전히 프로덕션 준비가 되지 않은 실험적 기능입니다. 2026년까지 실험적 상태 제거를 목표로 합니다.
-
각 Ractor는 독립적인 GVL(Global VM Lock)을 통해 병렬 실행을 가능하게 하여 Ruby를 진정한 동시성 언어로 발전시킵니다.
-
4.0 버전에서는 내부 데이터 구조 개선 및 메시지 송수신 문제 해결을 위한 새 클래스가 추가되었습니다.
ZJIT (새로운 JIT 컴파일러)
-
기본 비활성화 상태입니다.
-
인터프리터보다 빠르지만 YJIT만큼은 아니며, “충돌 및 심각한 성능 저하”가 예상됩니다.
-
그러나 “훌륭한 새로운 기반”으로 평가되며, Ruby 4.1에서의 추가 개선이 기대됩니다.
이러한 기능들은 Ruby의 미래를 위한 중요한 발판이지만, 대부분 아직 실험 단계에 있어 프로덕션 환경에서의 즉각적인 활용은 제한적입니다.