도입: Lisp가 다시 움직이고 있어요
오랫동안 잠잠하던 Lisp 진영에서 흥미로운 프로젝트가 하나 나왔어요. 이름이 Mine, Coalton과 Common Lisp를 위한 IDE예요. "아니 Lisp 아직도 쓰는 사람 있어요?" 싶은 분들 계실 텐데요, 사실 항공우주, 로봇공학, 일부 양자 컴퓨팅 컴파일러 쪽에서는 여전히 현역이에요. 그리고 이번에 나온 Mine은 단순한 에디터 플러그인이 아니라, 타입이 있는 Lisp를 처음부터 끝까지 편하게 다룰 수 있게 만든 통합 개발환경이라는 점에서 의미가 커요.
Coalton이 뭐예요
먼저 배경부터요. Coalton은 Common Lisp 위에서 돌아가는 정적 타입 함수형 언어예요. 이게 뭐냐면, 일반 Common Lisp는 동적 타입이라 실행 중에야 타입 오류가 발견되거든요. 그런데 Coalton은 Haskell처럼 Hindley-Milner 타입 추론을 얹어서, 컴파일 시점에 "이 함수에 String 넣으면 안 돼요" 같은 걸 잡아줘요. 그러면서도 Common Lisp의 매크로, REPL, 기존 라이브러리는 그대로 쓸 수 있어요. "Lisp의 유연함 + Haskell의 안전함"을 합치려는 시도라고 보면 됩니다.
Coalton은 양자 컴퓨팅 회사 HRL(예전 Rigetti) 쪽에서 시작된 프로젝트로 알려져 있어요. 양자 회로 컴파일러처럼 정확성이 생명인 도메인에서, 동적 타입의 위험을 줄이고 싶었던 거죠. 우리한테 익숙한 비유로 풀면, TypeScript가 JavaScript에 한 일을 Coalton이 Common Lisp에 하고 있다고 보시면 돼요.
Mine은 뭘 해주나요
Lisp 개발은 전통적으로 Emacs + SLIME 조합이 거의 표준이었어요. 그런데 이게 진입장벽이 꽤 높거든요. Emacs 키바인딩 익히는 데만 며칠 걸리고요. Mine은 이 진입장벽을 낮추는 걸 목표로 만들어졌어요.
핵심은 REPL과 에디터의 통합이에요. 함수 하나 작성하면 그 자리에서 평가해서 결과를 보여주고, 타입을 추론해서 인라인으로 표시해줘요. Coalton의 타입 정보를 IDE가 직접 이해하기 때문에, 함수 시그니처에 마우스를 올리면 추론된 타입이 그대로 뜹니다. 인터랙티브 개발(interactive development), 그러니까 프로그램을 멈추지 않고 살아 있는 상태에서 고쳐가는 Lisp 특유의 워크플로우를 살리면서, 모던 IDE의 LSP(Language Server Protocol) 스타일 자동완성과 정적 분석을 함께 제공한다는 게 핵심이에요.
또 하나 재밌는 건 구조적 편집(structural editing) 지원이에요. Lisp는 코드가 곧 트리(s-expression)인 언어라서, 일반 텍스트 에디터처럼 한 글자씩 다루기보다 괄호 단위로 통째로 옮기는 편집 방식이 잘 맞거든요. Paredit이나 Parinfer 같은 도구로 익숙한 분들은 바로 적응하실 수 있어요.
업계 맥락
타입 있는 Lisp 시도는 사실 새롭진 않아요. Typed Racket이 비슷한 방향으로 오래 발전해왔고, Clojure 진영의 core.typed, Malli, Spec도 점진적 타입을 추구해왔죠. 다만 Coalton은 "점진적"이 아니라 "전면 정적"을 택한 게 차별점이에요. 그리고 그걸 잘 쓰려면 IDE 지원이 결정적인데, 이번 Mine 발표가 바로 그 빠진 퍼즐 조각인 거예요.
더 넓게 보면, 요즘 함수형 언어들이 다 "좋은 IDE 없으면 죽는다"는 걸 인정하는 분위기예요. Haskell은 HLS, OCaml은 Merlin/OCaml Platform, Roc/Gleam도 출시 초기부터 LSP를 챙기죠. Lisp 진영도 이 흐름에 합류하는 신호로 읽혀요.
한국 개발자에게는
당장 실무에 Coalton을 도입하긴 어려울 거예요. 솔직히요. 다만 한 번쯤 타입 추론과 매크로가 만나면 어떤 표현력이 나오는지 경험해보는 건 정말 가치 있어요. 평소 TypeScript나 Kotlin만 쓰던 분이 Coalton을 만지면, 같은 정적 타입이라도 "코드가 코드를 작성하는" 메타프로그래밍의 세계가 얼마나 다른지 체감하실 거예요. 사이드 프로젝트로 작은 DSL 하나 만들어보시면 좋습니다.
마무리
핵심 한 줄로는 "Lisp는 죽지 않았고, 타입과 IDE를 입고 조용히 진화 중이다" 정도가 되겠네요. 여러분은 동적 언어에 정적 타입을 점진적으로 끼얹는 길과, Coalton처럼 처음부터 타입 있는 새 언어를 만드는 길 중 어느 쪽이 더 미래지향적이라고 보세요?
🔗 출처: Hacker News
TTJ 코딩클래스 정규반
월급 외 수입,
코딩으로 만들 수 있습니다
17가지 수익 모델을 직접 실습하고, 1,300만원 상당의 자동화 도구와 소스코드를 받아가세요.
"비전공 직장인인데 반년 만에 수익 파이프라인을 여러 개 만들었습니다"
실제 수강생 후기- 비전공자도 6개월이면 첫 수익
- 20년 경력 개발자 직강
- 자동화 프로그램 + 소스코드 제공