# Lisp: 아이싱인가 케이크인가?

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

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=15147](https://news.hada.io/topic?id=15147)
- GeekNews Markdown: [https://news.hada.io/topic/15147.md](https://news.hada.io/topic/15147.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2024-06-03T10:16:04+09:00
- Updated: 2024-06-03T10:16:04+09:00
- Original source: [dthompson.us](https://dthompson.us/posts/lisp-icing-or-cake.html)
- Points: 2
- Comments: 0

## Topic Body

### 2024년 봄 Lisp 게임 잼

#### 게임 잼 결과
- 2024년 봄 Lisp 게임 잼이 종료됨.
- 총 48개의 게임이 제출되어 새로운 기록을 세움.
- 참가자들이 서로의 게임을 플레이하고 평가하는 시간을 가짐.

#### 언어별 제출 현황
- Guile: 15개 (31%)
- Fennel: 10개 (21%)
- Clojure: 5개 (10%)
- CL: 5개 (10%)
- Racket: 4개 (8%)
- Elisp: 4개 (8%)
- S7: 3개 (6%)
- Kawa: 1개 (2%)
- Owl: 1개 (2%)

#### Guile의 인기 상승
- Guile이 처음으로 가장 많은 제출 수를 기록함.
- 15개의 Guile 게임 중 11개는 Hoot을 사용하여 웹용으로 제작됨.
- Hoot은 Scheme을 WebAssembly로 컴파일하는 도구로, Spritely Institute에서 개발됨.

#### Fennel의 지속적인 인기
- Fennel은 Lua로 컴파일되는 Lisp로, 여전히 인기가 많음.
- Fennel 게임 대부분은 love2d를 사용하여 제작됨.

#### Lisp 사용 패턴
##### Lisp를 '아이싱'으로 사용
- C, Rust 등의 정적 언어로 작성된 프로그램 위에 Lisp를 스크립팅 언어로 사용하는 패턴.
- 빠른 개발이 가능하지만 정적 언어와의 강한 결합이 필요함.
- 예: Fennel + love2d, S7 + raylib

##### Lisp를 '케이크'로 사용
- 소프트웨어 스택의 대부분을 Lisp로 구현하는 패턴.
- 개발 시간이 오래 걸리지만, 더 많은 제어와 유연성을 제공함.
- 예: Guile + Chickadee, Hoot + HTML5 canvas

#### 사례 연구
##### Fennel + love2d
- love2d는 Lua 인터프리터를 포함한 C++ 프로그램으로, Fennel과 잘 맞음.
- 대부분의 Fennel 게임은 love2d를 사용하여 웹에 배포됨.

##### S7 + raylib
- raylib은 C 라이브러리로, S7과 결합하여 쉽게 웹에 배포 가능함.
- GhostHop과 Life Predictor가 이 스택을 사용함.

##### Guile + Chickadee
- Chickadee는 Guile을 위한 게임 라이브러리로, 대부분 Scheme으로 작성됨.
- Turbo Racer 3000과 Bloatrunner가 이 스택을 사용함.

##### Hoot + HTML5 canvas
- Hoot은 Scheme을 WebAssembly로 컴파일하는 도구로, HTML5 canvas API를 사용하여 2D 렌더링을 수행함.
- 11개의 게임이 Hoot을 사용하여 제작됨.

#### 케이크/아이싱 스펙트럼
- 케이크 접근 방식은 더 많은 제어와 유연성을 제공하지만, 개발 시간이 오래 걸림.
- Guix 프로젝트는 케이크 접근 방식의 성공적인 사례로, Lisp의 사용을 극대화하여 높은 해킹 가능성을 제공함.

#### GN⁺의 의견
- **Lisp의 유연성**: Lisp는 다양한 구현체가 있어 개발자가 자신의 필요에 맞는 언어를 선택할 수 있는 유연성을 제공함.
- **웹 배포의 용이성**: Hoot과 같은 도구를 사용하면 Lisp로 작성된 게임을 쉽게 웹에 배포할 수 있음.
- **개발 시간**: 케이크 접근 방식은 더 많은 제어와 유연성을 제공하지만, 개발 시간이 오래 걸릴 수 있음.
- **미래 가능성**: Pre-Scheme과 같은 프로젝트는 Lisp로 더 많은 소프트웨어 스택을 구현할 수 있는 가능성을 열어줌.
- **커뮤니티 지원**: Guile과 같은 프로젝트는 커뮤니티의 지원을 받아 지속적으로 발전하고 있음.

## Comments



_No public comments on this page._
