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 바인딩
결국 파이썬은 이용이 간편하고 안전하지만 속도가 느리다. C와 C++은 퍼포먼스가 좋지만 이용이 어렵고 안전성이 떨어진다. 그에 반해 러스트는 시스템 코드로 컴파일 되기 때문에 빠르다. 또한 메모리 오류를 컴파일 실행 이전에 잡아내며 엄격한 규칙을 통해 메모리를 관리 통제한다. 그러나 Java, 나 파이썬, 루비처럼 자동으로 메모리가 관리되는 언어보단 어렵고 난이도가 높다. 하스켈과 비교하자면 하스켈은 함수형 언어이고 러스트는 절차형 언어이다. 그렇기 때문에 하스켈 보단 C계열 문법을 사용하는 러스트를 배우기가 더 쉽다.
'Computer Science > Programming language' 카테고리의 다른 글
prolog - 가족관계 추론 (0) | 2020.05.01 |
---|---|
한글코드의 표준화 과정 (0) | 2020.03.27 |
손이 가는 프로그래밍 일탈 10가지 (0) | 2020.03.26 |
프로그래밍 언어론 (0) | 2020.03.26 |
프로그래밍 언어론 용어정리 (0) | 2020.03.25 |
댓글