RAII, Rust/Linux의 환상
(kristoff.it)요약
Rust 개발자와 기존 Linux 개발자 사이의 분쟁을 지켜보고 쓰는 글입니다. 여러 개발자가 각자 다른 코딩 스타일을 가질 순 있으나, Linux 프로젝트는 이미 C++을 배제해서 그것의 코드 스타일과 구조(RAII)를 피한 전적이 있습니다.
Asahi Lina가 언급한 코드의 작동 방식은 그 프로그램을 종료할 때 너무 느리며, 성능 지향 소프트웨어를 만드는 데 가장 기초적인 방식인 일괄 작업과 대립합니다. 예를 들어, 메모리 영역을 사용해 일괄 작업을 하는 것은 여러 개의 수명을 하나로 조정할 수 있어 RAII가 필요 없습니다.
여기 제 주장을 뒷받침하는 자료를 제시합니다. 이 자료들 모두 일괄 작업이 왜 좋은지 알려주고 있습니다:
- Casey Muratori | Smart-Pointers, RAII, ZII? Becoming an N+2 programmer
- CppCon 2014: Mike Acton "Data-Oriented Design and C++"
- Modern Systems Programming: Rust and Zig - Aleksey Kladov
따라서 저는 Linux가 평생 RAII를 받아들이지 말아야 한다고 생각합니다.
제가 이 글을 가져온 이유는 이렇습니다. 한국의 러스트 개발자분들이 저 글을 보고 매우 화가 난 모습을 여러 번 봐서 여기 분들은 어떤 생각을 가졌을지 궁금했기 때문입니다. 여러분은 어떻게 생각하시나요.