저는 C/C++을 Rust로 점진적으로 변경하는 과정에서 unsafe를 쓸 수 밖에 없으므로 Rust로 변경하는게 의미가 없다. Rust로 점진적으로 바꾸기 보단 Zig를 택하겠다란 의미로 느껴졌는데 본문 어디에서 Rust 외부와 자주 통신해야하는 라이브러리라고 적혀있나요?
FFI를 쓴다는게 곧 Rust 외부와 통신한다는 뜻이죠.
그리고 본문 내용을 보면 단순하게 어떤 상태나 간단한 데이터를 주고받는 정도로 끝나는게 아니라 내외부가 복잡하게 상호작용하는 것으로 보입니다.
C로 작성된 라이브러리를 점진적으로 Rust로 바꾸려면 FFI는 어쩔 수 없지 않나요? 프로그램의 작은 부분들을 Rust로 바꾸고 나머지 C부분을 FFI로 처리해야 할 텐데 이런 작업들을 외부와 통신이라고 표현하신걸까요? 그렇다면 원 글쓴이분께서 Rust에 회의감이 드는건 자연스러울 수 있다고 생각합니다. 전체 코드를 한번에 바꾸지 않는 이상 Rust의 이점은 없으니 Zig를 추천하겠죠
명시적으로 unsafe한 부분이 소스코드에 표시되기 때문에 프로그램 진입점부터 unsafe 블럭을 쓰지 않는 이상 FFI의 영향범위가 다 식별돼서 유용할 것으로 기대했는데요. 필자분께는 별로 와닿지 않은 모양입니다
이 글 역시 Rust를 잘못 이해하고 달려들었네요.
내용을 보면 Rust 외부와 자주 통신해야하는 라이브러리 같은데, 그 시점에서 이미 더러워질수밖에 없죠... 애초에 네이티브 언어 치고 안 더러운게 없는데 러스트는 언어 차원에서 그걸 안전하게 감싼거기 때문에 언어 외부와 접점이 생길수록 이점이 많이 없어집니다.
어느정돈 맞지만, 원문의 개발환경에선 해결이 안될 수 밖에 없는데 Rust를 만병통치약처럼 생각하고 접근한게 문제라고 봅니다.