「大きくてかさばる獣は、足から足へとぎこちなく歩きます。 熊はひどく踊っているが、奇跡は彼がうまく踊るということではなく、一般的に踊るということだ。
インターフェイスに関するアラン・クーパー、「患者の手にある精神病院」

多くの場合、GUIとコマンドラインは互いに対照的です。 さらに、GUIファンにとってはGUIファンが利点だと考えるものは欠点です。 そしてその逆。 「GUIは自己文書化インターフェースです。 -最初のものは、「適切に設計されたGUIを理解するために指示を読む必要はありません。それを見て、メニューを開き、別の、3番目、数分(または数秒)後に必要なことを行います。」 「10回目または100回目はどうですか?」 -2番目のオブジェクト。 -この豊富なボタンとアイコンはすべて、迷惑な視覚ノイズに変わり、作業を妨げます。 速度はどうですか? 複数レベルのメニューを歩くことは、キーボードコマンドの速さと比較できますか?”“速さ、話せますか? 「最初の質問に答えます」「Vimから抜け出すために、何百ページもの小さな印刷物のマニュアルを勉強するのも速いですか?」
この議論は数段落に拡張できますが、これについて考える方が良いでしょう。各インターフェースの欠点に耐えることは本当に必要ですか? 同じくらい速く、素早くハーネスして乗ることは可能ですか? 結局のところ、GUIの支持者はボタンやカラフルなアイコンがあまり好きではなく、学習のしやすさが大好きです。 グラフィカルインターフェイスエンジニアリングの傑作は常に簡単で簡潔です。色の暴動やボタンの配置を見つけることはできません。 ただし、コマンドラインファンはモノクロの禁欲主義ではなく、コンソールの速度、控えめさ、予測可能性に関係しています。 同じVimの豊富なカラーシンタックスハイライトスキームを見て、厳しいコンソールゲーマーも美しいことを愛するようにしてください。
バレリーナほど悪くない熊のダンス、目を怒らせない大きくて美しいグラフィックのヒント、勉強する必要のない柔軟で強力なキーボードコマンドと略語のインターフェイスは素晴らしいです。 しかし、ありません。 そのようなインターフェースはすでに存在します。 何らかの理由でのみ、彼らはかなり狭いニッチを占有します。 しかし、それらについては少し後で。
通常のGUIを作成することは、CLIよりも桁違いに困難です。 さらに、これは単なる時間のかかるプロセスではありません。プログラマに固有のものとはまったく異なる知識、経験、考え方が必要です。 それが、奇妙で珍しいコマンドラインオプションが通常わずかな戸惑いを引き起こすのはそのためです。しかし、いくつかのGUIはホワイトホットにつながる可能性があります。 GUI要件は、相互に排他的な段落の表現例です。 マウスの最初のクリックですべてが表示され、アクセス可能である必要があります。また、現在のタスクのコンテキストで余分なものは表示されません。 キーボードを接続する必要があり、GUIの主な利点-開発の容易さ-はすぐに消えます。 これらすべてのCtrl + Alt + Shiftを覚えてみてください!
コマンドラインは、このゴーディアンノットを、それを解明しようとすることなく切断します。 ユーザビリティCLI-値はどのプログラムでもほぼ一定です。 キーボードコマンドを表現できないほどひどく混乱させることはほとんど不可能です。 しかし、前例のない高さを実現することもできません。
優れたインターフェースを設計するための鍵は、コードの再利用です。 ソフトウェアだけでなく、遺伝学も。 物理インターフェイスの設計者は、この真実をよく学んでいます-オブジェクトに人間と互換性のある形式を与えます。 手のひらに心地よく収まるハンドル、目の高さのインジケーター、明確に調整された押圧力のペダルは、数百万年にわたって進化してきたライブラリを積極的に使用して、実世界のオブジェクトと対話します。 これにより、インターフェイスが直感的になります。
しかし、私たちの脳はそれほど単純ではありません! 手、足、目の低レベルの「ドライバー」に加えて、他の生物と通信するためのはるかに複雑なプログラムが頭にあります。 そして彼らはコンピューターについて何も知りません。 複雑な振る舞いを持つ無生物は自然界には決して存在しなかったため、私たちの遺伝子ライブラリーはコンピューターを生き物と見なしています。 これは、インターフェース設計にとって非常に重要な事実です。 生物は、無生物とは根本的に異なります。 ボタンとレバーは使用できません。 彼らはあなたがあなた自身をカスタマイズすることを許可しませんが、彼らは適応することができます、彼らはイニシアチブを取り、感情に反応します。
典型的な最新のグラフィカルインターフェイスに直面したときに、潜在意識がどれほど混乱するか想像してみてください。 生き物が彼の前にいることは彼にとって明白です-まあ、石、木または水は彼らの心にあるようにそれほど激しく振る舞うことができません。 同時に、このクリーチャーは感情的な接触を確立しようとする試みにまったく反応しません。 さらに、それはそれと通信する人々を覚えて、彼らの習慣を考慮に入れ、彼らの意図を推測しようとさえしません。 それは明らかに重度の自閉症に苦しんでいます。 結局のところ、このアプリケーションを書いた人は、一種のツールボックスの形でそれを想像していました-ここにはハサミ、ここには虫眼鏡、ここには定規があります。 そして一般的に-これはコンピューターの記憶にある一連の指示であり、どのような生き物がいるのですか?
もちろんそれは本当です。 すべての人が臓器の単なる歩行セットであるという事実と同様に、音楽は音響振動の組み合わせであり、絵画は着色物質が塗布された平面です。 ただ、私たちの脳はこれに同意しないのではないかと心配しています。 そして、私たちは彼の意見を考慮しなければなりません-近い将来にファームウェアの更新を待つことはありません(それは必要ですか?)。 デバッガーまたははんだごてを使用するための最高の技術的および能力にもかかわらず、私たち一人一人の中に、このような獣があります:
ライブプログラムは非常に強力な比phorです。 プログラムと人間の相互作用は、2つの生物のコミュニケーションです。 各プログラムは、使用人、部下、コンサルタント、またはコマンドでcommandえ、スリッパを持って来ることができる少なくとも愛犬です。 コミュニケーションをとることが楽しく、丁寧かつ合理的に行動する生き物。 彼らは能力の限りでは独立しており、私たちに興味を持っています-好みを覚えて、私たちの習慣に適応してください。 ああ、そのようなプログラムはどれほど少ないのでしょうか...もっと頻繁に、彼らは失礼、失礼、そして愚かです。
プログラムの振る舞いを生き物の振る舞いにより類似させる方法は? GUIについて話している場合、かなりの量のクリーニングが必要です。 動物や人は飛行機のダッシュボードのようなものではありません。 耳、目、手(足)、顔の表情、姿勢、ジェスチャー、スピーチなど、「指標」と「統治体」はわずかしかありません。 しかし、それらは普遍的であり、はるかに有益です。
コマンドラインを使用すると、逆になります。 彼女は口頭でのコミュニケーションをサポートしています(ただし、これは通常、文字、句読点、単語のスニペットのある種の悲惨な専門用語であり、Ellochkaの共食いのスタイルです)が、視覚的な合図はありません-非言語的コミュニケーションの類似物です。
どちらのタイプのインターフェイスも、特定の人に等しく不十分に適応されます。 チームは時間をかけて変更することはできず、最も頻繁なアクションに縮小して適応することはできません。 グラフィカルインターフェイスも同じです。要素の形状、サイズ、位置は厳密に設定され、固定されています。 もちろん、設定を変更する機会もありますが、これは生き物とコミュニケーションをとるときはまったく不自然です。これは、メスで人を開き、手を交換するのと同じです。
そこで、約束されたプログラムに、コマンドラインとして不調和で静かで目立たない、良いGUIのように学習しやすく、キュートで、生き物のように柔軟なインターフェースを提供する時が来ました。 これらは「ランチャー」です
-Gnomeは Ubuntuで、Windowsでは
Launchy 、Mac OSでは
Quicksilverで実行します。 今まで、そのようなインターフェースが可能な限り使用されない理由を私は絶対に理解していません。 私は彼と最も頻繁にやり取りするので、Gnomeのことについて詳しく説明します。
このかわいい動物は静かに記憶に座っており、条件付きホイッスルと呼ばれるまで待ちます-win-space。 彼はいつも画面の真ん中に現れ、賢い四角い目で私を見て、コマンドを待っています。 彼が入力する最初の文字で、彼は私が欲しいものを推測しようとし、名前に入力された文字が含まれているプログラム、フォルダー、およびファイルをリストし、彼の目にはリストの上部にあるオブジェクトのアイコンまたはサムネイルを反映します。 しかし、彼は私の以前の行動を覚えています。 だから、Operaをインストールしたばかりのとき、「o」、「op」、「ope」に応答して「Open Ofiice Writer」を想定していたため、「oper」と入力して起動する必要がありました。 しかし、彼は速く学んでいます。 そして数日後、彼は最初の手紙からOperaを提供し始めました。 彼の大きな表情豊かな目のお陰で、おなじみのロゴがはっきりと見えます。たとえあなたがモニターの向こう側を見ても。 今では、キーボードから手を離さずに、メインアプリケーションを起動し、頻繁に使用するフォルダーやドキュメントを思いのスピードで開きます。 同時に、コンソールコマンドとは異なり、3〜4文字を超える文字を入力する必要はほとんどありません。
Gnomeは、メインメニューとアプリケーションのショートカットを完全に置き換え、一部はファイルマネージャーを置き換えます。 開始するには、キーの組み合わせを1つだけ覚えておく必要があります。 また、Tabの使用にまだ慣れている場合は、Gnome doでほとんど何でもできます。
たくさんの機能を持つ複雑なアプリケーションに同じものを埋め込むことを妨げるものは何ですか? 何十ものメニュー、ボタン、スライダーを常に目に見える状態に保つのはなぜですか? かっこいい? プログラムの優れた機能が使用されないことを恐れて? それとも、習慣の力ですか? わからない...
インターネットの状況はさらに悪化しています。 ここでは、キーボードの存在はほとんど忘れられています。 おそらく、古き良き時代のフィドシニクの懐かしさのかなりの部分は、実際にはテキストモードに関連しています。 現在、大規模で成熟したサイトには何百ものセクション、カテゴリ、その他の隅々が含まれており、これらのセクションをマウスだけで歩く必要があります。 時々、思いやりのあるWebデザイナーがCtrlキーを押しながら矢印を使用して、ギャラリーを写真でスクロールします。 それに、サイト上の検索バー(マウスで照準を合わせる必要があります)。 任意の2ページ間で大切な3回のクリックを実現するために、メニューの異なるレベルが上下、左右、反対側に配置され、パン粉を振りかけます。
マウスなしで完全なナビゲーションが可能な単一のサイトを見つけることができませんでした。 ページ上の数十、またはより頻繁には数百のアクティブな要素間でタブを切り替えることは、人のm笑です。 AJAXを使用して入力中のサイトのライブ検索は、サーバーのm笑(および非常に顕著なブレーキ)です。 少なくともGnome doに似たインターフェースを介してサイトでどのように機能するかを試すには、自分でそのようなインターフェースを作成する必要がありました。 実験的な近親者からの自分の印象とフィードバックが最もポジティブです。 ここにすべてがライブであると感じることができる
デモサイトがあります。 非常に珍しい感覚-マウスに触れることなくサイト内を自由に移動できます!
ライブインターフェイスのもう1つの良い例は、
Aardvarkです。 これはQ&Aサービスですが、ask.comやその他とは異なり、私は尋ねるよりも頻繁に答えます。 それは、リンクやボタンがたくさんあるカラフルなWebページではなく、Googleトークの連絡先の1つとして見えるからです。 私の潜在意識は、連絡先リストの人物とロボットの違いを見ません。 遺伝的プログラムはこのインターフェースをサポートしています。
一般に、優れたインターフェースは表示されず、必要になるまで(GUIとは異なり)聞こえず、完全に理解できます(コマンドラインとは異なります)。 ギブもテイクも完璧な僕ではありません。
このようなインターフェイスを作成することは困難です。 しかし、この複雑さは報われるでしょう。 彼と一緒にいる人にとっては簡単でしょう。 非言語インターフェースは現在活況を呈しています-マルチタッチスクリーン、顔、ジェスチャー認識。 コマンドラインには大衆デバイスの未来はないようです-彼らはしばしばキーボードも持っていません。 しかし、遅かれ早かれ、コンピュータは自信を持ってライブスピーチを認識し、音素のストリームを文字のストリームに変換することを学習します。 しかし、キーボードまたは音声認識モジュールから、このストリームがどこから来たかは本当に重要ですか? 同じコマンドライン。 はい、パターン認識後の音声、ジェスチャー、および表情は文字または単語に変わります。
今日のインターフェイスは、原始的な無条件反射のように、信号をコマンドとして認識します。 もちろん、これは絶対的な制御を提供しますが、可能性を大きく制限します。 少なくともファジー検索用の原始的な正規表現の助けを借りて、着信信号の意味を「推測」する最も控えめな試みでさえ、プログラムとの相互作用を大幅に改善します。 たとえば、IDEおよび高度なテキストエディタの最も便利で便利な機能の1つは、同じ名前で数文字の名前(ファイルに移動、リソースに移動、FuzzyFinderなど)を入力することで、プロジェクトファイルに即座に移動できることです。 Googleのライブ検索。 Gnomeは同じことを行います。 人はコンピューターに適応し、チームを詰め込み、グリッチに慣れ、小さなボタンを正確に狙うことを学ぶべきではありません。 これらのコンピューターは、人に適応し、習慣を研究し、タイプミスを修正する必要があります。 そして、彼らがそれをうまくやるなら、多分ナッツのようにチューリングテストはクリックするでしょうか? ただし、Googleによると、彼らはすでに最善を尽くしています。
UPD: Habrの集合的な心のおかげ-記事で説明されているグラフィカル環境でコマンドラインを操作する適応スタイルを実装するコメントに浮かび上がった非常に興味深い例
-Firefox Ubiquityのプラグイン、
YubNub Webサービス、デスクトップランチャー-計算機-スペル
チェッカーなどなぜ
エンソ