Lisp(리습)과 Scheme(스키마)의 전통을 이어받은 프로그래밍 언어 Racket(래킷)이 프로그래밍 언어 연구와 교육 분야에서 중요한 도구로 자리매김하고 있습니다. Racket은 코드와 데이터를 동일한 구조로 다루는 동형성(homoiconicity)을 핵심으로 하며, 이를 통해 사용자가 특정 문제 해결에 최적화된 새로운 언어와 문법을 직접 설계하고 확장할 수 있는 강력한 기능을 제공합니다.
Racket의 모든 코드는 '(연산자 인수...)' 형태의 표현식으로 구성되며, 괄호가 프로그램의 구조를 명확히 나타내기 때문에 별도의 연산자 우선순위를 외울 필요가 없습니다. 'define'으로 변수나 함수를 정의하고, 'lambda'로 익명 함수를 만들 수 있습니다. 특히 리스트를 다루는 데 특화되어 'map', 'filter', 'foldl' 같은 고차 함수(higher-order function)를 활용해 복잡한 반복 작업을 간결하게 처리할 수 있습니다. 작은따옴표(')를 사용하면 코드를 평가되지 않은 리스트 데이터로 취급할 수 있으며, 'eval' 함수로 다시 실행할 수 있는 이러한 동형성은 Lisp 매크로의 기반이 됩니다. Racket의 'define-syntax-rule'을 활용하면 'while'과 같은 내장되지 않은 구문도 직접 추가하여 언어 자체를 확장하는 것이 가능합니다.
Racket은 1958년 존 매카시(John McCarthy)가 개발한 Lisp에서 시작된 아이디어들을 계승합니다. Lisp는 가비지 컬렉션, 일급 함수, REPL(읽기-평가-출력 반복), 값을 반환하는 조건식, 그리고 코드와 데이터의 동형성 등 현대 프로그래밍 언어에 지대한 영향을 미친 개념들을 탄생시켰습니다. 1975년 Lisp의 간결하고 수학적인 버전으로 Scheme이 등장했고, 프로그래밍 교육의 고전인 '컴퓨터 프로그램의 구조와 해석(SICP)'에도 사용되었습니다. 1995년 매티아스 펠라이젠(Matthias Felleisen) 그룹이 교육 및 언어 연구를 위해 PLT Scheme을 만들었고, 이것이 2010년 Racket으로 이름을 바꾸면서 언어 지향 프로그래밍(Language-Oriented Programming)을 지원하는 방향으로 발전했습니다.
오늘날 Lisp 계열 언어들은 다양한 분야에서 활발히 사용되고 있습니다. Clojure(클로저)는 Nubank(누뱅크) 같은 대형 은행과 항공사, 스타트업의 프로덕션 환경에서 활용되며, Common Lisp(커먼 리습)은 전문가 시스템, 과학 계산, 비행 계획 등에 쓰입니다. 구글(Google)이 인수한 ITA 소프트웨어의 기술은 구글 플라이츠(Google Flights)를 구동합니다. Emacs Lisp(이맥스 리습)은 에디터 Emacs(이맥스) 자체를 Lisp 인터프리터로 만들어 수많은 사용자가 매일 실행하고 있으며, Guile(가일)/Guix(긱스)는 리눅스 배포판 전체를 Scheme으로 설정하기도 합니다. Racket은 연례 행사인 RacketCon(래킷콘)과 학술·예술 커뮤니티를 통해 형식 검증, 타이포그래피, 프로그래밍 언어 연구 및 교육 등 여러 분야에서 활용됩니다. 최근에는 Lua(루아)로 컴파일되는 Fennel(페넬), Python(파이썬) 위에서 동작하는 Hy(하이) 등 새로운 Lisp 계열 언어도 계속 등장하고 있습니다. 애니메이션 '어메이징 디지털 서커스(The Amazing Digital Circus)' 8화에서 AI 캐릭터 케인(Caine)의 핵심 파일이 'Caine-core.lisp'로 나타나는 등 대중문화에서도 Lisp의 영향력을 엿볼 수 있습니다.
Racket은 프로그래밍을 넘어 언어 자체를 설계하고 확장할 수 있는 독특한 접근 방식을 제공하며, 이는 소프트웨어 개발의 근본적인 문제 해결 방식에 대한 새로운 시각을 제시합니다. 앨런 케이(Alan Kay)가 Lisp를 “소프트웨어의 맥스웰 방정식”이라고 부른 것처럼, 작은 핵심 원리에서 모든 것을 도출할 수 있는 Racket의 특성은 개발자들에게 무한한 가능성을 열어줍니다. 이는 특정 도메인에 최적화된 언어를 직접 구축하여 생산성을 극대화하거나, 복잡한 시스템을 더 우아하게 모델링하는 데 기여할 수 있습니다.