アカウント名:
パスワード:
1. キーボードで操作するCLI 2. キーボードで操作するGUI 3. ポインティングデバイスで操作するGUI
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
私は悩みをリストアップし始めたが、そのあまりの長さにいやけがさし、何も考えないことにした。-- Robert C. Pike
ふつうかなぁ...と思いつつ... (スコア:1)
Re:ふつうかなぁ...と思いつつ... (スコア:1)
CLIを見直す姿勢は基本的には支持たいのですが,一方,なぜかUNIX由来のGUIツールに限っては,Windows以上にポインティングデバイス依存しているものが少なくないような印象です。もちろん最近のツールキットを利用しているものなら良いのですが,ダメなものはとことんダメだったり。
個人的にはグラフィカル・キーボード・インターフェース(仮称)なソフトウェアを提唱したいです。
上の中では,個人的には 2 を歓迎します。
Re:ふつうかなぁ...と思いつつ... (スコア:2)
例えば
Ctrl+F → 検索ダイアログ表示 → キーワード入力 → Enter
でテキストを検索を行うソフトは多くあります。
しかしそれらのソフトのほとんどがCtrl+Fを押してから検索ダイアログが出る前にキーワードを入力してしまうと上手く動きません。
伝統的なCUIソフトの場合どんなに速く入力してもそれは1つのキューに溜められて1つの集中管理されたイベント処理ルーチンが1つずつ逐次処理していきますので正常に動作します。
しかし現状のたいていのウインドウシステムではイベント処理は分散され、各ウィジェットに割り当てられたイベントハンドラが処理を行います。
別にイベント処理を分散することは自体は問題ありません。オブジェクト指向としても自然です。
問題はイベントのディスパッチがウィジェットが表示されているかどうかに依存していて、しかもイベントのディスパッチを行うスレッドとウィジェットの表示を行うスレッドが非同期に動いている別のスレッドだという点です。
これは単純に2つのスレッドを同期させれば(細かい問題はいろいろありますが)解決できます。そうすれば伝統的なCUIのソフトのようにウィジェットを表示するのに時間がかかっても入力は遅れながらも正しく処理されます。
しかし、本当にこれでいいのでしょうか。
こうしてしまうと今度は逆に、ウインドウを表示した後、元のウインドウを操作しようとしても新しいウインドウが表示されるまで操作ができません。そもそもGUIでは操作対象はすべて目に見えるものであるべきです。見えないものが入力を受けとれる状態はセキュリティーの問題にも繋がります。
ではどうしたらいいのでしょうか。
どちらのイベントディスパッチ方法も一長一短なのであればディスパッチ方法をユーザーが明示的に指定してやればいいのです。
そしてGUIの枠組み内でそれを自然に行うにはコマンドをオブジェクト化すればいいのです。
つまりユーザーの操作はこうなります。
Ctrl+F → コマンドオブジェクト作成開始コマンド入力 → 検索キーワード入力 → Enter → コマンドオブジェクト作成終了コマンド入力 → 検索ダイアログが表示されたところでコマンドオブジェクトを検索ダイアログに適用
こうすればウインドウの表示されるタイミングに影響されずに入力を行うことができます。
また、この方法ではコマンドオブジェクトを使わない場合操作は従来のままとなり、初心者や既存の操作方法に慣れたユーザーを惑わせません。
もし、この方法でも検索ダイアログが表示されるのさえ待てないと感じるならば、それは検索という操作を検索ダイアログに対して行うものではなく文章そのものに対して行うものと考えているからです。よって検索ダイアログを使わずに検索コマンドを直接文章へのコマンドとして実装するべきです。
#イベントディスパッチをどのレベルで止めるのかとかいろいろ考える必要があります。
Re:ふつうかなぁ...と思いつつ... (スコア:0)
良くもあり悪くもあり
# アプリがキュー放さないで死んじゃうとねぇ
Re:ふつうかなぁ...と思いつつ... (スコア:0)
Ctrl+Fから始まる遷移は、ユーザの操作というよりはユーザがキーボードで
何かを入力することによってプログラム側のオブジェクトはこういう風に生成されるよ、
というのを表しているだけだと思うんだけど、
見えないところに対して入力するのってそもそもGUIと言えるのだろうか。
Re:ふつうかなぁ...と思いつつ... (スコア:1)
>見えないところに対して入力するのってそもそもGUIと言えるのだろうか。
ですのでコマンドオブジェクトを生成します。
>検索ダイアログと置き換えダイアログが共通である設計のソフトの場合
>フォーカスがどこに当たっているか指定できないという問題もあるし。
それはCUIのソフトでも検索文字列と置き換え文字列のどちらを先に入力するかわからないので同じです。ここではソフトに十分慣れたユーザーを前提に話をしています。
>それと、オブジェクト指向はいいけど、操作上の問題になるほど検索ダイアログの表示が遅いのは設計に問題があるんじゃない?
2点。
検索ダイアログはあくまで例でありもっとウィザードなど初期化に時間のかかるダイアログがあるかも知れない。
コンピューターがビジーであれば小さなダイアログボックスでも表示に時間がかかる。
確かに人間様の扱うUIがバックグラウンド処理ごときでもたつくのは設計に問題がありますが、いくらスレッドの優先順位を調整しても限界があります。周辺機器から割り込みがたくさん入っていたり複数人でコンピューターを使っていたり。
Re:ふつうかなぁ...と思いつつ... (スコア:0)
>>周辺機器から割り込みがたくさん入っていたり複数人でコンピューターを使っていたり。
処理能力を超えた物はCUIであろうがGUIであろうがなにやってもだめ
Re:ふつうかなぁ...と思いつつ... (スコア:0)
まあ負荷が高くなくてもネットワーク越しに使えば検索ウインドウが遅れることなんか普通にあるな。
Re:ふつうかなぁ...と思いつつ... (スコア:1)
Re:ふつうかなぁ...と思いつつ... (スコア:0)
Ctrl + F で検索ウィンドウが出るのは良いけど、
Alt + U / Dとかで検索方向を変更出来なかったりするしね…。