osiire’s blog

ふしぎなそふとやさん

Re: 時代は今、Cursesへ

時代は今、Curses へ - Oh, you `re no (fun _ → more)について。
いや、放言なんてことなくて、結構本質を捉えてらっしゃると思います。私が感じるその本質とは、このCurses最強の理由にあります。

  • Curses の表面だけ使ってればスケーラビリティは自分で担保できる
  • スクリーン描画の寸前のコードまで、自分で書くから多い日も安心

つまり、「CUIに比べてGUIプログラムは自分で制御できねー事多すぎだ、ボケ」という叫びだと解釈できます。実はこーゆー感想は、実際にGUIプログラムで苦労した人からしか出てきません。
考えてみれば、制御できねー事多すぎなのはある意味当り前なのです。GUIプログラミングって言うのは、グラフィックを直接扱うことはあまりなく、実際にはウィジットを扱います。このウィジットがCUIで言うところの文字に対応します。ですので、CUIでも文字の中身までは自由にできない(笠の竹冠だけ表示しないとか無理)のと同じで、ウィジットを扱うGUIでもウィジットの中身までは(あまり)自由にできるようにはなっていません。GUIはアプリケーションを越えて統一された操作感を提供できなければならないという考え方も影響していると思います。(加えて、私はオブジェクト指向言語の弊害が影響しているとも思っていますが、話題が逸れすぎるので省略。)
しかし、実際問題として、自由にできない構成単位としてウィジットは大きすぎるのです。だから嫌がられるのです。特に自分で色々自由にやりたい職人にとってはなおさらです。
ではどうすればいいのか?一番簡単な解はウィジットを捨てることです。代わりにテキストとベクトル描画だけを扱うことにするのです。所謂スプライトシステムという奴です。これをうまくやっているのがFlashで、FlashのアプリケーションはウィジットこてこてじゃなくてもGUIとしてちゃんと機能している例をよく見ます。ただし、この解は業務用システムのようなデータ入力が重視されるインターフェイスの場合には通じません。
もう一つの解は、頑張ってウィジットに自由を!を実践することです。そのためには....

あぁ、段々果てしなくなってきたのでこの辺で止めます。おやすみなさい。