단점이 횔씬 많아서 일단 장점부터 몇 개 말하면
1. 이터레이터 패턴 너무 좋다
그냥 무지성으로 iter, partition, par_iter, map, filter 갈기면 로직 몇 개 뚝딱
2. 테스트가 너무 편함
테스트 코드를 로직 코드랑 쓰까는 혁신은 내 경험상 러스트가 최초였음
3. 리팩토링이 쉬움(?)
이건 내 주관적 의견일 수 있는데 러스트 언어 특성 상 코드 가시성이 좋아서
특정 로직을 보러 들어 갔을 때 한 눈에 딱 원하는 로직들만 보이게 코딩할 수 있음
함수 이름만 보고 내부 로직보러 들어갔는데 내가 생각한 로직이 아니면 졸라 불편함이 느껴지고 빨리빨리 좀 고쳐버리고 싶은 마음이 들기도함
그 로직을 구현하기 위한 최소한의 부가 코드들이 필요할 수 있지만 그런 것만 제외하면
파이썬 ㅈ바같은 다른 언어들보다는 상대적으로 로직에만 집중할 수 있다는 것?
----
단점
1. 생각보다 패키지들이 별로 없다
유용한 라이브러리들은 찾아보면 c/c++ 기반인 경우가 많음
rapidfuzz 이런건 러스트 버전은 아예 없음
rust-python같은 뭔가 만들다 만 것 같은 패키지들도 너무 많음
2. 모듈 리빌딩이 졸라 어려움
이건 다른 언어에서도 어려운 문제인지는 모르겠는데 러스트가 특히 어려운 거 같음
어떤 struct에 있는 멤버를 다른 struct로 옮기거나, method를 두 개 분리해서 다른 struct로 옮기거나
이런 일을 할 때 제약이 너무 크다
예를 들어 struct A가 struct B를 멤버를 가지고 있고, B에서 A의 mut ref를 요구하면 이건 러스트 문법 상 아예 허용이 안됨
코딩 하다 보면 가끔 이런 패턴이 유용할 때가 있는데 아예 안되게 막아버리니 좀;;
모노 모듈 지향하면 상관없지만 분리할 수 있는 모듈은 분리하면 좋잖아?
3. 러스트 멀티 스레딩은 그냥 지원한다는데 의의를 두면 좋은 수준 같음
go나 c# 같은 언어에 비하면 편의성도 생산성도 월등히 떨어지고
성능도 딱히 나은지 모르겠음
go에서도 멀티스레딩 걍지원되는데? - dc App
글은 읽긴한거임?
단점이 훨씬 많다더니 장점 개수랑 단점 개수랑 같네