4月下旬、iPadがいよいよ日本発売となります。iPadは様々な箇所で賛否両論を巻き起こていたようですが、その中で否定的な意見として言われたのが「シングルタスクだからダメ」というものです。おそらく、これは複数のアプリケーションを同時に起動しておきたいと言う意味だと思います。

コンピュータをマルチタスクで動かすのは当たり前になっていますが、人間がそもそもマルチタスクをできているんだろうか?という疑問が湧いたので、それについて思考実験をしたことをまとめてみました。iPhoneユーザなので、改めて各々の操作を振り返りつつ、iPadで行ったとしてどうなるだろう?と考えて行きます。

脳がそもそもマルチタスクなのか?という話を始めてしまうと、無意識や反射のことを考えなければならず、おそらく「よくわからない」と言う結論が大抵待っていると想像できるので、実際に動かしている部分がどうなっているかに焦点を当てて行きたいと思います。

追記 2010/03/08
Twitter上でマルチタスクの定義が不明確と意見がありました。ここでのマルチタスクの対象は後述しますが、目、耳、手のみとします。臓器や細胞まで考えると、話が拡散してしまうためです。また、目、耳、手を対象とするのも、アプリケーション操作において表層で主要となる部位であるためです。そこをつかさどる運動神経などには上記と同じ理由で深く言及しません。

人間のCPUは1つだと言う仮定

人間は1CPUをもったマルチタスク可能な動物で、訓練によってタスク切り替え速度をかなり向上させることができる。と私は仮定しています。よく両手でピアノが弾けるとか、ブラインドタッチができるというのが、同時進行で手が動いているように見えますが、ブラインドタッチについて言えば、指は逐次で動いています。これはキーボードでのインプット自体が逐次でないと受け付けていないからもでもありますが、同時押しも、指を逐次で押しています。それが相当な速度なため、できない人から見れば、同時に動かしているように見えています。

おもしろいのはブラインドタッチの「フリ」をしてみると、次に何を動かせば良いか意識しなくてもよくなるので、ほぼ同時に両指を誰でも動かすことができます。逆にいうと、意識が大きく影響していると言う表れです。ただ、先述の通り、意識と言うものではなく、可動部位を中心に考えます。

可動部位は重複させられない

例えばiPadというデバイスを前にしたとき、私たちが利用できる可動部位として思いつくのは、目、耳、手になると思います。まずそれぞれの部位について同時進行のように見せられる組み合わせを考えてみます。

目 + 耳

動画再生をしている時などが考えられるます。説明字幕が出ている間にナレーションが進んでいたりすると、聞き漏らし、見落としが発生する場合があります。逐次で目と耳を切り替えながら、字幕とナレーションを交互に認識していると考えられます。

目 + 手

ホームでアプリケーションを選択している時や、写真をフリップしながら見ている時などが考えられます。まず目で操作対象を決め、実行するために必要な手順に沿って手を動かして行きます。扱っている情報の性質にはよると思いますが、目で始まって手で実行と言う逐次処理を求められます。

耳 + 手

キー入力をしている時に、入力音をONにしているとします。カチッという入力音が聞こえたことで、正確に入力されたと判断して、次の入力をおこなうと言う動作が可能です。目での判断も間違いなく入っているのですが、耳から手、手から耳と言う逐次処理を行っていると考えられます。

可動部位には主従関係と優先度が発生している

どのパターンにも言えることは、主となる可動部位があり、その実行結果に従って次の可動部位が連動していると捉えられます。目がほとんどの場合、主となっているはずです。目が使えない暗闇は耳に、音が特にない場合は手でなど、状況に合わせて優先度が変わっていきます。

iPadに関しては視覚が必須のデバイスなので、目で対象を捉えるというのがトリガーになると考えられます。

ここから2つある可動部位を重複として考えます。

目 + 目

目が2つあることで焦点合わせなどを行っており、同時に違うものを見るというのはできていません。視野の端にとらえると言うことはできますが、そのものを具体的には捉えられていません。焦点を移して行くことになるので、実質は逐次処理であると思います。

耳 + 耳

反射した音などを両側から捉えるというここと、どちらの耳から聞こえるかで方向の特定などができています。おそらく同時に聞こえているというのは成立していると思いますが、同じ方向から来る音を一緒に聞いているかというと、それはできていないはずです。片方からの音をまず捉え、頭の中の振動が反対側に伝わるか、反射した音がもう一方に遅れて入ってくるかでしょう。

手 + 手

厳密には指と言うサブシステムで考えるべきですが、両手で操作する場合は、フルキーボード入力が考えられます。これは冒頭に述べた通り、実際は逐次入力となります。また、指を2本以上同時に押す場合、それぞれが完全に独立して動くことはなく、例えば画像の拡大であれば、画面の中央から外側へと同じ方向へ動かしています。他の操作もそうです。

マルチタスクはできそうだが、独立した同時処理はどうなのか?

これまでの内容から、人間はマルチタスクが可能だと考えられそうです。ここで一歩進めて、同時に複数のアプリケーションが起動できるとして、独立した状態で使いこなせるのか?と考えてみます。目、耳、手は2つあるので同時に動かすことはできますが、独立して動かすのは困難だと言うことです。

しかし、ここでそもそもの前提として足りないものがあると思いました。それはデバイス側、つまりコンピューターそのものが逐次処理のため、同時入力は受け付けていないと言うことです。2画面や複数アプリケーションという状況はあっても、フォーカス、つまりターゲットをまず決めるという処理が必要な以上、やはりコンピューター側の都合で同時入力はさせてもらえません。

GUIであれば、フォーカスによって1つずつですし、CUIだとキーボード自体は同時入力できますが、内部での解釈は逐次処理になっています。実は人間の行動様式や可動部位を考慮してデザインされていると言われるデバイスも、コンピューター側の逐次処理という制約ありきということになります。

それを考えると、複数のアプリケーションが同時に動くと言うよりは、同時に起動しているのと変わらないぐらい切り替えのストレスがないか、そう見せるインターフェースがあれば今は十分だろうと私は思います。

そういう意味では、メニューとアクティブなアプリケーションが常時表示され、アプリケーションの切り替えも兼ねるWindows7のタスクバーは、かなり秀逸なデザインだと思います。実際、そのおかげでWindows用のDockが不要になりました。

どのI/Oをどこまで独立させていけば良いのか?

ピアノは鍵盤1つ1つが独立したI/Oですし、パーカッションもそうです。しかし、音としては独立していても、人間に取っては和音と言う結果を得ることができます。コンピュータのI/O、それらを総合したUIを考える場合、どこまでの単位で独立させると良いのか?ということについて再考が必要だろうと思います。

マルチプロセッサが普及してきていますが、メモリ管理も含めて完全に独立処理というのは、できるできないがあります。演算と描画を独立させることでパフォーマンスが上がったように、同時処理ができるということは入力方式から再デザインされる必要があるのではと今は考えています。

今回の思考実験は浅い考察だと思うので、I/Oを独立させる単位を考えなおすと言う方向で、また、まとめてみたいと思います。