neo 5일전 | parent | favorite | on: GN⁺: C++의 두 파벌(herecomesthemoon.net)
Hacker News 의견
  • Google의 C++ 코드는 종종 최신 버전에서 작동하지 않으며, 개발자들이 이를 수정할 의지가 없는 경우가 많음. 이는 Google의 코드가 오래된 것과 현대적인 것 사이의 중간 지점에 머물러 있기 때문임

    • Google의 C++ 코드는 상태 기계와 수동 약한 포인터로 인해 메모리 손상이 발생할 수 있음
    • Google이 C++ 생태계를 떠나는 것을 긍정적으로 봄
    • Rust 생태계에 대한 Google의 관심이 긍정적이지 않을 것이라고 생각함
  • C++ 표준 작업자들에게 현재의 C++ 방향성을 지지하며, C++의 미래에 대해 온라인에서 나오는 소음은 무시하라고 조언함

    • Rust를 사용하여 정적 수명 검사를 원하는 사람들에게 Rust를 사용하라고 권장함
    • 정부 계약자라면 Rust를 사용하라고 제안함
    • 기존의 C++ 개발 프로세스가 잘 작동하고 있다고 주장함
  • C++를 사용하는 유일한 집단은 리팩토링하기에는 너무 큰 레거시 코드베이스를 가진 집단일 것이라고 주장함

    • WG21에 대한 신뢰를 잃은 다른 집단은 새로운 언어로 이동하고 있음
    • Herb Sutter가 C++에 수명 주석을 추가하는 것이 다른 언어로의 "출구 램프"를 만들 것이라고 언급함
  • Rust의 에디션 시스템이 매우 잘 작동한다고 평가함

    • C++에도 이러한 시스템이 도입된다면, 모듈 경계에 제한이 있을 수 있지만 두 진영이 모두 만족할 수 있는 방법이 될 수 있다고 제안함
  • Herb Sutter가 Microsoft를 떠난다는 소식이 Microsoft에 좋지 않은 영향을 미칠 것이라고 우려함

    • Herb가 C++ 표준 채택을 주도하고 더 나은 미래 비전을 위해 노력했다고 평가함
    • Microsoft의 제안이었던 std::span이 범위 검사를 제외하고 채택된 것을 언급하며, Herb의 노력이 필요했다고 주장함
  • 자동화된 테스트가 두 진영을 구분하는 주요 요소라고 강조함

    • 레거시 C++ 앱에서 자동화된 테스트가 없으면 코드 변경이 앱을 손상시킬 위험이 있다고 설명함
    • C++의 특성상 무해해 보이는 코드 변경도 문제를 일으킬 수 있다고 경고함
  • C++의 매력을 떨어뜨린 주요 요인은 모듈의 부재라고 주장함

    • 모듈이 있었다면 C++ 커뮤니티가 형성될 수 있었을 것이라고 평가함
  • Herb Sutter는 타협을 이끌어내는 데 능숙했지만, Google은 자신의 의제를 밀어붙였다고 비교함

  • 대규모 코드베이스를 가진 고객들은 엄격한 규칙을 만족시키기 위해 코드의 1%도 변경하지 않으려 한다고 언급함

    • 많은 회사들이 새로운 표준으로 업그레이드하는 데 시간을 투자하고 있다고 주장함
  • Python과 Javascript/Node/Typescript에도 여러 파벌이 존재한다고 설명함

    • Rust는 이러한 파벌을 피하려고 했지만, 학습 곡선이 높아졌다고 평가함
    • Go는 파벌을 방지하고 널리 채택되기 위한 시도를 했지만, 제네릭을 도입해야 했다고 언급함