Rust가 에이전트 시대에 사랑받는 진짜 이유
What agents mean for Rust (and vice versa)

프로그래밍 언어 설계자로서 LLM의 부상을 바라보는 저자는 인간의 역할과 언어 설계의 중요성이 여전히 유효하다고 주장한다. Rust는 성능과 타입 시스템의 가드레일 덕분에 에이전트 코딩에 특히 잘 맞는다. 에이전트는 최적화에 능하고, Rust의 타입 시스템은 에이전트를 올바른 길로 잡아준다. 나아가 Verus, Kani 같은 증명 도구를 통해 안전성과 성능을 동시에 높일 수 있다고 제안한다.
타입 시스템은 버그의 부재를 보여줄 수 있지만, 올바름의 존재를 보여줄 수는 없다.
HN 토론
52- gregwebs
Rust에는 정말 눈에 띄는 약점이 하나 있습니다: 바로 컴파일 시간이죠. LLM 시대에는 Rust가 가진 뛰어난 성능과 훌륭한 타입 안전성을 달성하면서도 빠른 컴파일을 더 잘 지원하는 언어, 혹은 일종의 Rust 재설계가 등장할 거라고 생각합니다.
에이전트가 Rust 코드베이스에서 Verus 증명을 작성하는 데 능숙하다는 걸 발견했고, 이런 증명은 일반적인 컴파일 경로에 최소한의 부정적 영향만 미칩니다. Verus를 사용하는 스킬도 있습니다: https://github.com/gregwebs/skills-sdlc/blob/main/skills/rus...
- kubb
Haskell 같은 '어려운' 언어가 LLM과 함께 부활하지 않을까 궁금합니다. 언어를 배우는 단기적 비용이 이제는 타입 시스템과 더 나은 구조가 주는 장기적 이점에 비해 그렇게 크지 않으니까요.
- xscott
잠시 물러서서 LLM이 코드를 작성하는 데 도움이 되거나 해가 되는 프로그래밍 언어 기능 목록을 만들어볼 수 있을 것 같습니다. 완전한 목록은 아니지만 제가 생각해본 것들은:
컴파일 시 유용한 에러 메시지
반복하고 에러를 고칠 수 있는 빠른 컴파일
런타임에서의 효율적인 메모리, CPU, 어쩌면 GPU
학습 데이터에 익숙함 [0]
하나의 명확하거나 선호되는 방식
명시적 타입
Rust는 이 중 일부를 충족하지만 전부는 아닙니다. 이 모든 걸 충족하는 언어는 떠오르지 않지만, 많은 사람들이 자기 애호 언어가 최고의 선택인 이유를 합리화하는 걸 정말 좋아하죠. LLM은 문법적 설탕이나 기타 편의 기능이 필요 없고, 런타임으로 미뤄진 에러는 모델이 아니라 당신에게 부담입니다.
결과에 대한 신뢰를 높이고 향후 수정이나 모델 전환이 더 잘 되도록 하기 위해 드물게 보이는 기능 몇 가지를 추가할 수도 있습니다:
필수 사전 조건과 사후 조건
함수나 메서드 길이에 대한 강제 제한
필수 테스트 케이스
강제된 명명 규칙
Lean 스타일의 정확성 증명? (아마 아닐 듯)
메모리 관리에 있어 선형/아핀 타입 대 가비지 컬렉션 같은 것에 대해서는 아직 결정을 못 했습니다. 물론 메모리 안전성이 필요하지만, 그것을 얻는 방법이 하나만 있는 건 아니고, 단순한 데이터 구조를 만들기 위해 억지로 비틀어야 하는지도 잘 모르겠습니다.
[0] LLM은 한 번도 본 적 없는 언어로도 프로그래밍을 매우 잘합니다. 제 장난감 컴파일러를 사용해 프로그램을 작성하게 한 적이 있는데 […]
- Depurator
Rust를 이제 6년 정도 써왔는데, LLM이 등장하기 전에 시작해서 borrow checker와 그런 것들과 싸워야 했던 게 정말 다행입니다.
지금은 Rust와 LLM을 함께 쓰면 생산성이 엄청나고, 새로운 언어로 다시 작성할 필요가 없다는 것도 편안하게 느껴집니다. Rust는 이미 최고니까요.
한 유명한 스웨덴 코미디언이 헤로인을 '최고의 약'이라고 말한 적이 있습니다. 사람들이 보통 도달하는 지점이고, 끊고 싶어하지 않는 것이죠.
- antoineMoPa
최근 에이전트와 Rust로 앱 몇 개를 '코딩'하면서 target/ 폴더가 얼마나 엄청나게 커질 수 있는지 깨달았습니다. 그러고 나서 cargo clean을 돌리면 디스크는 깨끗해지지만 컴파일이 다시 끝없이 걸리죠. 저는 습관적으로 디스크 공간이 부족해집니다.
그 부분만 빼면 전반적인 경험은 정말 좋습니다.