핵심 요약
- 스칼라 전문 라이브러리 개발자가 1년간 사이드 프로젝트에 러스트를 도입해 사용해본 경험을 공유했습니다.
- rustup, cargo, rustdoc 등 기본 내장 개발 도구의 완성도와 상속·널(null) 없는 강력한 타입 시스템을 큰 장점으로 꼽았습니다.
- 스칼라에 비해 고차 타입 지원 등은 부족하지만 언어에 자연스럽게 녹아든 매크로와 트레이트 덕분에 생산성이 높다고 평가했습니다.
요약 5년 차 스칼라(Scala) 엔지니어가 러스트(Rust)를 1년간 직접 사용해본 뒤 남긴 솔직한 비교 후기가 해외 개발자 커뮤니티에서 관심을 모았습니다. 작성자는 스칼라의 유명 오픈소스 라이브러리인 'enumeratum'의 개발자이자, 러스트에서도 함수형 프로그래밍 라이브러리인 'frunk' 등을 제작해 배포한 바 있는 숙련된 개발자입니다.
그가 러스트에서 가장 높게 평가한 부분은 기본 개발 도구 생태계(Batteries included)였습니다. 스칼라와 달리 러스트는 명령어 한 줄로 툴체인 관리를 위한 'rustup', 빌드 및 패키지 배포와 테스트/벤치마크를 전담하는 'cargo', 코드 포맷터인 'rustfmt', 그리고 문서 내 예제 테스트까지 자동으로 지원하는 'rustdoc'까지 완벽하게 세팅된다는 점이 생산성 면에서 신선한 충격이었다고 밝혔습니다.
타입 시스템 측면에서도 데이터 타입 상속의 부재, 널(null)과 범용 동등성(universal equality)의 배제, 하스켈의 타입클래스와 유사하게 동작하는 트레이트(Trait) 시스템 등 함수형 프로그래밍을 선호하는 스칼라 개발자에게 매력적인 요소가 많다고 짚었습니다. 고차 타입(Higher-Kinded Types)이 기본 지원되지 않는 점은 아쉽지만 트레이트와 연관 타입 등으로 상당 부분 보완할 수 있다고 설명했습니다. 또한 매크로 시스템 역시 스칼라에 비해 기능 자체는 덜 강력할지 몰라도, 외부 설정이나 플래그 없이 언어 자체에 자연스럽게 녹아들어 코드 중복 제거와 코드 생성에 매우 유용하다고 평가했습니다.
Sponsored · 광고