Programming Rust

책 리뷰 2022. 6. 10. 18:35 Posted by UnHa Kim

분량이 740페이지이라고 할 때부터 뭔가 조짐이 안 좋았지만, 아마존 베스트셀러이고, 유명 출판사인 O'Relly에서 출간한 책이라서 딱히 대안도 없어서 그냥 구입했다.

 

Amazon.com: Programming Rust: Fast, Safe Systems Development: 9781492052593: Blandy, Jim, Orendorff, Jason, Tindall, Leonora: Books

 

Amazon.com: Programming Rust: Fast, Safe Systems Development: 9781492052593: Blandy, Jim, Orendorff, Jason, Tindall, Leonora: Bo

Systems programming provides the foundation for the world's computation. Writing performance-sensitive code requires a programming language that puts programmers in control of how memory, processor time, and other system resources are used. The Rust system

www.amazon.com

 

그러나, 불길한 예감은 틀리지 않았는 데..

 

4장에 나온 Rust 언어 특유의 변수 소유권 이전 및 대여에 대한 설명은 정말 잘 되어 있다.

4장을 읽을 때까지만 해도 Rust 언어의 가장 어려운 부분의 기본 개념을 이해했으니, Rust 언어를 금방 익힐 수 있을 줄 알았다.

 

10장에 enum과 match이 나올 때부터 시련이 시작되는 데... 

Rust언어의 enum과 match는 Java등 C언어 계열의 enum과 switch문과 비슷한 역할을 하지만, 그보다 훨씬 더 복잡하고 기능이 많다.

Rust언어의 enum은 단순한 상수 모음이 아니고, 튜플 같기도 하고, 구조체 같기도 하고, 내가 알던 enum은 훌쩍 뛰어넘는 훨씬 복잡다단한 무언가이다. 이걸 enum이라고 해도 되나 싶다.

Rust언어의 match는 함수형 언어에서 수십년간 존재했던 기능을 가져왔다는데, 그러거나 말거나, C언어 계열(C/C#/Java/Python/Go등등)만 써온 나로서는 함수형 언어의 기능은 처음 접하니 무척 낯설게 느껴졌다.

다만, match문은 처리되지 않는 경우를 누락하는 것을 예방하므로, 즉 switch문의 default가 거의 강제되므로, 예상하지 못한 상황에 대한 처리를 누락하지 않게 되는 점은 좋았다.

 

11장에 나온 trait의 경우에도 Java/Go의 interface와 비슷하지만, 훨씬 더 기능이 많다.

trait는 fat포인터이라서 실행할 때까지는 정확한 자료형을 알 수 없으므로, 컴파일 과정에서 자료형 체크 에러가 종종 발생하니, generic을 쓰는 게 낫다는 정도만 이해했다. 

살면 지금껏 본 interface 비슷한 것 중에 가장 복잡다단했다.

 

19장의 Future를 이용한 동시처리, 20장 Async 프로그래밍도 Go언어의 간편한 동시처리 기능에 익숙해 있던 나로서는 접근 불가의 영역이었다.

 

결과적으로 책 후반부는 그냥 이런 기능도 있구나 정도만 인지하고 거의 이해하지 못한 채 스리슬쩍 다 넘겨버렸다.

 

책을 읽고난 후, Rust 언어는 대단히 복잡다단하다는 것과 간결한 Go언어가 훌륭한 언어라는 것을 깨달았다.

그나마, 이번에 Rust의 변수 소유권 관련된 기본 개념은 이해했다는 게 소득이라면 소득이다.

 

최근 리눅스 커널에서도 Rust언어가 적용되기 시작하면서,

Rust언어는 C언어를 잇는 차세대 시스템 프로그래밍 언어의 주역으로 기대되고 있고,

전세계 개발자 커뮤니티 Github에서도 설문조사할 때마다 가장 인기있는 언어로 매번 선정되니,

이걸 포기할 수도 없고 참 난감하다.

 

그런데, 교보문고에 검색해 봐도 한글 서적도 아예 없다.

아마존에서 Rust 언어 관련 서적 중 가장 분량이 적은 핵심 기능 위주로 설명하는 입문자 책부터 다시 시작해야 겠다.

 

'책 리뷰' 카테고리의 다른 글

Programming Rust  (0) 2022.06.10
행운에 속지 마라.  (0) 2021.10.18
역발상 투자  (0) 2021.10.18
팩터 457개의 미국 증시에서 유효성 검증  (0) 2021.10.18
팩터 148개의 한국 증시에서 유효성 검증  (0) 2021.10.18
나는 카지노에서 투자를 배웠다.  (0) 2021.10.18

댓글을 달아 주세요