# Jank Lang 알파 버전 공개

> Clean Markdown view of GeekNews topic #25538. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=25538](https://news.hada.io/topic?id=25538)
- GeekNews Markdown: [https://news.hada.io/topic/25538.md](https://news.hada.io/topic/25538.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2026-01-04T07:32:39+09:00
- Updated: 2026-01-04T07:32:39+09:00
- Original source: [github.com/jank-lang](https://github.com/jank-lang/jank)
- Points: 1
- Comments: 1

## Topic Body

- **Clojure 문법과 LLVM 기반 네이티브 성능**을 결합한 프로그래밍 언어로, C++과의 **매끄러운 상호운용성**을 제공  
- Clojure의 **함수형·값 지향 특성**을 유지하면서, JVM 대신 **LLVM을 호스트 환경**으로 사용  
- 모든 **데이터 구조가 불변(persistent & immutable)** 이며, C++ 표준 라이브러리와 직접 연동 가능  
- 현재 **알파(Alpha) 단계**로, 공식 문서와 예제는 [jank book](https://book.jank-lang.org/)에서 제공  
- Clojure 생태계와 C++ 네이티브 성능을 결합하려는 시도로, **함수형 언어와 시스템 언어 간의 경계를 좁히는 의미**를 가짐  

---

### jank 개요
- **jank**는 [Clojure](https://clojure.org/)의 문법과 철학을 기반으로 한 **LLVM 호스티드 언어**  
  - JVM 대신 LLVM을 기반으로 하며, **C++과의 상호운용성(interoperability)** 을 지원  
  - Clojure의 **함수형, 상호작용적, 값 중심적 특성**을 유지  
- **Clojure와 높은 호환성**을 목표로 하며, Clojure가 Java와 상호작용하듯 jank는 C++과 통합  
- 현재 **알파 버전**으로 개발 중이며, 세부 내용은 [공식 문서](https://book.jank-lang.org/)에서 확인 가능  

### 언어 특징
- 모든 **내장 데이터 구조는 불변(persistent & immutable)** 형태  
  - 예시: `(def george {:name "George Clooney"})`  
- **부작용(side effect)** 은 필요 시 명시적으로 수행 가능  
  - 예시: `(defn say-hi [who] (println (str "Hi " (:name who) "!")) (assoc who :greeted? true))`  
- **C++ 표준 라이브러리와 직접 연동** 가능  
  - 예시: `(cpp/std.this_thread.sleep_for (cpp/std.chrono.milliseconds ms))`  
- **함수형 데이터 처리**를 위한 다양한 코어 함수 제공  
  - 예시: `(apply + (distinct [12 8 12 16 8 6])) ; => 42`  

### 개발 및 문서
- 공식 문서: [jank book](https://book.jank-lang.org/)  
- 프로젝트는 **LLVM 22 기반**으로 최신 C++ 표준과 호환  
- **AOT 컴파일**, **GC 프로파일링**, **CMake 빌드 옵션** 등을 지원  
- **Nix 환경** 및 **CI 자동화 빌드** 구성 포함  

### 커뮤니티 및 후원
- 프로젝트는 [GitHub Sponsors](https://github.com/sponsors/jeaye)를 통해 후원 가능  
- 후원 기업 및 개인: **Clojure Together**, **nubank**, **multiply.co**, **modulr-software** 등  
- 커뮤니티 채널: [Slack (Clojurians)](https://clojurians.slack.com/archives/C03SRH97FDK), [Twitter](https://twitter.com/jeayewilkerson)  

### 관련 발표 및 소개
- **Clojure Conj 2023** 발표 영상  
- **The REPL Interview** 및 **Compiler Spotlight**에서 언어 소개  
- **YouTube: Language Introduction** 영상 제공  

**요약:**  
jank는 Clojure의 함수형 철학을 LLVM과 C++ 네이티브 환경에 이식한 언어로, **Clojure의 생산성과 C++의 성능을 결합**하려는 시도임. 현재 알파 단계이지만, **Clojure 개발자와 시스템 프로그래머 모두에게 새로운 통합 개발 경험**을 제시함.

## Comments



### Comment 48631

- Author: neo
- Created: 2026-01-04T07:32:39+09:00
- Points: 1

###### [Hacker News 의견들](https://news.ycombinator.com/item?id=46468517) 
- jank alpha 관련 내용은 [공식 북 사이트](https://book.jank-lang.org/)를 참고해줬으면 함  
  아직 완전히 발표할 준비는 안 됐지만, 사람들이 **관심을 보여주는 것**이 기쁨임  
  몇 가지 컴파일러 기능만 더 병합하면 책을 따라가며 jank를 직접 써볼 수 있을 정도로 준비가 되어 있음
  - jank에 흥미가 많아서 방금 링크한 책을 읽고 있음  
    문법 오류가 몇 군데 보이는데, `book` 섹션에 **PR을 보내도 되는지**, 아니면 저자의 문체를 유지하기 위해 다른 방식으로 피드백을 주는 게 나은지 궁금함
  - 참여한 모든 사람들에게 **감사와 찬사**를 보냄

- jank는 **Clojure의 방언**으로, Clojure 자체도 Lisp의 방언임  
  함수형 중심이지만 **가변 상태와 부수효과**도 지원함  
  모든 데이터 구조는 기본적으로 불변이며, Clojure처럼 안전한 변경 메커니즘을 제공해 동시성을 쉽게 다룸  
  또 C++과의 깊은 연동이 가능해 런타임에 새로운 C++ 타입, 함수, 템플릿을 정의할 수 있음  
  Clang과 LLVM을 이용한 **JIT 컴파일**로 C/C++ 라이브러리를 손쉽게 접근할 수 있음  
  자세한 내용은 [공식 북](https://book.jank-lang.org) 참고
  - 예전에 C++을 쓸 때 **컴파일 과정이 너무 고통스러웠음**  
    Clojure는 좋아하지만 네이티브 타깃이 있다는 점이 매력적임  
    jank에서 **컴파일/리컴파일 속도**가 얼마나 되는지 궁금함

- jank 개발이 Clojure를 얼마나 **가깝게 추적**할지 궁금함  
  cljs처럼 가능한 한 동일하게 유지할 계획인지, 아니면 언젠가 분기할지도 궁금함  
  예전에 90% 정도 Clojure와 비슷한 언어를 만들었지만, 완전한 호환성을 보장하기 어려워 이름을 붙이지 않았음  
  jank는 **drop-in replacement**처럼 보이는데 멋져 보임
  - jank는 Clojure이며, **업스트림 Clojure 개발을 추적**할 예정임  
    Clojure 팀 및 다른 방언 개발자들과 협력 중이며, 이를 위해 [cross-dialect clojure-test-suite](https://github.com/jank-lang/clojure-test-suite)를 주도하고 있음  
    Clojure JVM, ClojureScript, Clojure CLR, babashka, Basilisp, jank를 모두 지원하거나 작업 중임  
    다만 Carp에서 영감을 받은 **선택적 모드**도 추가될 예정이며, 기본 호환성은 유지될 것임

- 순간 jank가 아니라 **Jack Lang(프랑스 정치인)** 얘기인 줄 착각했음  
  - 나도 똑같이 착각했음

- 함께 볼 책: [https://book.jank-lang.org/](https://book.jank-lang.org/)

- jank 블로그를 1년째 팔로우 중인데, **alpha 릴리스 축하**함  
  Emacs 사용자로서 CIDER 같은 **개발 도구 지원 상태**가 궁금함  
  또 Welcome 섹션의 링크 오타를 발견했음 — “foreward”가 아니라 “foreword”로 수정 필요함  
  - nREPL 서버는 작동 중이지만 아직 jank 저장소에 병합되지 않음  
    [try-jank](https://github.com/kylc/try-jank)에서 확인 가능함  
    Clang 버그로 인해 진행이 지연되고 있지만, **우선순위가 높은 작업**임  
    링크 오타는 이미 수정했음

- jank가 **Rust 코드베이스와 연동**할 수 있는지 궁금함  
  - 일반적인 C++ 프로젝트처럼 가능함  
    C ABI나 C++/Rust 상호운용 메커니즘을 통해 연결할 수 있음  
  - 물론 가능함

- **정적 타입 시스템**이 포함되어 있는지 궁금함  
  - Clojure의 방언이므로 기본적으로 **동적 타입 언어**임  
    하지만 개발자가 점진적 타입 시스템¹을 추가할 계획을 언급했음  
    일부는 완전 동적이고 GC 기반으로, 일부는 더 제어되고 최적화된 형태로 동작할 수 있게 하려는 비전임  
    ¹ [관련 블로그 글](https://jank-lang.org/blog/2025-01-10-i-quit-my-job/)
  - 전체 언어 수준의 정적 타입은 없음  
    C++과의 interop은 **정적으로 타입이 지정**되지만, Clojure 영역으로 돌아오면 완전히 동적이고 다형적임  
    Carp처럼 선택적 정적 타입 모드를 탐구할 예정이지만, **올해는 아님**
  - Clojure를 구현하고 있으므로 정적 타입은 없을 것으로 **강하게 추정함**

- 처음엔 “Jank Lang”이라는 사람이 **투자 알파를 찾았다**는 얘기인 줄 알았음
