Hacker News 의견
  • 숙련된 프로그래머가 작성한 Rust는 C와 매우 다르며, 대부분의 흥미로운 코드는 C++로 작성됨

    • C 프로그램의 모든 할당 수명을 정적으로 결정하는 것은 매우 어려운 문제임
    • C/C++ 프로그램은 사용자 클릭과 같은 이벤트에 할당 수명을 연결할 수 있음
    • 분석하려는 프로그램이 버그가 있는 경우 수명이 의미가 없을 수 있음
    • 기존 연구는 분석 대상 코드가 올바르다고 가정함
  • 이 제안이 공개된 것이 흥미로움

    • 자동 번역의 실현 가능성에 대해 기대를 조절하려고 노력함
    • C 소스 코드에는 Rust 소스 코드보다 정보가 적음
    • 누락된 정보를 생성하는 것은 불가능함
    • 올바르게 추론하려면 판단이 필요하며, 이는 오류가 발생할 수 있음
    • 프로젝트가 어느 정도 성공할 수 있지만 신중하게 접근해야 함
    • 정부의 프로젝트가 C에 대한 전면적인 비난이나 Rust에 대한 전면적인 찬양으로 해석되지 않기를 바람
  • "Rust로 세계를 다시 작성하자"는 사고방식을 좋아하지 않음

    • 프로젝트를 새로운 언어나 플랫폼으로 포팅하려면 기계적 번역은 좋지 않음
    • 더 나은 아키텍처를 계획하고 소프트웨어 시스템을 설계하는 데 시간을 투자해야 함
    • Rust를 사용하기로 결정했다면 Rust로 작성해야 함
    • C를 현대적인 C로 업데이트하고 모델 체커를 사용하여 메모리, 리소스, 정수 수학 안전성을 검증하는 것이 더 나음
  • 많은 사람들이 이 프로젝트를 C와 C++ 코드를 Rust로 번역하라는 요구로 읽고 있음

    • C와 C++는 기본적으로 안전하지 않음
    • 가능한 한 많은 코드를 안전한 언어로 번역하거나 작성해야 함
    • 기존 C 코드를 Rust로 번역하는 소프트웨어를 지원하고 있음
    • Rust로 세계를 다시 작성하자는 합의가 아니라 안전한 언어로의 마이그레이션을 목표로 함
  • 번역된 코드베이스를 유지하는 데 문제가 있음

    • C로 작성된 코드베이스와 이를 유지할 수 있는 C 엔지니어 팀이 필요함
    • 자동 번역된 Rust 코드베이스는 원본보다 읽기 어렵고 이해하기 어려울 수 있음
    • Rust 엔지니어 팀이 필요함
    • Rust 엔지니어가 이미 있다면 수동으로 코드를 다시 작성하는 것이 더 나음
  • 자동으로 포팅하는 프로그램이 C 코드를 안전하게 만들 수 있는 모든 기능을 포함해야 함

    • Rust에는 메모리 버그가 없고 C를 자동으로 번역할 수 있다면 모든 메모리 버그를 자동으로 수정할 수 있음
    • 이는 일반적으로 불가능함
  • Mozilla에서 해고된 유능한 엔지니어를 먼저 고용하여 언어 자체를 계속 작업하게 하는 것이 좋음

    • 비동기 처리가 아직 완전히 완료되지 않음
    • 여러 가지 문제점이 있음
  • DARPA가 이 문제를 추진하는 것이 좋음

    • 안전한 Rust로 번역하는 것은 매우 어려움
    • 현재 C에서 Rust로 번역하는 도구가 있지만 결과는 유지 관리가 어려움
    • 올바르게 수행하려면 배열 크기와 비선형 포인터 사용 문제를 해결해야 함