Macintosh Common Lispの遺産:LispとMac OSをつなぐ
多くの開発者がクラシック Mac OSで育った中で、Macintosh Common Lisp (MCL)という名前は、急速なプロトタイピングと深いシステム統合の特定の時代を呼び起こします。そのピーク時に、MCLは単なるコンパイラではなく、開発者がCommon Lispの力を活用しながら、Appleプラットフォーム上でネイティブな感覚と機能を維持できる包括的な統合開発環境(IDE)でした。
MCLを理解することは、コンピューティングの歴史の教訓以上のことであり、ハイレベルな関数型言語がローレベルなシステムAPIとどのように密結合され、極めて生産的な開発体験を生み出すかを研究することです。
統合の力:Macintosh Toolbox
MCLの特徴的な特性は、Macintoshツールボックス(後にApple Carbonも含む)とのシームレスな統合でした。当時の多くのLisp実装は真空状態で動作したり、ジェネリックなラッパーに依存していたのに対し、MCLはシステムアクセスに二層構造のアプローチを提供しました:
- Low-Level Interface: これにより、開発者はLisp内からネイティブなMac OSデータ構造を直接操作できるようになりました。これはパフォーマンスに敏感なタスクや、ハイレベルAPIがまだサポートしていない機能を実装する上で重要でした。
- High-Level Interface: より便利でLispらしいレイヤーで、一般的なタスクを簡素化し、開発サイクルを速めることを可能にしました。
この相乗効果により、MCLは急速なアプリケーション開発の強力なツールとなりました。実行中のプログラムを変更し、その結果をネイティブなMacウィンドウで即座に確認できる能力は、変革的な体験でした。この機能は、2001年のDr. Dobb's Journalの記事でPeter Norvigによって認められ、彼は次のように述べました:
"MCLはどの言語にも対応したMacintoshプラットフォームでの私のお気に入りのIDEであり、他のプラットフォームのものと真剣に競争できるものです。"
進化の激動の歴史
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はRosetta、つまりPowerPCコードをIntelベースのMacで実行できるAppleのバイナリ変換ソフトウェアの下で動作するように設計されました。これにより、環境は最新のハードウェアへの移行を乗り越えることができました。
持続的な影響:Clozure CL
MCLの最も重要な遺産の一つは、**Clozure CL (CCL)**の誕生です。元々はOpenMCLと呼ばれていましたが、CCLは1998年に別途メンテナンスされるフォークとして登場しました。親とは異なり、CCLはクロスプラットフォームの実装へと進化し、MCLプロジェクトの精神を受け継ぎながら、Appleエコシステムを超えてその範囲を拡大しました。
今日、MCLはクラシック Mac OSの遺物かもしれませんが、その影響は、ハイレベル言語とネイティブOS環境の関係についての私たちの考え方に残り続けています。つまり、適切な統合により、開発環境がプログラマーの心の真の延長となることを証明しています。