C++ 인터페이싱 지원하는 Clojure 방언 Jank 공개
원제 Jank – The native Clojure dialect with seamless C++ interop
116 포인트댓글 17

Key Point
C++ 생태계와 Clojure의 함수형 패러다임을 하나로 통합한 새로운 선택지로, 기존 Java 기반 Clojure보다 네이티브 성능이 필요한 개발자나 게임/시스템 프로그래밍 커뮤니티에 실질적인 도구를 제시한다.
핵심 요약
- Jank는 C++ 기반으로 만든 Clojure 방언으로, 템플릿·가상 함수·예외·오버로드 해석·RAII 등 C++의 핵심 기능과 보일러플레이트 없이 직접 상호작용한다.
- Clang 기반 C++ JIT 컴파일러로 구동되는 대화형 REPL 개발을 지원하며, :jank 리더 조건부를 통해 필요시 C++ 코드와 분기 처리가 가능하다.
- 어떤 C++ 소스코드든 포함할 수 있고 모든 C/C++ 라이브러리에 링크할 수 있으며, jank 자체도 C++로 컴파일된다.
- Leiningen 기반의 프로젝트 관리와 풍부한 네이티브 빌드 시스템을 갖춰 C/C++ 의존성을 한 줄로 추가할 수 있다.
- nREPL 에디터 플러그인을 지원하며, LLVM 기반 JIT 런타임이 C++ 코드를 실시간으로 컴파일한다.
- 게임 개발 워크플로우에 함수형·불변 데이터와 REPL 기반 개발을 제공하면서, C++로 직접 접근할 때 함수/타입 등록·마샬링·콜백 없이 성능을 확보할 수 있다.