山田祥平のWindows 7 ユーザーズ・ワークベンチ

プログラムが起動しているかどうかなんてどうだっていいじゃないか



 プログラムは起動していようがいまいが、それはたいした問題ではない。それが昨今のトレンドのようだ。今回は、Windows 7のプログラムをタスクの観点から見ていくことにしよう。

●タスクバーが担う役割

 Windows用のプログラムはいくつかに分類することができるが、乱暴にいえば、アプリケーションとサービスがある。一般的にアプリケーションはユーザーと対話するためのGUIとしてウィンドウやダイアログボックスを使うが、サービスはその限りではない。UIを持たないものも多い。

 また、サービスに関しては、インストール後、ユーザーが自分で起動しなければならないものもあれば、自動的に起動してシステムに常駐するものもある。サービスが実行されていることを知るにはタスクマネージャで確認すればいいし、サービスによっては、その状態をタスクバーの通知領域でアイコン表示するものもある。

 アプリケーションも、タスクマネージャーで実行されていることを知ることができるが、一部のアプリケーションは、実行中であるにも関わらず、タスクマネージャーのアプリケーションタブで一覧表示の中に、その存在が見つからないものがある。場合によっては、サービスと同様に、タスクバーの通知領域にアイコンを表示して、起動していることを示すものもある。

タスクマネージャで確認できるアプリケーション。これら以外にも、たくさんのプログラムが常駐し、サービスも数多く動いている。

 Windows 7では、タスクバーの振る舞いに手が入り、Windows 95に始まりVistaまで続いていたコンピューティング作法が大きく変わった。というのも、Vistaまでのタスクバーは、基本的に開いたタスクを一覧し、それを切り替えるためのスイッチャーだったのに対して、Windows 7のタスクバーは、プログラムが開いているかどうかに関係なくボタンが並ぶ。つまり、スイッチャーとランチャーを兼ねる役割を担うようになったわけだ。

 おそらくWindowsとしては、タスクバーの通知領域に常駐するアイコンをできるだけ少なくしていきたいという意向があるのだろう。そのために、タスクバーボタンが通知領域を代替できるように、それが担う役割が追加実装されている。たとえば、ファイルのコピー中に、その経過を示すプログレスバーの役割をタスクバーボタンがこなすような機能は、その一例だ。ボタンの右クリックによるジャンプリストで、通知領域アイコンと同じようなことができれば、通知領域はWindowsのシステム専用の領域として、もう少しスマートな運用ができるようになるはずだ。

●通知領域をシステムに明け渡せ

 ランチャーに登録されていないプログラムを、スタートメニューやファイルのオープンなどによって起動した場合は、タスクバーにボタンが一時的に追加され、終了と共にボタン表示が消える。もし、終了後も表示したままにしておきたい場合は、そのプログラムの起動中に、タスクバーでボタンを右クリックし、「タスクバーにこのプログラムを表示する」をオンにしておけばいい。この操作を「ピンしておく」と呼ぶのは、項目のアイコンを見れば想像できると思う。

 タスクバー上のボタンは、もし、そのプログラムが開いている場合は、ボタンが凹状態になり、押されていることが確認できる。また、1つのプログラムが複数のウィンドウを開いている場合はボタンの右側に縦線が表示され、そのことがわかるようになっている。ただ、本当によく見ないとわからない。このことは、Windows 7が、プログラムが起動しているかどうかなんて、どうでもいいじゃないかと言っているようにも見える。

タスクバーのボタンは、起動しているプログラムが凹状態になる。複数のウィンドウを開いているプログラムは右側が二重線、三重線になる。視認性は決してよくない

 この振る舞いは興味深く、これまで渾然としていたWindowsアプリケーションのシングルドキュメントインターフェイス、マルチドキュメントインターフェイス、その改良版としてのタブインターフェイスのややこしさをすべて解消してくれる。どのインターフェイスのプログラムであろうと、ユーザーにとっては「ファイルが開いている」という状態の1つに過ぎないのだ。

 ちなみに、現在のMac OSでは、Windows 7のタスクバー同様のスイッチャー兼ランチャーとして「ドック」と呼ばれるシェルが使われている。これもまた、プログラムが起動しているのかしていないのかがわかりにくい。わかることはわかるのだが判別しづらいのだ。それどころか、昔からそうだが、Mac OSでは開いているウィンドウを閉じることがプログラムの終了を意味しない。これは、多くの場合、ウィンドウを閉じることがプログラムの終了を意味するWindowsと大きく異なる点だ。最近のWindows用アプリケーションにも、ウィンドウを閉じることがプログラムの終了を意味しないものをよく見かけるようになった。ウィンドウを閉じても、そのままタスクバー状に実行状態のまま残ったり、タスクバーの通知領域にインジケータアイコンとして表示されるタイプのものだ。

 たとえば、Windows Live Messengerは、ウィンドウを閉じても終了することはなく、いつまでもタスクバー上に実行状態のまま居座る。プログラムの性格を考えると、その方が使いやすいのだから当たり前の話なのだが、マイクロソフト謹製のアプリケーションだけに、その影響力は強いはずだ。かつてのMessengerは通知領域に常駐していたが、今は、タスクバーに常駐するようになっているのだ。

