기타 Lobsters · 1일 전

"C 언어 배열에 길이 좀 넣어줘" 표준위원회에 따진 개발자들

핵심 요약
  • C 언어 표준위원회(WG14) 및 C++ 표준위원회 전문가들이 해커뉴스에서 'Effective C' 출간을 기념한 AMA 질의응답을 진행했습니다.
  • 미정의 동작 축소 및 길이 포함 배열 등 C 언어 현대화 요구에 대해 전문가들은 'C는 새로운 기능을 발명하기보다 기존 관행을 표준화하는 언어'라며 선을 그었습니다.
  • 이에 개발자들은 48년 동안 기본적인 기능도 표준화하지 못한 보수적인 위원회를 비판하며 C 언어의 미래를 두고 격론을 벌였습니다.
요약 해커뉴스(Hacker News)에서 C 언어 표준위원회(WG14) 및 C++ 표준위원회(WG21) 소속 전문가들이 대거 참여한 '무엇이든 물어보세요(AMA/AUA)' 질의응답 세션이 열렸습니다. 이번 질의응답은 도서 'Effective C' 출간을 기념해 기획된 것으로, 저자인 로버트 C. 시코드(Robert C. Seacord)를 비롯해 Clang 프론트엔드 메인테이너인 애런 볼먼(Aaron Ballman), 레드햇 수석 엔지니어 마틴 세보르(Martin Sebor), 미국 육군연구소 명예연구원 더글러스 그윈(Douglas Gwyn) 등 쟁쟁한 전문가들이 직접 답변자로 나섰습니다. 세션 중 가장 뜨거운 관심을 받은 주제 중 하나는 "현대적인 언어 흐름에 맞춰 C 언어를 정리하거나 개선할 계획이 있는가"였습니다. 한 개발자는 미정의 동작(Undefined Behavior) 축소, 길이 정보를 포함하는 온전한 배열 지원, 이름 충돌을 방지하는 모듈 시스템 도입 등을 질문했습니다. 이에 대해 위원회 전문가 마틴 세보르는 "버그나 비일관성, 규격 미비가 있는 원자성(atomics)이나 스레드 규격을 정비하고, 2의 보수 표현처럼 구현체들이 수렴한 영역을 명확히 정의하는 작업은 진행 중"이라고 답했습니다. 그러나 새로운 배열 타입이나 모듈 시스템에 대해서는 "C 언어 표준화의 기본 원칙은 새로운 기능을 발명하는 것이 아니라 이미 존재하는 관행(existing practice)을 표준화하는 것"이라며 당장 코어 언어 차원에서 도입될 가능성은 낮다고 선을 그었습니다. 이러한 답변에 대해 커뮤니티 개발자들은 "길이 정보를 포함하는 배열 구현은 수없이 등장하지만 표준이 없어 파편화되는 것"이라거나, "48년 동안 길이 있는 배열조차 추가하지 못한 보수적인 표준화 문화로는 현대적 요구를 맞추기 어렵다", "C 언어는 이제 새로운 기능을 개발하기보다 다른 언어에서 호출되는 이식성 높은 어셈블러로서 서서히 수명을 다해가는 단계"라는 냉소적인 반응을 보이는 등 열띤 토론을 벌였습니다.
해외 반응 번역
C 언어 정리할 계획 없나요? 다른 언어들도 많이 나오지만 C도 여전히 많이 쓰이는데, 하위 호환성을 지키면서 미정의 동작 줄이기, 길이 포함 배열 지원, 모듈 시스템 같은 걸 넣을 수 있지 않나요?
스펙에서 버그나 비일관적인 부분을 정비하는 작업은 진행 중입니다. 하지만 새로운 배열 타입이나 모듈은 제안된 바도 없고 가능성도 낮습니다. C의 원칙은 새로운 기능을 발명하는 게 아니라 이미 널리 쓰이는 관행을 표준화하는 거니까요.
길이 포함 배열은 C 개발자들이나 라이브러리에서 매번 직접 만들어 쓰고 있습니다. 표준화가 안 되니까 규격이 통일되지 못하고 전부 파편화되는 겁니다.
Sponsored · 광고