몇 년 전엔가, Rust 를 배워볼까 생각을 해본 적이 있었다. Java 를 메인으로 쓰던 때였다. 그 즈음에 Go 언어를 새로이 배워 이것저것 만들어보곤 했는데, Java 를 사용하면서 느꼈던 아쉬움들이 많은 부분 해소가 되어 Go 언어에 꽤 깊이 빠져있었다. 그와 동시에 매번 Go 언어와 붙어서 비교가 되곤 하는 Rust 에 대한 호기심이 들었다. GC 도 없다고 하니 좀 더 퍼포먼스 크리티컬한 걸 짤 때 더 효과적이지 않을까 하는 기대를 가지고 있었다.
하지만 딱히 이렇다할 기회가 없었는데 요즘 Rust 를 써볼 수 있는 기회를 가지게 되었다. 하지만 제대로 처음 접해본 Rust 에 대한 나의 현재 감상은 영 실망이다. 처음 학습을 진행하던 초반에는 그래도 꽤 재미있기도 했다. syntax sugar 도 많아서 “이거 잘만 익숙해지면 꽤 재미있는 코드들을 만들어낼 수 있겠구나” 싶었다. Go 언어에 차용해보고 싶은 부분들도 여럿 보였다. trait 이라던가, scala 에서 가져온듯 한 match 기능도 마음에 들었다. 하지만 여러 장점들을 쭉 나열해놓는다고 해도 다 덮지 못할 만큼 단점도 크게 느껴졌다.
일단 너무 복잡했다. 아직 언어가 완벽히 손에 익은 단계가 아니라서 더 그렇겠지만, 익숙해진다 한들 이걸 정말 편하게 쓸 수 있을까 하는 의구심이 들었다. 특히 소유자 개념이 그런데, 이 때문에 순수 비즈니스 로직 외적으로 고민해야 하는 부분들이 너무 많았다. 거기다가 컴파일 속도 마저 느려도 너무 느렸다. Rust 로 만들어진 모듈을 간단히 수정만 하면 되는 일인데 꽤나 오랜 시간을 여기다가 쏟아 붓고 있다. 앞으로 Rust 를 도입할 수 있는 기회가 온다 하더라도 쉽사리 손을 뻗을 수 있을 것 같지 않다.