タスクバー右端の通知領域に表示されるアイコンは自由に選べるようになったが、すっきりするのは見かけだけで、実際にはたくさんのアイコンが自己主張していることがわかる

 今、世の中では、iPhone OS、つまり、iOSのマルチタスク化が話題になっている。これまでのiPhone、iPod touchはシングルタスクだったが、これからはマルチタスク対応したアプリケーションに関しては別のアプリに切り替えても動き続けてくれるようになるというのだ。

 これまでのiPhone、iPod touchでは、アプリの切り替えという概念がなかった。アプリの起動には必ずホーム画面に戻る必要があり、そのことは、今、動いているプログラムを終了させることを意味していた。ウィンドウを閉じても、それがプログラムの終了を意味しないMac OSと比べると意外な感じがするが、実際、そうだったのだ。

 とはいえ、iPhoneのようなモバイルデバイスに関しては、バックグラウンドに回されたときに止まってしまっては困るようなアプリ以外は、バックグラウンドで動き続けるのではなく、いったん停止、すなわちサスペンドして待機、切り替えられると動き出すという仕組みになっている。ある意味、自己主張の強いアプリが出てきて、用もなくバックグラウンドで動き続けてバッテリ等を消費するということにならないようにしてほしいものだ。

●大事なことはウィンドウを見つけやすくすること

 いずれにしても、こうしたトレンドを見ていると、ユーザーから見たときに、プログラムが起動しているのかしていないかなど、大した問題ではなくなりつつあるように思う。Windows 7では、タスクバーをマウスポインタでなぞれば、もし開いているウィンドウがあるならそのサムネールが表示されるし、サムネールをポイントすれば、実際のウィンドウが表示される。起動していないのなら何も表示されない。それで十分だろうというわけだ。

 確かに、2GBを超えるメモリ搭載が当たり前になり、十分に処理性能の高いプロセッサで運用しているPCでは、数十~数百MB程度のメモリを使うプログラムが動いていようが動いていまいがあまり気にする必要がないのかもしれない。Windowsを20年近く使っていると、アプリケーションがシステムリソースを食い合わないように、こまめにプログラムを閉じる貧乏性のクセがついてしまっているのだが、今は、そのようなことを気にしないでいいのだろう。

 実際、ごく一般的なユーザーのデスクトップを見ると、把握しきれないほどたくさんのウィンドウが、最大化されて開いているアクティブウィンドウの背後に見つかることが多い。つまり、ウィンドウをこまめに閉じてシステムを守る(=クラッシュなどで自分が悲しい思いをしないですむ)ようなことをユーザーに強いるのではなく、開いたウィンドウは開いたままでよしとし、それらのウィンドウを見つけやすくすることを優先しているのが現在のWindowsであるといえる。

 だとすれば、タスクバーのボタンをマウスポインタでポイントしたときに表示されるサムネールで、最小化されたウィンドウの中で起こっていることがわからないのはまずい。Windows 7としては、ステータスを表示するなどの仕組みを用意しているのだ。なのに、Post Windwos 7アプリケーションの代表選手であるOffice 2010では、たとえば、Outlookが最小化されている間に受信したメールでウィンドウの内容が変わっているにもかかわらず、サムネールや、そのプレビューが最小化したときのままになっている。率先して対応すべきマイクロソフトがこのような状況ではまずいと思う。改善に期待したい。

Windows Media Playerは最小化しても、ボタンにポインタを重ねれば再生中の映像を確認できる。ところが、最新アプリであるはずのOutlook 2010は、新着メールを受信してもサムネールを更新しない。