Rust in Peace...

제목처럼 Megadeth의 앨범/노래에 대해서 이야기하자는 것은 아니고, 아침에 이런 저런 메일을 받다보니 RUST 이야기가 나와서 생각난 것 적어봤다.

가끔 보면 코딩이라고 불리우는 컴퓨터 언어 몇 달 들여다본 이들이 대세는 RUST라고 하질 않나 더 나아가서 이제 “C++은 위험하니 Rust로 갈아타야 한다”는 목소리부터, “이제 코딩은 AI가 다 하니 몰라도 된다”는 이상론까지 나오고 있는 세상을 보자니 뭔가 내가 외계인이 된 것 같은 생각이 든다. 아니 들때가 많다. 어쩔 때는 죽기전엔 내가 어떤 시대에 살고 있으려나 싶기도 하고.

재주는 C++이 넘고, 돈은 Python/JS가 번다

현재 AI와 데이터 과학의 화려한 성공 뒤에는 묵묵히 기계를 쥐어짜는 C++ 장인들이 있다.

실체 없는 화려함: Numpy, PyTorch, TensorFlow 같은 라이브러리를 쓰는 사람들은 Python의 편리함에 환호하지만, 그 내부 엔진은 수십 년간 깎아온 C++과 어셈블리 최적화의 결정체다.

지식의 무임승차: “코드 몰라도 된다”는 말은 가장 위험한 이상론이다. 밑바닥에서 성능과 메모리를 통제하는 ‘진짜’들이 없으면, 스크립트 언어의 세계는 단 하루도 유지될 수 없는 모래성과 같다.

Rust 교체론이라는 궤변

어설프게 컴퓨터를 아는 이들이 주장하는 “C++의 Rust 대체론”은 기술적 실체를 무시한 선동에 가깝다.

생태계의 격차: 과학 연산, 복소수 처리, 고성능 수치 해석 분야에서 C++이 쌓아온 라이브러리(Eigen, MKL 등)는 Rust가 단기간에 흉내 낼 수 있는 수준이 아니다.

통제권의 박탈: Rust는 실력이 부족한 개발자를 위해 컴파일러가 ‘안전 가드’를 씌운 언어다. 하지만 0.1ms의 속도를 위해 레지스터를 직접 건드려야 하는 고수들에게 컴파일러의 간섭은 오히려 독이 된다. 기계와 직접 소통하는 이들에게 필요한 것은 ‘허락’이 아니라 ‘자유’다.

MSVC라는 우물 안 개구리들: 진정한 원시시대

아이러니하게도 “현대적”을 외치는 시대에, 여전히 특정 벤더의 도구에 갇혀 있는 이들이 있다.

MSVC의 한계: 리눅스(Linux)가 지배하는 서버와 AI 인프라 세상에서 g++ 호환성조차 갖추지 못한 코드를 짜는 것은 기술적 직무유기다.

표준의 가치: 윈도우 전용 편법에 익숙해져 표준(Standard)을 무시하는 이들이야말로 진정한 의미의 ‘원시시대 개발자’다. g++이나 Clang 같은 글로벌 표준 컴파일러가 잡아내는 오류를 “컴파일러가 이상하다”고 치부하는 순간, 발전은 멈춘다.

결국은 ‘기계의 언어’를 아는 자가 승리한다

세상이 아무리 변해도 물리적인 CPU와 메모리는 정직하게 돌아간다.

BASIC이 느려 어셈블리를 팠던 세대가 가진 직관은 추상화의 층위가 아무리 높아져도 변하지 않는 기술의 뿌리다.

껍데기만 화려한 언어들이 유행처럼 번져도, 결국 시스템이 터지고 극한의 최적화가 필요한 순간 세상은 다시 C++ 장인들을 찾게 될 것이다.

결론

글쎄. 난 기본적으로 coding이란 말에 반감이 있는 사람이라 쓰긴 싫지만 어쨌든 ‘Coding은 이제 ai나 하는 것’이 된 시절이라. 어쨌든 도구는 도구일 뿐이다. 중요한 것은 내가 기계를 완벽하게 통제하고 있느냐다. Rust니 Python이니 하는 소음에 휘둘리기보다, 내가 컴퓨터에 무슨 짓을 하려고 하고 실제로 무슨 짓을 하고 있는지 이해하고 있으면 그게 뭐든 무슨 상관일까.

세상은 내가 생각하는 것과 늘 다른 방향으로 (통계적으로 이 둘의 연관성은 별로 없다가 맞겠다) 흘러가니 그냥 그렇구나 하고 말면 되는 문제이긴 하다만.