Rust 개발자들의 메모리 안전성 강조가 때로는 언어 경쟁 심리로 비춰진다는 비판이 제기됨
Fil-C와 Zig의 새로운 컴파일 모드는 C/C++ 코드의 메모리 안전성을 높이는 대안으로 주목받고 있음
Fil-C는 GC 도입 및 ABI 비호환성 등의 트레이드오프가 존재하며, 모든 프로젝트에 적합하지는 않다는 의견이 지배적임
Rust의 `unsafe` 블록 존재에도 불구하고, 실제 취약점 발생률(Vulnerability Density)은 C/C++ 대비 현저히 낮다는 데이터가 제시됨
Fil-C는 가비지 컬렉션(Garbage Collection)과 InvisiCaps 기술을 결합하여 C/C++ 코드의 메모리 접근 오류를 런타임에 감지하고 패닉을 발생시킨다고 설명함. Zig 역시 이와 유사한 컴파일 모드를 도입하여 메모리 안전성(Memory Safety)을 높이려는 시도를 하고 있음. 이는 기존 C/C++ 생태계에 새로운 안전성 계층(New Safety Layer)을 제공할 가능성을 시사함.
Fil-C는 ABI 비호환성과 성능 저하(1-6x), GC 도입이라는 명확한 트레이드오프를 가짐. 이러한 제약은 대규모 프로젝트나 특정 실시간 시스템에는 적용하기 어려울 수 있음. 반면 Rust는 `unsafe` 블록을 통해 일부 안전성 보장을 우회할 수 있지만, 데이터 경쟁 방지(Data Race Prevention) 등 다른 강력한 언어적 보증을 제공하며, Android 플랫폼에서의 낮은 취약점 밀도(0.2/MLOC) 데이터는 실질적인 안전성을 뒷받침함.
일부 개발자들은 Rust의 `unsafe` 가능성만으로 Rust를 메모리 비안전하다고 주장하며 Fil-C나 Zig의 'fil' 모드만이 진정한 메모리 안전성을 제공한다고 주장함. 이는 Fil-C의 명백한 트레이드오프를 무시하고, Rust 커뮤니티를 향한 비판이 불순하다는 의혹을 제기함. 이러한 논쟁은 언어 선택에 있어 실용적 접근(Pragmatic Approach)과 기술적 타협(Technical Compromise)의 중요성을 부각시킴.
Fil-C의 ABI 비호환성은 기존 C/C++ 라이브러리와의 연동을 어렵게 만들어 생태계 파편화를 야기할 수 있다는 우려가 있음. Rust 개발자들은 이러한 분열을 피하고 싶어하며, Cargo와 같은 강력한 패키지 관리 시스템 및 전역 네임스페이스 부재는 Rust의 주요 장점으로 꼽힘. 일부에서는 Rust가 C/C++ 생태계와 통합될 수 있도록 Fil-C ABI를 지원해야 한다는 주장도 제기됨.
메모리 안전성 강화 시도는 과거 메인프레임 시절부터 존재했으나, CPU 및 메모리 오버헤드에 대한 부담으로 널리 채택되지 못했음. Fil-C의 InvisiCaps 기술은 이러한 문제를 해결하려는 시도로 보임. 또한, '완벽한 메모리 안전성'이라는 개념 자체가 절대적이기보다 상대적이며, Rust의 경우 Miri 인터프리터와 같은 도구를 통해 `unsafe` 코드의 안전성을 검증하려는 노력이 병행되고 있음.