맥킨토시 공통 Lisp의 유산: Lisp와 Mac OS를 연결하다

클래식 Mac OS와 함께 성장한 많은 개발자들에게 Macintosh Common Lisp (MCL)이라는 이름은 빠른 프로토타이핑과 깊은 시스템 통합이 이루어졌던 특정 시대를 떠올리게 합니다. 전성기에는 MCL이 단순한 컴파일러가 아니라, 개발자들이 Common Lisp의 힘을 활용하면서도 Apple 플랫폼에서 네이티브한 느낌과 기능을 유지할 수 있게 해주는 포괄적인 통합 개발 환경(IDE)였습니다.

MCL을 이해하는 것은 컴퓨팅 역사의 한 교훈을 넘어, 고수준 함수형 언어가 저수준 시스템 API와 어떻게 긴밀히 결합되어 매우 생산적인 개발 경험을 만들 수 있는지를 보여주는 연구입니다.

통합의 힘: Macintosh Toolbox

MCL의 가장 큰 특징은 Macintosh toolbox(후에 Apple Carbon)와의 매끄러운 통합이었습니다. 당시 많은 Lisp 구현체가 독립적으로 동작하거나 일반적인 래퍼에 의존했지만, MCL은 시스템 접근을 위한 이중 레이어 방식을 제공했습니다:

  1. Low-Level Interface: 개발자들이 Lisp 내부에서 네이티브 Mac OS 데이터 구조를 직접 조작할 수 있게 했습니다. 이는 성능에 민감한 작업과 고수준 API가 아직 지원하지 않는 기능을 구현하는 데 필수적이었습니다.
  2. High-Level Interface: 보다 편리하고 Lisp 친화적인 레이어로, 일반적인 작업을 단순화하여 개발 주기를 빠르게 했습니다.

이러한 시너지 덕분에 MCL은 빠른 애플리케이션 개발을 위한 강력한 도구가 되었습니다. 실행 중인 프로그램을 수정하고 그 결과를 네이티브 Mac 창에서 즉시 확인할 수 있는 능력은 혁신적인 경험이었습니다. 이 기능은 2001년 Dr. Dobb's Journal 기사에서 피터 노르빅(Peter Norvig)이 다음과 같이 언급하며 인정받았습니다:

"MCL is my favorite IDE on the Macintosh platform for any language and is a serious rival to those on other platforms."

격동의 진화 역사

MCL의 개발은 1984년에 시작되었으며, 이후 수십 년 동안 하드웨어가 Motorola 68k에서 PowerPC 아키텍처로 전환됨에 따라 여러 차례 이름 변경과 소유권 이전을 겪었습니다.

68k 시대

초기에는 상업용 Lisp 시장의 변화하는 환경을 반영하여 소프트웨어가 여러 이름으로 불렸습니다:

  • Coral Common Lisp (1987)
  • Macintosh Allegro Common Lisp (1987)
  • Apple Macintosh Common Lisp (1988)

PowerPC 전환

1994년까지 구현은 Digitool Macintosh Common Lisp으로 브랜드가 변경되었으며, 이는 PowerPC 기반 Mac에서의 안정성과 성장의 시기를 나타냈습니다.

독점에서 오픈 소스로

MCL은 대부분의 기간 동안 독점 제품이었습니다. 그러나 2000년대 후반에 도구의 유산을 보존하기 위해 오픈 소스로 전환하는 움직임이 있었습니다.

  • MCL 5.2: 이 버전은 결국 오픈 소스로 공개되어 커뮤니티가 핵심 구현에 접근할 수 있게 되었습니다.
  • RMCL: 2009년에 RMCL이라는 다른 버전이 출시되었습니다. MCL 5.1을 기반으로 한 RMCL은 PowerPC 코드를 Intel 기반 Mac에서 실행할 수 있게 해주는 Apple의 바이너리 변환 소프트웨어인 Rosetta 아래에서 동작하도록 설계되었습니다. 이를 통해 환경이 최신 하드웨어로의 전환을 견뎌낼 수 있었습니다.

지속적인 영향: Clozure CL

MCL의 가장 중요한 유산 중 하나는 **Clozure CL (CCL)**의 탄생입니다. 원래 OpenMCL로 알려졌던 CCL은 1998년에 별도로 유지되는 포크로 등장했습니다. 원본과 달리 CCL은 크로스 플랫폼 구현으로 발전하여 MCL 프로젝트의 정신을 이어가면서 Apple 생태계를 넘어 그 범위를 확장했습니다.

오늘날 MCL은 클래식 Mac OS의 유물일지 모르지만, 고수준 언어와 네이티브 OS 환경 사이의 관계에 대한 우리의 사고 방식에 그 영향이 지속되고 있습니다—올바른 통합이 개발 환경을 프로그래머의 사고를 확장하는 진정한 도구로 만들 수 있음을 증명합니다.

Sources