Search
Duplicate

Go vs Rust

간단소개
팔만코딩경 컨트리뷰터
ContributorNotionAccount
주제 / 분류
Go
Rust
Scrap
태그
9 more properties
구글에서 만들어진 모질라에서 탄생한 러스트
2개의 언어 모두 현대 소프트웨어 개발의 필수 요소인 정교하고 통합된 툴체인, 메모리 안전성, 오픈소스 개발 모델, 강력한 사용자 커뮤니티 제공
비슷한 부분을 제외하면 러스트는 서로 극명하게 다른 언어
두 언어를 비교할때는 '객관적으로 더 우수한가'를 따지는 것이 아니라, 주어진 프로그래밍 작업에서 '어떤 언어가 더 적합한가'의 시각이 필요
성능 측면
1.
러스트
메모리 취급 및 처리를 위한 러스트의 제로 코스트(zero-cost) 런타임 추상화 덕분에 C 및 C++과 대등하거나 거의 근접한 속도로 실행
안전이나 편리함을 위해 성능을 희생하지는 않음
개발자가 메모리 관리를 위한 러스트의 추상화를 배우고 마스터해야하는 점이 비용
2.
개발자의 편의성을 위해 어느 정도의 런타임 속도를 희생
메모리 관리는 고 런타임이 담당하기 때문에 런타임 관련 오버헤드가 필연적으로 발생
→ 많은 시나리오에서 이 타협은 무시해도 되는 수준
프로그래머가 모든 객체에 대해 강력한 형식을 요구해야 한다는 작은 대가를 치르는 대신 파이썬과 같은 편의성 중심 언어에 비해 몇 배 더 빠른 속도를 제공
→ 러스트는 전체적으로 더 빠르지만 일상적인 사용면에선 두 언어의 차이가 미미함
메모리 관리 측면
1.
러스트
메모리 안전성이 확보되지 않은 상태에선 컴파일이 되지 않음
높은 안정성을 자랑하지만 이 안정성에는 비교적 높은 학습 난이도
2.
메모리 관리가 런타임에 자동으로 처리되는 방식
→ 고 또한 안전성에 신경을 썼지만 고성능 시나리오에서는 러스트가 더 적합하다는 것은 입증된 사실
개발 속도 측면
1.
러스트
고보다 언어 기능이 더 많아서 배우고 마스터하는 데 그만큼 더 오래 걸림
컴파일 시간이 고 프로그램보다 대체로 더 오래 걸림
2.
단순함과 속도를 모두 제공
컴파일 시간이 짧으며 런타임은 파이썬보다 훨씬 더 빠름
→ 빠른 개발 주기와 인력의 신속한 프로젝트 합류가 무엇보다 중요하다면 고가 더 나은 선택