• 구글에서 만들어진 고 모질라에서 탄생한 러스트

  • 2개의 언어 모두 현대 소프트웨어 개발의 필수 요소인 정교하고 통합된 툴체인, 메모리 안전성, 오픈소스 개발 모델, 강력한 사용자 커뮤니티 제공

  • 비슷한 부분을 제외하면 러스트와 고는 서로 극명하게 다른 언어

    두 언어를 비교할때는 '객관적으로 더 우수한가'를 따지는 것이 아니라, 주어진 프로그래밍 작업에서 '어떤 언어가 더 적합한가'의 시각이 필요

  • 성능 측면

    1. 러스트
      • 메모리 취급 및 처리를 위한 러스트의 제로 코스트(zero-cost) 런타임 추상화 덕분에 C 및 C++과 대등하거나 거의 근접한 속도로 실행
      • 안전이나 편리함을 위해 성능을 희생하지는 않음
      • 개발자가 메모리 관리를 위한 러스트의 추상화를 배우고 마스터해야하는 점이 비용
    2. 고
      • 개발자의 편의성을 위해 어느 정도의 런타임 속도를 희생

      • 메모리 관리는 고 런타임이 담당하기 때문에 런타임 관련 오버헤드가 필연적으로 발생

        → 많은 시나리오에서 이 타협은 무시해도 되는 수준

      • 프로그래머가 모든 객체에 대해 강력한 형식을 요구해야 한다는 작은 대가를 치르는 대신 파이썬과 같은 편의성 중심 언어에 비해 몇 배 더 빠른 속도를 제공

    → 러스트는 전체적으로 더 빠르지만 일상적인 사용면에선 두 언어의 차이가 미미함

  • 메모리 관리 측면

    1. 러스트
      • 메모리 안전성이 확보되지 않은 상태에선 컴파일이 되지 않음
      • 높은 안정성을 자랑하지만 이 안정성에는 비교적 높은 학습 난이도
    2. 고
      • 메모리 관리가 런타임에 자동으로 처리되는 방식

    → 고 또한 안전성에 신경을 썼지만 고성능 시나리오에서는 러스트가 더 적합하다는 것은 입증된 사실

  • 개발 속도 측면

    1. 러스트
      • 고보다 언어 기능이 더 많아서 배우고 마스터하는 데 그만큼 더 오래 걸림
      • 컴파일 시간이 고 프로그램보다 대체로 더 오래 걸림
    2. 고
      • 단순함과 속도를 모두 제공
      • 컴파일 시간이 짧으며 런타임은 파이썬보다 훨씬 더 빠름

    → 빠른 개발 주기와 인력의 신속한 프로젝트 합류가 무엇보다 중요하다면 고가 더 나은 선택