Hemlockとは
Hemlockは、
Unixシステムに準拠した
POSIX対応の
テキストエディタで、
Emacs系に属している自由
ソフトウェアです。このエディタは、
Lispマシン向けの
ZWEIエディタや、その後のITS/TOPS-20用
Emacsのバージョンの流れを受け継いでいます。特筆すべき点は、Hemlockが
Emacs Lispと
C言語の組み合わせで作られた他の
Emacs系エディタ(たとえばX
EmacsやGNU
Emacs)とは異なり、
Common Lispで
実装されているということです。
歴史と概要
Hemlockの開発は、初めに
PERQコンピュータ用としてSpice Lisp(現在の
CMU
Common Lispの一部)で行われました。その後、
CMU
Common Lispの開発環境として統合される形で、コンパイラとインタプリタと共に利用されています。また、Hemlockは独立したエディタとしても使用できる柔軟性を持っています。
CMU
Common Lispという環境では、GNU
Emacsとの連携も可能ですが、Hemlockではより密に統合された機能が提供されています。ただし、エディタの拡張性や編集機能については、GNU
Emacsに比べて若干の制約があります。
ユーザーインターフェース
Hemlockの特徴の一つは、Lispの関数名と対話コマンド名を明確に分離している点です。このスタイルは、MIT系の
Lispマシンで使用されていたZmacsやTE
CO
Emacsを受け継ぎ、自然言語に近い操作性を実現しています。また、ターミナル表示や
CLXライブラリを用いたX11環境における表示機能も備えており、多様なユーザー環境に対応しています。
派生エディタ
Hemlockは多くの派生エディタに影響を与えており、例えば
Clozure
CLのmacOS版の開発環境には、
Cocoa上で動作するHemlockのコードをベースにしたエディタがあります。また、
LispWorksのエディタは、Hemlockの初期バージョンを元にしており、WindowsやmacOS、X11/Motif、Gtk+のようなマルチプラットフォームでも稼働します。さらに、Liquid
Common Lispでも利用可能です。
Lucid
Common Lispが提供していたHelixエディタもHemlockを基にしています。加えて、Portable Hemlockというプロジェクトがあり、これは様々な
Common Lisp環境で動作するポータブルなHemlockの
実装です。これにより、Hemlockは多岐にわたるプラットフォームで利用されることが可能になっています。
結論
Hemlockは、その独自の
実装と機能によって、特にLispプログラミングに特化した
テキストエディタとして高い評価を得ています。
Emacs系のエディタが持つ多様性と機能性を保持しつつ、
Common Lispに焦点を当てた設計は、多くの開発者にとって魅力的な選択肢となることでしょう。