Rust 언어가 떠오르는 이유

Mozilla에서 만든 오픈 소스 시스템 수준 프로그래밍 언어 인 Rust로 어떤 것도 작성한 적이 없을 것입니다.하지만 언젠가는 그렇게 할 것입니다. 개발자들은 Stack Overflow의 2019 년 개발자 설문 조사에서 Rust가 "가장 사랑받는"언어로 선정되었으며, Redmonk의 반기 언어 순위에서는 Rust가 상위 20 위권 (순위 # 21)에 속했습니다.

이것은 Rust 사용자들이 "메모리 안전성과 정확성을 위해 매우 선전 된 언어의 기능에 어려움과 좌절감을 발견 함"에도 불구하고.

배우기가 다소 어려운 것으로 알려진 언어가 그토록 사랑받는 이유는 무엇입니까? Oso의 CTO Sam Scott이 설명했듯이 개발자와의 대화에서 Rust는“가드 레일을 사용하는 시스템 프로그래밍”이라는 생각에 답이 나오는 것 같습니다. 이러한“가드 레일”중 하나는 예외적으로 환영하는 커뮤니티입니다.

가드 레일을 사용한 시스템 프로그래밍

대부분의 개발자는 일반적으로 시스템 프로그래밍 영역으로 이동하지 않습니다. 예를 들어, 애플리케이션 개발자는 기본 하드웨어에 가까이 다가 갈 필요가 없습니다. 또한 시스템 프로그래밍의 핵심 정의 요소 인 다른 소프트웨어가 실행될 플랫폼을 구축 할 필요가 없습니다.

C 또는 C ++와 같은 낮은 수준의 프로그래밍 언어로 작업하는 개발자들에게 Rust는 제가 2015 년에 처음 다루었던 계시입니다. 그러나 몇 년 후에는 Rust가 계속해서 나아지고 있습니다.

Rust의 주요 판매 포인트에 대해 자세히 묻는 질문에 개발자 David Barsky는 다음을 제공합니다.

  • 성능.  Rust는 일반적으로 번창했던 공간에서 C / C ++를 대체 할 수 있습니다. 예를 들어 : "대기 시간에 민감한 네트워크 서비스의 경우 Rust의 런타임 가비지 수집 부족으로 인해 꼬리 지연 시간이 거의 없습니다."
  • 신뢰할 수 있습니다.  "정적 컴파일 타임 가비지 수집기 인 유형 시스템 및 차용 검사기는 Python, Java 및 C ++에서 '정상'으로 허용되는 전체 버그 클래스를 방지합니다."
  • 개발자 생산성.  "빌드 도구이자 패키지 관리자 인 Cargo는 제가 사용 해본 최고의 빌드 시스템 및 패키지 관리자 중 하나입니다." Rust는 또한 훌륭한 내장 문서와 훌륭한 내장 유닛, 통합 및 문서 테스트를 제공합니다.

Barsky의 경험은 Scott의 경험과 비슷합니다. 더 높은 수준의 프로그래밍 언어 (Java, Ruby on Rails)에서 온 Scott은 C에 대한 그의 경험이별로 좋지 않았다고 말합니다.“C는 지속적으로 메모리 문제, 세그 폴트 등을 겪고 있었기 때문에 끔찍했습니다. 내가 항상 코드를 가지고 싸우는 것처럼 느껴졌습니다.”

반대로 Rust는“가드 레일을 사용한 시스템 프로그래밍”이었습니다. Scott은 다음과 같이 설명합니다.

그런 다음 Rust를 사용해 보았습니다 (방금 1.0이되었습니다). 마치 가드 레일이있는 시스템 프로그래밍처럼 느껴졌습니다. 저수준 시스템 프로그래밍을 수행하는 데 필요한 모든 작업이 있었지만 디버그 및 코드를 안전하게 만드는 데 많은 도움이 필요했습니다. 예를 들어 차용 검사기 및 컴파일러와 나중에 린터 ( "clippy") 같은 도구를 사용합니다. 그것은 기능적 및 객체 지향 프로그래밍의 많은 친숙한 측면을 제공했으며 시스템을 구축하려는 방식에 대한 내 정신적 모델에 맞는 것처럼 보였습니다.

Oso의 공동 창립자 인 Scott은 저수준 프로그래밍을 피할 수 없었습니다. Oso는 백엔드 인프라 보안을 개발자에게는 표시하지 않고 운영팀에게는 간단하게 만드는 임무를 맡고 있습니다.”시스템 수준 언어가 제공하는 성능이 필요합니다. "Go와 같은 가비지 수집 언어는 사용할 수 없습니다. 고객 트래픽의 중요한 경로에 있기 때문에 성능이 우리가하는 일에 충분히 일관되지 않기 때문입니다."Scott이 말했습니다. 

비교적 새로운 언어에 정통한 개발자 인재를 확보하는 잠재적 인 문제로 돌아갈 때까지 모두 훌륭하게 들립니다. 그러나 접근 가능한 재능은 Rust의 가장 좋은 기능 일 수 있습니다.

Rust 프로그래머가 원하는

새로운 것을 배우는 데있어 중요한 요소는 사람들이 전환을 기꺼이 도울 수 있도록하는 것입니다. 여기 Rust가 빛납니다. Barsky가 말했듯이

Rust 커뮤니티는 열정적이고 친절하며 지적인 사람들로 가득합니다. 강력하게 시행되는 행동 강령이 있으며 이는 무례하거나 괴롭히는 행위를 용납하지 않음을 의미합니다. 일화로, 그것은 내가 어떤 기술 커뮤니티에서 본 LGBTQA 사람들이 가장 많이 집중되어 있습니다.

Scott에 따르면이 커뮤니티는 개발자가 몇 달 안에 Rust를 선택할 수있는 큰 이유입니다. Rust는“마인드의 약간의 변화가 필요합니다.”라고 그는 말합니다. "유형 및 수명과 같은 것에 대해 더 많은 사전 추론을 수행해야합니다." 그러나 일단 거기에 도착하면 "배당금을 지불합니다."

그렇다면 많은 개발자들이 Rust를 좋아한다는 사실이 놀랍습니다. Rust의 환영하고 포용적인 커뮤니티에 의해 상승 측면이 크고 단점이 최소화됩니다.