「謎のEjectボタン」について

2013-11-06 06:47

今のInfinite loop campusに存在しているらしい「謎のEjectボタン」について、表のブログに書きました。

Newtonの失敗については、おそらく多くのことが語られていると思うし、これからも語られるだろう。(もちろん「失敗していない!」という言説もたくさんあると思う)

Newtonの失敗の理由で一番わかり易いものは、表のブログに書いた「新しいものを一度にいくつも製品に盛り込んだこと」である。開発言語とそれを使うアプリを同時に作り出す、というのはエンジニアにとってみれば悪夢のような状態だ。

しかしここでは別の事について書きたい。

Newtonが試みそしてその後何度もトライされ結局物になっていないコンセプトに「手書き入力」というものがある。私の考えではこれは「音声入力」と同じ「嘆きの壁」にぶつかる方向性なのだが、そのことに気がついていない人が多いようだ。それについて少し書いてみたい。



No UI、掲げるのは簡単だ。


 たぶんこれまでの歴史で、無数のエンジニアが、デザイナーが、「シンプル」を突き詰めた形としての「No UI」というコンセプトにはたどり着いただろう。



 誰だってシンプルにしたい。


 UIなんか、できるだけ自然な方が良い。


via: Fly me to the enchantMOON 僕がenchantMOONと出会った日 - UEI shi3zの日記

「UIなんかできるだけ自然な方が良い」

これは力強い言葉だ。そして「自然」という言葉について深く考えない人は

「そうか!じゃあ人間の思考を手書きや音声で入力させれば自然なUIが実現できるね!」

と喜ぶ。実装を始めるとなかなかうまくいかない。しかし

「いや、これはまだ実装の精度が高まっていなからで、精度を高めればこれはいいものになる!」

と言い続ける。そしていつのまにかその製品はどこかに消える。そうしたことはもう過去に何度も繰り返されている。

手書き認識や、音声認識の精度は高まり続けているのになぜこうしたことが繰り返されるのだろう?
--------

画面にボタンを配置し、それをタップさせる。これは偉大な発明である。(誰がいつしたかの議論についてはよく知りません)しかし人間は突拍子もないことを思いついたり、メニュー階層のかなたにある機能を使いたい、と思ったりする。では◯◯認識を使いましょう。

しかし

◯◯認識を使って「自然なインタフェース」を実現する

という言葉には実は2つの問題が潜んでいる。

問題その1:人間の入力をコンピュータに認識させる
問題その2:認識させた結果からコンピュータに「人が望む動作」を行わせる

「精度を上げればいいものになるんです!」と言い続ける人はこの「問題その2」に気がついていない。やっかいなことに問題その2は問題その1よりはるかに難しく、かつ誰もその「嘆きの壁」を突破する方法を見いだせていない問題なのだ。

具体的に書こう。画面からGUIを除き、「なんでも書いてください」「なんでも声で言ってみてください」と言う。一見ユーザインタフェースが消えたように見える。

しかしそうした認識は間違いだ。実はユーザインタフェースは「何もない画面」の向こうにおいやられただけで、GUIの時と同じように存在している。どういうことか?つまりコンピュータは依然として予めプログラムされた命令しか認識出来ない。

GUIはその「この命令を受け付けることができますよ」というのを画面にちゃんと表示している。だからそれを押せば対応する動作が行われる。

しかし◯◯認識に頼った瞬間、ユーザは「どういうコマンドならコンピュータに受け付けてもらえるのか」ということを知っているか、あるいは推測しなければならなくなる。つまりUIはなくなったのではなく、隠されただけだ。例えばAppleのSIRIは「新着メール」と言えば「未読メールはありません」と答えてくれるが「新しいメールは?」と聞いても「誰に送信しますか?」と言ってくる。ここでユーザは「新着メール」という言葉を推測、または記憶し、正確に発音する責任を負わされたことになる。

つまりこうした◯◯認識を用いたUIは無茶苦茶に不自然なのである。ユーザはコンピュータがどのコマンドを、どういう言葉で受け付けるかについて事前に知識を持っており、かつそれを正確にコンピュータにわかるように出力(手書きでも、音声でも同じことだが)しなければならない。それはあたかも「ひらけゴマ」と正確に発音しないと開いてくれない洞窟のようだ。

人間はこうした◯◯認識の観点からすると、コンピュータにとても及ばない能力を発揮する。音声認識で有名な例だが食事をする場所で「僕はウナギだ」と発音した場合、「あなたはウナギなのですね。人間かと思っていました」とはいわない。コンピュータにこういう応答をさせよう、という試みは多いが、今のところ超えられない「嘆きの壁」となっているようだ。そしてそれを超える「聖杯」をみつけたという話は聞かない。

-----------

この「問題その2」の存在に気が付かない(あるいは学ばない)人は何度もこういう試みを繰り返す。そうした試みは傍からみていてあまり興味深いものではない。

足りないのは熱意でも、資金でも、与えられた課題をとくためのプログラマの腕でもない。そもそもの考え方が間違っている i.e. 問題2の存在に気がついていない。

こうした試みはクリミア戦争における軽騎兵の突撃や、フレデリックスバーグの戦いのようなものだ。正面から何の工夫もなく突進しても虐殺されるだけ。帝国陸軍じゃあるまいし、そうした行為に価値を見出すことは難しい。もっともこれは私の考え方であり、そうした突撃が「勇壮で勇敢だ」と賞賛する人もいるだろう。あるいはそうした「難しい問題に全力で取り組む自分って素敵!」と満足感を得られる人もいるかもしれない。


もちろん「問題その2」の問題が存在することにちゃんと気が付きそれを越えようという試みも(あまり多くはないが)ちゃんと存在している。そうした挑戦にはいつも興味を覚える。最近そうした試みの数が減っているように思うのだが、きっとこれは私の勉強不足のせいだろう。

---------

というお話を、いつまでたっても「電子自費出版」のめどが立たない「ユーザインタフェース開発失敗の本質」に書いてるんですけどね。。いつになったら表に出せるんだろうか。