본문 바로가기
Computer Science/Programming language

프로그래밍 언어 : Rust

by HaningYa 2020. 3. 26.
728x90

RUST 언어는 C/C++의 수행속도에 비견되는 속도를 가진 함수형 언어다. 

이 언어의 특성을 요약하고, Python 등 기존 언어와 비교하라.

 

   RUST C, C++과 같은 컴파일 기반의 언어로 시스템 프로그래밍 언어에 속한다. 멀티코어 프로세싱을 지원하며 동시성 프로그래밍 및 병렬 프로그래밍에 강점을 가지도 있다.

Rust를 기존 언어와 비교해 보려면 먼저 Rust가 왜 제작되었는지 그 방향을 보면 알 수 있다. Rust를 연구하는 모질라 재단의 주력 소프트웨어는 파이어 폭스이다. 구글의 크롬의 성능적인 발전으로 파이어 폭스의 점유율이 낮아지기 시작했고 모질라 재단도 성능 향상을 위해 새로운 엔진을 제작하기로 했다. 그리고 그 엔진을 위한 프로그래밍 언어를 선택하는 과정에서 Rust는 탄생하였다.

  •   C++ : 엔진의 실행속도는 빠르나 제작속도 및 용이성이 떨어진다. 새로운 엔진 제작을 위해선 쓰레드를 사용해야 하는데 C++의 쓰레드는 숙련된 C++프로그래머가 아니면 사용하기 매우 어렵고 숙련된 C++프로그래머는 몸값이 비싸다
  •   Java : 쓰레드의 사용은 C++보다 용이하고 메모리 관리 또한 C++보다 편하나 Java는 기본적으로 가상머신 위에서 돌기 때문에 속도가 느렸다.
  •   C# : 느리고 MS에 종속되어있다.
  •   기타 스크립트 언어 : 무거운 프로그램을 제작하는데는 무리가 있다.

 

그래서 나온 결론은 C++보다 메모리 관리가 용이하고 쓰레드 사용이 쉬운 언어를 새로 만들기로 했다. Rust의 주요 기능은 다음과 같다.

  •   비용 없는 추상화
  •   이동(move) 의미론
  •   메모리 안전성 보장
  •   데이터 레이스 없는 스레딩
  •   트레이트 기반 일반화(generic)
  •   패턴 매칭
  •   타입 추론
  •   최소한의 런타임
  •   효율적인 C 바인딩

 

결국 파이썬은 이용이 간편하고 안전하지만 속도가 느리다. CC++은 퍼포먼스가 좋지만 이용이 어렵고 안전성이 떨어진다. 그에 반해 러스트는 시스템 코드로 컴파일 되기 때문에 빠르다. 또한 메모리 오류를 컴파일 실행 이전에 잡아내며 엄격한 규칙을 통해 메모리를 관리 통제한다. 그러나 Java, 나 파이썬, 루비처럼 자동으로 메모리가 관리되는 언어보단 어렵고 난이도가 높다. 하스켈과 비교하자면 하스켈은 함수형 언어이고 러스트는 절차형 언어이다. 그렇기 때문에 하스켈 보단 C계열 문법을 사용하는 러스트를 배우기가 더 쉽다.

 

728x90

댓글