C++ 대비
1. enum과 match, 그리고 따라오는 모나드
이게 코드 레벨에서 최대 장점이다 그냥 존나 좋음
그리고 이런 fp적인 코드에 적응하면 트레잇 시스템도 너무 좋아짐
C++23에서 optional이 드디어 반쪽짜리 모나드에서 then map 뭐 이런게 추가된다던데
C++20은 커녕 17만 써도 감지덕지인 현실에서 과연..?
심지어 20 모듈은 아직도 컴파일러들마다 구현이 달라서 표준인데도 크로스 컴파일이 안됨 병신위원회
2. Cargo
이런걸 DX?라고 하던가 이게 코드 외적인 부분에서 최대 장점
그냥 존나 편하고 쉽고 완벽하다
submodule-workspace 설정할때는 살짝 애매한 감이 있었는데 그래도 이정도면 선녀다
make cmake conan vcpkg nuget 또 뭐있냐 아무튼 C++ 빌드 관리는 지옥이다
3. 메모리에 대한 믿음
스마트 포인터 RAII 아무리 똥꼬쇼 해도 C++ 라이브 가면 언젠가 터짐 그래서 신뢰가 안감
그냥 잘못짜서 터진거면 다행이지 유저 존나 몰릴때 어쩌다 터지는거면 재현도 못하고 덤프 파일 보는 것도 고통임
캐시 바운더리 이슈, 메모리 커럽션, 심지어는 os 버그 의심되서 바이트 가드 올리면서 똥꼬쇼 하는거 보면 이게 뭔가 싶음
러스트도 저 문제로부터 완전 안전한건 아니지만 최소한의 믿음은 깔고 간다
4. 그 외 언어 자체의 모던함과 라이브러리들
let mut 이런 키워드들부터 시작해 철학이 느껴지는 언어 전반적인 디자인이 매우 좋음
라이브러리 생태계 전체로 보면 C++이 좋긴 한데
tokio를 비롯해 핵심적인 라이브러리는 러스트가 더 나은 것 같음
언제까지 boost 응디 뒤에 숨어 있는거냐??
단점으로는
1. 몇몇 상황을 깔끔하게 코드로 표현하기 어려움
C++이였으면 로직이 코드와 일치하는데 러스트는 문법상 그게 안되는 경우가 간혹 있음
대표적인 예시가 그래프 구현할때
뭐 크레이트 쓰거나 벡터로 구현하거나 아레나 쓰셈 하면 되긴 하는데 좀 꼽긴 함
ㄹㅇ decltype 존나 보고싶다 ... 타입 일일이 타이핑하기 귀찮아서 프로시저를 안쪼개게 됨
근데 type은 ra가 자동으로 넣어주잖아
c++ 안해본 놈들은 Rust 좋은거 모른다 ㅋㅋ