핵심 요약
- Zig를 쓰던 C 개발자가 잦은 호환성 파괴와 번거로운 문법에 피로를 느끼고 새로운 시스템 언어인 C3로 전향했습니다.
- C3는 @pool 매크로를 통한 간편한 임시 메모리 관리와 C++ 스타일의 유연한 모듈 분할, 직관적인 인터페이스를 제공해 C의 단순함과 현대적 편의성을 동시에 챙겼습니다.
- 문서화가 다소 부족했지만 언어 창작자의 직접적인 지원과 표준 라이브러리 분석을 통해 훨씬 높은 생산성을 얻었다고 밝혔습니다.
요약 오랫동안 C 언어를 다뤄온 한 개발자가 최근 주목받는 시스템 프로그래밍 언어인 Zig를 사용하다가 C3로 전향하게 된 경험담을 공유해 관심을 모았습니다.
작성자는 처음에 Zig를 접하고 빠른 속도와 크로스 컴파일 편의성 덕분에 만족했으나, 버전이 올라갈 때마다 잦은 하위 호환성 파괴(breaking changes)와 과도하게 장황한 타입 캐스팅 문법 등에 피로감을 느꼈다고 밝혔습니다. 무엇보다 C 특유의 간결하고 직관적인 문법이 그리워 결국 C로 되돌아가곤 했다고 회상했습니다.
그러던 중 스트리머 Tsoding의 방송을 통해 C3를 알게 되었고, 처음에는 필수적인 `fn` 키워드나 엄격한 코드 스타일 규칙(파스칼 표기법 타입, 대문자 스네이크 표기법 상수 등) 때문에 낯설었지만 직접 프로젝트를 진행하며 그 매력에 빠졌다고 설명했습니다.
그가 꼽은 C3의 주요 강점은 다음과 같습니다.
1. 임시 할당자(@pool): 아레나 할당자를 일일이 초기화하고 해제하는 번거로움 없이 `@pool` 매크로 스코프를 통해 임시 메모리를 자동으로 간편하게 정리할 수 있습니다.
2. 유연한 모듈 시스템: 파일 하나가 곧 모듈이 되는 Zig와 달리, C++ 네임스페이스처럼 하나의 모듈을 여러 파일에 걸쳐 나누거나 단일 파일 안에 여러 모듈을 선언할 수 있어 코드 구조화가 훨씬 자유롭습니다.
3. 편리한 메서드와 인터페이스: 구조체에 메서드를 점(.) 문법으로 깔끔하게 붙여 호출할 수 있으며, 태그드 유니온에 주로 의존하는 Zig에 비해 인터페이스 지원이 유연해 다형성 구현이 직관적입니다.
작성자는 비록 공식 문서가 다소 오래되어 표준 라이브러리 소스코드를 직접 파고들어야 했지만, C3 창작자인 크리스토퍼 레르노(Christoffer Lerno)의 직접적인 도움을 받으며 언어의 실용성과 C에 가까운 직관성에 깊은 만족감을 느꼈다고 전했습니다.
Sponsored · 광고