46바이트 Forth부터 122줄 J 인터프리터까지, 작은 프로그램이 중요한 이유

Small Programs and Languages

ratfactor는 작은 프로그램과 작은 언어의 매력을 탐구한다. 25줄짜리 JavaScript DOM diffing 라이브러리 ijk, 46바이트 Forth, 한 페이지 122줄로 작성된 Arthur Whitney의 J 인터프리터, 90Kb 부팅 이미지에 담긴 kOS 같은 사례를 소개한다. 코드 골프가 단순한 놀이가 아니라 해당 개념의 최소 복잡도를 증명하는 콜모고로프 복잡도적 의미를 지닌다고 주장한다. Forth, Lisp, Tcl처럼 문법 핵심이 색인 카드에 들어가는 언어들의 표현력과, 단순함이 표현력보다 우선한다는 David Ungar의 견해도 함께 다룬다.

시스템이 이상하게 동작해서 아무도 이유를 이해하지 못하게 만드는 것보다는, 시스템을 조금 지나치게 단순하게 만들어서 사람이 추가 코드를 작성해야 하거나, 심지어 '여기를 보라'는 주석과 함께 두 번 작성해야 하더라도 그편이 훨씬 낫다. 즉, 단순함이 표현력을 이긴다.

이 날의 다른 글

2026-10-24