내가 이해하기로 러스트는 프로그래머가 모든 경우의 수를 고려해야 하고 메모리 문제 없이 코드가 예상한대로 동작하게 만들기 위해 지켜야 할 규율을 매우 엄격하게 통제하는 언어인데
당연히 성능 상관없이 적당히 빠르게 만드는 프로그램은 파이썬 쓰면 되지만, 진짜 꼼꼼하고 성능 잘 나오게 만들어야하는 프로그램은 최대한 엄격하고 정확할 수록 좋은 거 아님? 잔소리 많은 사람이 꼭 나쁜 사람은 아니듯이?
이런 언어 스타일적인 면 말고 진짜 러스트의 단점 ( 언어 설계가 잘못되었다던지 ) 이 뭐가 있음?
당연히 성능 상관없이 적당히 빠르게 만드는 프로그램은 파이썬 쓰면 되지만, 진짜 꼼꼼하고 성능 잘 나오게 만들어야하는 프로그램은 최대한 엄격하고 정확할 수록 좋은 거 아님? 잔소리 많은 사람이 꼭 나쁜 사람은 아니듯이?
이런 언어 스타일적인 면 말고 진짜 러스트의 단점 ( 언어 설계가 잘못되었다던지 ) 이 뭐가 있음?
팀을 꾸릴려면 주니어 몇명에다가 시니어 한명 붙여야되는데 러닝커브 때문에 주니어 몇명이라는 파이가 안생김 시니어들만 좋다고 주구장창 밀고있는 현실과 동떨어진 언어
ㅇㄱㄹㅇ 사람을 뽑을 수가 없음
먼저 러스트에서 사용하는 Lifetime 특성상 그래프, 링크드리스크 등의 구조를 만들기가 어려움. 이러면 러슬람들와서 Arena 쓰면 되는거 아니냐하면서 Learning Rust With Entirely Too Many Linked Lists 이런거 들고오는데, 구조를 잘 짜도 다른 언어보다 좆같은건 사실임 그 다음에 Cargo bloat이 굉장히 심각한 수준이라 프로젝트 좀 큰거하면 target 폴더가 2~3기가 넘어감. 컴파일 속도도 악명높은 C++ 수준이나 그 이상으로 느림 안전한 언어라면서 아직도 스펙도 없고 뭐가 Undefined Behavior인지 명확히 정의도 안되어있음. 언어 특성상 언젠가는 unsafe 써야하는데 Unsafe 사용하기 시작하면 좆같음
그래도 사랑한다 러스트야...
언제부터 unsafe 쓰게 됨?? 예시가 잘 안떠오르는뎅
기존 C코드랑 연동할때, 그래프 관련 구조 만들때 등등
아하... 그건 진짜 크리티컬하네
C++에서 링크드 리스트를 만들때 포인터를 쓰지 누가 참조자를 씀? Lifetime은 참조자 검증하려고 있는거 아님?
그리고 undefined behavior는 std 공식 문서에 상세히 정의되어있다. 예를 들면 str에 유효하지 않은 UTF-8 문자열을 포함하거나, catch_unwind에서 C++ exception을 캡처하는 것.
다른 언어로 코드짜기 싫어지는 단점이 있다
비교적 새로운 언어라는 거