トップ 最新

ただのにっき

2010-01-31(日) [長年日記]

iPadとマルチタスクのこと

今ごろiPadについて書く(ふりをしてiPhoneに対する不満をぶちまける)。

iPadについての分析は、iPad初感 - Drift Diary XIIIがとてもよくまとまっていると思うのでそちらを(丸投げかよ)。実際、自分は欲しいとは思わないものの、父や母が使っている姿は思い浮かぶので、まぁ、そのへんがターゲットなんでしょう。

ただ、最後のマルチタスクに関する考察だけは賛同できない。iPhoneOSがいま真っ先に実装すべきなのはマルチタスクだと思うから。

といっても、本当の意味でのマルチタスク……つまり、バックグラウンドに回ったプロセスにもCPUを割り当てて、常時動き続けるようなことまではしなくていい。割り込みだって最小限でいい。極端な話、バックグラウンド・プロセスはサスペンドしてしまって、完全に動作を止めてもいいと思う。使っている人間はシングルタスクなのだから、それはそれで良いのだ。擬似的なマルチタスクとしてはpush notificationという仕組みもあるのだから、それを利用してもいいわけだし。

今のiPhoneOSの良くないところ(というか自分では最悪だと思っている点)は、タスク切り替えの手段が「現在利用中のアプリの終了」しかない点にある。動作中のアプリを終了して主記憶から消し去り、空いた空間に別のアプリをストレージから主記憶へロード、初期化をして利用開始。そしてまた、別のタスクに切り替える必要が生じるたびにこの消去、ロード、初期化を繰り返すのだ。な・ん・た・る無駄!

おれのiPhoneは(Sのつかない)3Gというせいもあり、この待ち時間がハンパなく長い。何かをしている最中に、メモを取りたいとか、電話をしたいとか、そういう欲求は普通にあるはずなのに、今していることを完全に中断しないとそれができないのだよ、iPhoneOSは。それというのも、まったく生産性に寄与しないこのメモリ間の転送と初期化処理のせいだ*1

もとはと言えば、ストレージと主記憶の分離という、PC由来のアーキテクチャに諸悪の根源があるのだが、それを今さら変えるのは難しかろう*2。しかし、マルチタスク機能を開放した上で以下の機能を加えるだけで、どれだけ自然にタスク切り替えができるようになることか。

  1. ストレージへのページイン/アウト
  2. なんらかのタスク管理

1.は簡単だろう。もともとメモリ管理には仮想記憶を使ってるわけだし、数十GBもあるストレージにいくらかスワップ領域を確保したところで害はあるまい。

2.が、(操作が煩雑になるという理由で)Appleがマルチタスク化を躊躇している理由じゃないかと想像しているんだけど、ようするに本当にプロセスを殺す操作を可能にしないと困るという話。これだって、長いこと使ってないアプリは(今の動作と同じように)自動的に殺すようにしてしまえばいいのだ。先にバックグラウンドではサスペンドにして動作させないようにしても良いと書いたのは、これを正当化するためだ。

こういう部分で手を抜いて、平気でユーザの快適性を損ねるから、「Appleはユーザエクスペリエンスを大事にしている会社だ」なんて言うのを聞くと、眉をひそめてしまうのである。iPhoneOSのマルチタスク化は、ユーザエクスペリエンス向上のために真っ先に実装すべき機能だ。iPadなんて作ってる場合じゃないっつの。

Tags: iphone

*1 終了時の状況を記憶していて、次回起動時に再現してくれるアプリもあるにはある。だが、標準アプリですらろくにメモリ管理をせず、メモリ不足時にはいきなり落ちるような状況下でそんな気の利いた機能を常に期待するのはお人好しすぎる。そもそもそういう機能があっても問題の待ち時間はいっさい減らない(むしろ増える)。

*2 主記憶だけでストレージがない、PDAとして理想的なOSがかつて存在していたのだが、死んだ赤子の歳を数えるような行為なのでここでは触れまい。うう。