Rust 개발자가 Zig로 JSONPath를 다시 구현하며 느낀 점
What Zig felt like, coming from Rust
7년차 Rust 개발자가 RFC 9535 JSONPath 라이브러리를 Zig로 다시 구현했다. IDE 지원 부재, 평평한 파일 구조, 수동 메모리 관리, 함수형 패러다임의 부재 등 언어 간 차이를 생생하게 비교한다. Rust의 불변 모나드와 달리 Zig는 제자리 변경을 강제하며, 할당자 관리가 번거롭지만 TestAllocator가 누수를 잡아준다. 결과적으로 Zig 코드가 Rust보다 읽기 어렵다고 느꼈다.
Rust에서는 범위가 끝나면 Drop이 자동으로 실행되므로 이런 특정 버그는 아예 존재하지 않는다. 물론 Rust에서도 Rc 참조 순환이나 명시적 Box::leak처럼 누수가 기술적으로 가능하긴 하다. 즉 '절대 누수되지 않는다'는 강한 보장이라기보다는, 일부러 그러지 않는 한 발생하지 않는 정도다.