GUI には、標準というか、一般化したコントロール表現がいくつもあります。ウィンドウやスクロールバー、テキストボックスやラジオボタンなどのフォームコントロール、メニューバーやツールバーなどです。その中でも、「プッシュボタン」は最も代表的な GUI 要素として語られることが多いと思います。
しかしそれはちょっと違うのではないかと思っています。
確かにボタンは、現実世界のメタファーを使っているとか、操作対象として目に見えるようになっているといった、GUI の特徴をよく備えています。
しかしボタンによって入力できるのは0か1かの「1」という論理値のみであり、無限段階のアナログな操作から最も遠い、極端にデジタルなインタラクションを強要するものなのです。
ボタンが便利なのは、ボタンを押し下げるというノイズの無い単純な操作で複雑な処理を実行できるところにあります。これは現実世界の機械でも同様です。システムの内部にどんなに複雑なアルゴリズムや機構があったとしても、それはユーザーに対して完全に隠匿されています。
別な言い方をすれば、ボタンの押下はバッチ処理を開始するための合図であり、間接的な操作なのです。そこにあるボタンを直接押せるという意味では直接操作なのですが、そもそもボタンはユーザーが着目している操作対象ではなく、シンタックスにおける「動詞」の選択肢にすぎないのです。
動詞の指定という操作は、インタラクションの「フロー感」をスポイルします。ユーザーの意識が、対象物の状態から所定のコマンドに移ってしまうからです。
つまり本当は、ボタンが全然無いような画面の方が良いのです。
ボタンは、道具としての機械が複雑化してきた過程において、直接操作の実現を放棄した挫折のユーザーインターフェースなのです。