時代は今、Curses へ

caml-list より:

Dear caml-list,

I'm writting a program and I'd like to set up a menu in a terminal.

I'd like to learn from your experience and if possible to be put in a good direction. I'm studying the Curses module but there is a lack of documentation. Do you use it or something else ?

いつも放言しか書かないこのブログだが、これもいたって真面目な放言。OCaml の UI はこれからは Curses。まぁもっちょっと譲って CUI

  • スケーラブルじゃない。LablGtk は(直そうとはしてるけど)あんまりスケーラブルじゃない。List box に何千個もエントリを入れたり消したりしてると、、、GC がすごく遅くなって使えなくなる。これは LablGtk の問題でもあるし、OCamlGC にも問題がある(あったと言うべきか)し、Gtk 自体にもあるかもしれない。ちゃんとスケーラブルな物があればいい、という問題ではある。
  • 判っていない。関数型言語プログラマGUI のことが判っていない。理論的には、ああいう大規模な event driven なプログラム中のアルゴリズムのオーダーとかメモリ使用量とか、正直、判らずに使っている。不安。
  • センスがない。関数型言語プログラマは大抵においてアート感がないので、ウィジェット配置のセンスがない。

というわけで CUI 最強。

  • Curses の表面だけ使ってればスケーラビリティは自分で担保できる
  • スクリーン描画の寸前のコードまで、自分で書くから多い日も安心
  • 俺たちの貧弱なセンスでも CUI なら大して見劣りしない、てか、レトロ感が出てかえっていいんじゃね?
  • どうせ俺たちボタンをチクチク押してる内に、めんどくさくなってコマンドラインからネットワーク越しにバッチで命令送り込むプログラム書いちゃうし、ボタンとかぶっちゃけいらねぇ
  • 中身が良けりゃ誰かが自分の時間使って GUI ラッパ書いてくれるし

追記

いや、GUI があかん言うてんのとちゃいますよ。ある非常にニッチな分野ではそう考えることもある、言ぅことですわ。ご参考にしてくださいー。(生活笑百科を見ながら。仁鶴師匠は変わらんのー。アゴ本君も。上沼さんは、、、まあ言うまいよ)