마이크로소프트(MS)가 Rust에서 영감을 받은 신규 프로그래밍 언어 개발(Verona Project)에 매진하고 있다. 프로젝트 베로나는 메모리 관리, 구획화 및 보안 샌드박스를 통해 안전한 시스템을 구축하기 위한 프로젝트다1. Rust는 최근에 스택오버플로우에서 좋아하는 개발언어 순위 1위에 오르기도 하였다2. Rust는 C++의 성능과 더불어 메모리 안정성을 확보한 언어이다.
Rust 컴파일러는 변수의 소유권을 컴파일 단계에서 모두 추적할 수 있다. 이를 이용해 메모리 할당과 해제를 오버헤드 없이 암묵적으로(Implicit) 수행함으로써, Rust는 런타임 오버헤드가 없는 안전한 메모리 관리를 이루어낸다3.
Microsoft 공식 웹사이트에서는 Project Verona를 ‘a programming language for the modern cloud’로 소개하고 있다4.
- If we design a language without concurrent mutation, can we build scalable memory management?
- Can linear regions be used to remove the restrictions of per-object linearity without sacrificing memory management?
- Can language level regions be used to support compartmentalisations?
또한 Verona Github 페이지에서 ‘concurrent ownership’를 위한 언어로 소개하고 있다. Project Verona is a research programming language to explore the concept of concurrent ownership. We are providing a new concurrency model that seamlessly integrates ownership5.
- Systems programming : Predictability, Raw access
- Concurrent Mutation and memory safety
- Concurrent Ownership
- Regions : borrowing(rust)
- Systematic testing : P and P# language
마이크로소프트는 C/ C++ 대신 Rust로 윈도 구성요소를 작성하는 등 다양한 실험을 진행해 왔지만, 문법이 까다로워 작성이 쉽지 않고 무엇보다 사용자가 적어 개발자 확보, 육성에 힘든 상황이다.
개인적인 생각으로 Verona Project는 C#언어의 장점(상대적으로 쉬운 언어, 개발자 확보)에 Rust의 개념적 장점(ownership, borrowing, lifetimes)을 더하고 Visual Studio라는 Microsoft의 대표적인 개발 툴에 자연스럽게 녹아들어 가도록 설계할 것이라고 예상해 본다.
또 하나 소개할 기사는 ‘Microsoft: We’re creating a new Rust-like programming language for secure coding’이다6. 여기에 대한 언급은 유튜브 채널 포프TV에서 확인 할 수 있다7.
Rust for Windows
- microsoft/windows-rs : GitHub
- 동영상 강좌 : Rust for Windows (0.9)
최근에 Rust 언어를 학습하고 있는데 접근이 쉽지 않다는 것을 많이 느낀다. 기본적인 언어 이해와 ACTIX web framework를 같이 학습하고 있다. 개인적인 목표는 C# - WebAPI에서 rust - actix로 WebAPI를 설계해보는 것이다.