Hacker News 의견
  • 저자는 실시간으로 대량의 데이터를 처리해야 하는 고성능 메타버스 클라이언트를 Rust로 개발 중입니다.
  • 저자의 프로젝트는 그래픽 렌더링, 네트워크 이벤트 처리, 자산 로딩 등 다양한 작업을 위해 여러 스레드를 사용합니다.
  • Rust는 이 프로젝트에 유익하였으며, 저자는 보통 다른 사람의 "안전하지 않은" 코드 때문에 일년에 한 번 메모리 관련 충돌을 경험하였습니다.
  • 저자는 Rust가 레이스 컨디션은 없지만 데드락은 없지 않다고 비판하며, 정적 데드락 분석기의 필요성을 제안합니다.
  • 저자는 Rust에서 async의 널리 사용을 비판하며, 이것이 계산에 묶인 작업에 적합하지 않고 여러 우선 순위에서 실행되는 스레드와 호환되지 않다고 주장합니다.
  • 저자는 Rust의 단일 소유권이 후방 참조와 함께 일반적인 필요성이지만 구현하기가 너무 어렵다고 제안합니다.
  • 저자는 Rust 게임 생태계가 심각한 게임 개발에 준비되지 않았다고 믿으며, Rust에서 비 장난감 그래픽의 부족을 인용합니다.
  • 다른 댓글들은 async Rust가 도전적이며 종종 불필요하다고 동의하며, Go의 모든 것을 sync로 만들고 단일 async 채널로 만드는 접근 방식이 더 나을 수 있다고 제안합니다.
  • 일부 댓글러들은 Rust 생태계에서 async의 널리 사용을 비판하며, 이것이 프로그램을 전체적으로 async로 만들거나 많은 것들에 대해 tokio crate에 의존하도록 강요한다고 주장합니다.
  • 일부 댓글러들은 Rust의 async 기능이 아직도 개발 중이며, 현재 상태를 비판하는 것은 이른 것이라고 제안합니다.
  • 한 댓글러는 Rust의 Arc가 알 수 없는 것이 아니라 어디에서 어떻게 가지고 있는지에 따라 결정된다고 주장하며, 저자가 이전의 정신 모델을 Rust에 강요하려고 하고 있다고 제안합니다.
  • 일부 댓글러들은 일반적으로 async/await의 사용에 반대하며, 이것이 언어와 생태계를 반으로 나누고 장기적인 문제를 일으킨다고 주장합니다.
  • 한 댓글러는 병행성에 대한 올바른 원시적인 것은 Hoare의 Communicating Sequential Processes가 Java (JDK17 이후 - Java Virtual Threads), Go, Kotlin에서 구현된 것처럼 green threads에 매핑된 것이라고 제안합니다.
  • 한 댓글러는 async-scoped와 같은 안전하지 않은 crate를 사용하여 C++에서 작성되었을 벌레 대부분을 잡는 것이 합리적인 타협이라고 제안합니다.