C vs. 러스트

어떤 면에서 러스트는 메모리 관리의 어려움을 비롯해 C와 C++ 언어의 다른 여러 단점에 대한 해결 방안으로 볼 수 있다. 러스트는 네이티브 기계 코드로 컴파일되므로 성능에 있어서는 C와 동급으로 간주된다. 그러나 러스트의 가장 큰 매력 포인트는 기본적으로 확보되는 메모리 안전성이다.

러스트의 구문과 컴파일 규칙은 개발자가 일반적인 메모리 관리 실수를 피하는 데 도움이 된다. 프로그램에 러스트 구문에 맞지 않는 메모리 관리 문제가 있으면 컴파일 자체가 되지 않는다. 러스트를 처음 접하는 경우, 특히 C와 같이 이러한 버그의 여지가 큰 언어에서 건너온 사람들은 컴파일러를 조심스럽게 다루는 방법을 익히는 데 많은 시간을 소비하게 된다. 그러나 러스트 지지자들은 이와 같은 잠깐의 어려움이 장기적인 보상, 즉 속도를 희생하지 않는 더 안전한 코드를 제공한다고 주장한다. 

러스트의 툴도 C보다 낫다. 프로젝트 및 구성요소 관리는 고와 마찬가지로 러스트에서도 기본적으로 툴체인에 포함된다. 패키지 관리, 프로젝트 폴더 정리를 비롯해 다른 많은 부분을 처리하는 기본 방법이 제공된다. C에서는 각 프로젝트 및 팀마다 처리하는 방법도 다르고, 기껏해야 임시 방편으로 다룰 수밖에 없다.

그러나 러스트에서 장점으로 강조하는 기능이 C 개발자에게는 장점으로 보이지 않는 경우도 있다. 러스트의 컴파일 타임 안전 기능은 비활성화할 수 없으므로 아주 사소한 러스트 프로그램이라도 러스트의 메모리 안전 제약을 따라야 한다. C는 기본적으로 덜 안전할 수 있지만, 훨씬 더 유연하며 필요한 부분에서 관대하다.


또 다른 잠재적 단점은 러스트 언어의 크기다. C는 표준 라이브러리를 감안하더라도 상대적으로 기능의 수가 적다. 러스트의 기능은 대단히 많고 지금도 계속 확장 중이다. C++와 마찬가지로 러스트 역시 기능이 많은 만큼 더 강력하지만 더 복잡하기도 하다. C는 기능 면에서 더 작은 언어지만 정신적으로 모델링하기가 훨씬 더 쉬우므로 러스트가 부담스러운 프로젝트에는 C가 더 적합하다.

원문보기:
http://www.itworld.co.kr/news/124767?page=0,1#csidx429bfe88b9d99e183347e204b2eeb38