Hacker News 의견
  • 컴파일 타임 프로그래밍의 문제점에 대한 깊이 있는 논의가 필요함. 스테이지드 프로그래밍은 새로운 것이 아니며, 여러 문제와 설계 상의 절충점이 존재함

    • 제네릭 구현 방식이 파라메트릭성을 깨뜨림. 파라메트릭성은 함수의 타입 서명만으로 함수에 대해 추론할 수 있는 능력을 의미함
    • Zig가 재귀적 제네릭 타입을 어떻게 처리하는지 명확하지 않음. 일반적으로 타입 시스템은 재귀를 허용하기 위해 게으름을 사용함
    • 타입 체크와 컴파일 타임 계산이 상호작용하는 방식이 흥미로움. Zig가 어떤 선택을 했는지 명확하지 않음
    • 컴파일 타임 코드가 코드 생성 가능성을 제시하지만, 위생에 대한 논의는 없음
  • D 언어는 17년 전부터 이러한 기능을 가졌으며, 다른 언어로 꾸준히 기능이 이동하고 있음

    • D는 키워드를 사용하지 않고, "const expression"으로 컴파일 타임 실행을 유도함
    • 비상수 전역 변수, I/O 및 시스템 함수 호출을 피함으로써 많은 함수가 컴파일 타임에 실행 가능함
  • Zig는 흥미롭지만, 연산자 오버로딩이 없어서 아쉬움. 연산자 오버로딩에 대한 반대 의견을 잘 이해하지 못함

    • 연산자 오버로딩이 실제로 어떤 일이 일어나는지 알 수 없다는 주장은 설득력이 없음
  • 컴파일 타임에 구조체를 생성할 수 있는 패턴이 흥미로움

    • 신경망을 구현할 때 JSON 파일을 생성하고, 이를 읽어 구조체를 생성하는 실험을 진행함
    • 이론적으로 컴파일러가 신경망을 직접 최적화할 수 있음
  • 'fieldNames'는 Nim의 'fieldPairs'와 유사하며, 매우 유용한 구조임

    • Rust에서는 이러한 기능이 부족함. Rust의 매크로는 비타입 매크로로 제한되어 있음
  • Zig의 컴파일 타임 기능에 놀랐다면, Nim도 살펴볼 가치가 있음. Nim은 컴파일 타임 코드 평가와 전체 AST 매크로 시스템을 가짐

  • Zig는 오디오 플러그인 개발에 적합할 수 있지만, C++의 생태계(JUCE 등)가 부족함

  • Zig는 언어로서 매우 좋으며, 목적에 맞게 사용되는 것이 중요함

  • Zig의 메타 프로그래밍 기능과 Rust의 방대한 생태계, 커뮤니티, 안전성을 결합한 무언가가 있기를 바람

    • Zig의 언어 디자인을 선호하지만, 유용하거나 신뢰할 수 있는 것을 작성하기에는 아직 어려움