C3, 제네릭 시스템 개편 및 새로운 기능 도입
C3 프로그래밍 언어 0.7.9 버전 릴리스, 제네릭 시스템(Generics System) 개선
기존 모듈 기반 제네릭에서 탈피, 그룹 기반 제네릭(Group-based Generics) 도입
선택적 구문(Optional Syntax) 변경: `?` 대신 `~` 사용, `?!` 및 `?!!` 연산자 제거
NetBSD 지원 강화, 윈도우(Windows) UTF-8 콘솔 출력 기본 활성화 등 다양한 기능 추가 및 버그 수정
제네릭 시스템(Generics System)의 변화
C3 0.7.9 버전은 기존의 모듈 기반 제네릭에서 벗어나 그룹 기반 제네릭을 도입했다. 모듈 기반 제네릭(Module-based Generics)은 각 제네릭에 대해 별도의 모듈을 생성해야 하는 단점이 있었으나, 새로운 시스템은 동일한 그룹 내 선언을 함께 인스턴스화하여 코드 중복(Code Duplication)을 줄인다. 이러한 변화는 매크로(Macro) 의존성을 줄이고, 컴파일러(Compiler) 성능을 향상시키는 데 기여할 것으로 예상된다.
선택적 구문(Optional Syntax) 변경 및 제거
이번 릴리스에서는 선택적 구문(Optional Syntax)을 나타내는 기호가 `?`에서 `~`로 변경되었다. 이는 `?` 기호가 삼항 연산자(Ternary Operator)와 충돌하는 문제를 해결하기 위한 것으로, 문법적 모호성(Grammatical Ambiguity)을 줄이는 데 목적이 있다. 또한, `?!` 및 `?!!` 연산자가 제거되어 선택적 값 처리 방식이 간소화되었다. 선택적 값(Optional Value) 처리에 대한 일관성을 확보하려는 시도로 보인다.
표준 라이브러리(Standard Library) 개선 및 추가
0.7.9 버전은 표준 라이브러리(Standard Library)에 다양한 개선 사항을 포함하고 있다. 특히, Poly1305, Ripemd, Chacha20, Blake2, Blake3, streebog 등 다양한 암호화 알고리즘(Cryptography Algorithm)을 추가하여 보안 기능을 강화했다. 또한, `mem::store` 및 `mem::load` 함수를 추가하여 메모리 접근(Memory Access) 관련 기능을 개선했다. 이러한 변화는 C3 언어의 실용성을 높이는 데 기여할 것이다.
커뮤니티 반응 및 향후 계획
레딧(Reddit) 댓글에서는 선택적 구문 변경에 대한 의견이 엇갈렸다. 일부 사용자는 `?` 기호를 유지하고 삼항 연산자를 변경하는 방안을 선호했다. 또한, `?!` 연산자 제거에 대한 아쉬움을 표명하기도 했다. C3 개발팀은 0.8.0 버전을 4월에 출시할 예정이며, 1년에 0.1 버전 릴리스를 목표로 하고 있다. 1.0 버전은 2028년에 출시될 예정이다. 지속적인 언어 개선(Language Improvement)을 통해 개발자 경험을 향상시킬 것으로 기대된다.