質問: common lispでツールを作成しようとしているのですが、オススメのGUIのライブラリにはどのようなものがあるでしょうか? ltk(tcl/tk)や、commonqt(qt)、cl-gtk(GTK)などたくさんあって困っております。ただし、MacOSX と Windows7 で利用できるものでお願いします。また、一長一短あると思いますので、それもお願いいたします。
回答: まず、現時点(2015年5月)のCommon Lispで、処理系共通でマルチプラットフォームなGUIツールキットで「GUIといえばこれ」というようなものは無いと思います。 ですので、現状では、「沢山あって困る = 調査と学習のオーバーヘッドが大きくなって困る」という感じかなと思います。 Ltk 作成するツールによると思いますが、MacOSX と Windows で共通で、ツールキット自体の学習コストも低いということになれば、Ltk位ではないでしょうか。 * LtkでGUIの練習―オセロ盤 LispWorks CAPI / Allegro CL Common Graphics 他に、MacOSX と Windows で共通で使えてかつ導入コストの低さを優先で考えると、LispWorksのCAPIと、Allegro CLのCommon Graphicsがあります。 LispWorksもAllegro CLも商用の処理系ですが、作成するアプリケーションによっては十分検討の余地があると思います。 両者ともどちらかと言えばWindowsに手厚いです。 商用の処理系ですが、単体のアプリケーションを出荷するとなると、実行ファイル作成の機能と併せて割と現実的な選択になってきます。 CommonQT / cl-gtk2 GUIツールキットの学習のオーバーヘッドは勘案しないとすれば、`CommonQT`、`cl-gtk2-gtk`あたりがあるのではないでしょうか。 これらツールキットのバインディングは何か問題が発生した場合、ツールキット自体の知識とバインディングの知識がないと対処できないことが多いと思います。 CLIM Common Lispには、昔から`CLIM`というLispネイティブなGUIの環境があり、非常にLisp的ですが、現状ではあまり整備されていないので、手軽ではありません。 lispbuilder-sdl (SDL) ある画面で完結している(ゲーム等)ならば、`lispbuilder-sdl` を利用している人は割と多いかもしれません。 まとめ 作成するツールによると思いますが、画面を表示してボタンをポチっと押したり文字を入力する位なら、`Ltk` が手軽で良いのではないでしょうか。