Ruby의 주요 개선 사항
-
타입 시스템: 과거 “타이핑이 안 된다”는 비판에 대응하여 RBS가 표준으로 자리 잡고 있으며, Sorbet 지원 및 인라인 표기법이 도입되었습니다. 그러나 일부에서는 RBS의 실제 채택률이 낮고, 인라인 표기법은 아직 개인 프로젝트 수준이라는 회의적인 시각도 존재합니다.
-
개발 도구 (LSP): “LSP가 약하다”는 지적은 ruby-lsp의 표준화와 “go to definition” 지원으로 해소되고 있습니다. 플러그인 아키텍처를 통해 여러 도구가 동일한 AST를 재사용하며 개발자 경험을 향상시키고 있습니다. 다만, Windows 환경에서의 LSP 지원은 여전히 개선이 필요하다는 의견이 있습니다.
-
병렬성: Ractor 도입으로 병렬성이 크게 향상되었으며, GC 개선을 통해 실험 단계를 넘어설 것으로 기대됩니다. 일부는 각 Ractor가 독립적인
Ruby::Box에서 실행되고 개별 GC를 가질 경우 BEAM과 같은 진정한 병렬 실행이 가능해질 것이라는 비전을 제시합니다.
새로운 기능 및 문법 개선
-
Ruby::Box: 기능 롤아웃을 두 버전 동시에 돌릴 수 있게 해주는 흥미로운 기능으로 언급되었습니다. 초기 성능 저하 우려에 대한 개선 여부가 주목됩니다. -
다중 줄
if조건문:if condition1 && condition2와 같은 표현을 여러 줄에 걸쳐 작성할 수 있게 된 것이 개선점으로 언급되었습니다. -
스택 트레이스 및
Set개선: 내부 스택 트레이스 정리 및 상대 경로 지원에 대한 기대, 그리고Set이 제대로 대접받는 것에 대한 긍정적인 평가가 있습니다.
다른 언어와의 비교 및 생태계
-
Python으로의 전환: 많은 개발자가 FastAPI, PyTorch, Langchain, Streamlit 등 Python의 풍부한 생태계를 이유로 전환하고 있습니다. 특히 Claude Code와 같은 도구를 통한 자동 변환 사례도 언급되었습니다.
-
Kotlin으로의 전환: 정적 타이핑의 부재에 대한 불안감과 성능 이점을 이유로 Kotlin으로 전환한 사례도 있습니다.
-
Ruby의 강점: 반면, Ruby 지지자들은 Python 생태계의 장점이 언어 자체의 장점은 아니며, Ruby는 언어 철학을 잘 지키고 있다고 주장합니다. Ruby의 독보적인 메타프로그래밍 능력과 Rails를 통한 풀스택 웹앱 개발의 즐거움은 여전히 강력한 매력으로 꼽힙니다.