ライオンは諦める人

ライオンは諦める人

この実験を Mac OS X 10.7 Lion で試してください。TextEdit を起動します。開いている書類ウィンドウをすべて閉じます。アップルメニューの横に表示されるアプリケーション名から、TextEdit がまだ実行中であることがわかります (システム環境設定のように、最後のウィンドウが閉じられると自動的に終了するアプリケーションではありません)。次に TextEdit から切り替えて、しばらく何か他のことをします。その後、Command + Tab アプリケーションスイッチャーを使用して TextEdit に戻ります。切り替えることはできません。TextEdit は消えてしまっているのです。TextEdit で実際に何かを行っていなかったので (開いているウィンドウはなく、最前面のアプリケーションでもありませんでした)、システムが静かに TextEdit に終了するように指示したのです。さらに悪いことに、TextEdit が実行中のみ Dock に表示され、このことが起こると、
Dock アイコンが不可解にも消えてしまいます。

残念ながら、この実験があなたのマシンでも私のマシンと同じように動作するかは保証できません。非決定論的なものです。TextEditで2回試してみましたが、どちらもうまくいきました。しかし、Lionがあなたのマシン上の特定のアプリケーションを、あなたが使用していない時に終了させるかどうかは、確かなことは言えません。(Adam Engst氏とJeff Carlson氏にはうまくいきましたが、何人かのコメント投稿者は再現できなかったようです。)しかし、Lionがあなたのマシン上の特定のアプリケーションを、あなたが使用していない時に終了させる可能性があることは確かです。

昨日、Preview で同じことが起こりました。ある PDF 文書を開きたくて Preview を起動しました。そこで、「ファイル」>「開く」を選択して「開く」ダイアログを呼び出しました。しかし、その時点で、開こうとしていた PDF 文書のあるフォルダにいくつか変更を加えたいことに気づきました。そこで、Preview の「開く」ダイアログを閉じ (Preview に非表示を指示した可能性もあります)、Finder に切り替えました。Finder でのいじりが終わった後、Command + Tab を使って Preview に戻り、「開く」ダイアログをもう一度開こうとしましたが、できませんでした。その間に、Preview はシステムから、私に知らせることなく、ひっそりと終了するように指示されていたのです。

John Siracusa 氏が Ars Technica の Lion のレビューで説明しているように、これは自動終了と呼ばれる Lion の機能です。

Lionは、リソースが必要と判断され、かつユーザーがリソースを使用していないように見える場合、実行中のアプリケーションをユーザーの知らないうちに終了します。アプリケーションが「使用中」かどうかを判断する際のヒューリスティックは非常に保守的です。アクティブなアプリケーションではなく、表示されている最小化されていないウィンドウがないこと、そしてもちろん、自動終了を明示的にサポートしていることが条件となります。

Siracusa氏が指摘するように、自動終了が発生した場合、終了したアプリケーションは実際には完全に終了していない可能性があります。例えば、今まさに私のマシンでは、TextEditがアクティビティモニタに実行中のプロセスとして表示されています。メモリを消費しており、開いているファイルもあります。しかし、TextEditはCommandキーとTabキーの切り替えやDockには表示されません。Lionは2度も私を騙しました。TextEditを終了していないにもかかわらず、実行中のアプリケーションの表示からTextEditが消えてしまったのです。また、同時にTextEditはバックグラウンドで動作し続けました。


Apple自身の自動終了に関する説明を読むと、アプリケーションは開いているウィンドウがあっても終了するように指示できることがわかります。ただし、それらのウィンドウが現在ユーザーに表示されていない場合(すべて最小化されているか、アプリケーションが非表示になっているか、ユーザーが見ているウィンドウとは別の場所にある場合)に限られます。もちろん、これはアプリケーションが
ドキュメントベースの場合、自動保存をサポートしていることを前提としています。つまり、システムがアプリケーションに終了を指示した場合、ユーザーが明示的に保存していなくてもドキュメントは保存されます。また、アプリケーションは再開もサポートしている必要があります。つまり、ユーザーがアプリケーションを再起動した場合、終了を指示されたときと同じ状態で、同じドキュメントがすべて開かれ、以前と同じ位置までスクロールされた状態で再び表示されます。自動終了、自動保存、再開はそれぞれ独立したオプトイン技術ですが、開発者が他の技術も採用せずにいずれか1つを採用することはまずないでしょう(そしてAppleは、この「採用するべき」を「採用すべき」に明確に変更しています)。

事実についてはここまでです。この記事の残りは完全に私の意見です。特に、自動解約が良いことなのかどうかという大きな問題について議論したいと思います。

自動終了は技術的な改善と言えるでしょうか?私の知る限り、そうではありません。アプリケーションを終了しても、実際にはそれほどリソースを節約できるわけではないからです。Mac OS Xアプリケーションのイベントループは非ポーリング方式なので、アイドル状態のアプリケーションはCPUを消費しません。Mac OS Xが常に提供してきた主要な技術的利点の一つは、優れた仮想メモリ管理と、リソースのディスクへのスワップ処理です。これにより、実行中のアプリケーションは、Macが実際に搭載している物理RAMの容量をはるかに超えるRAMを要求できます。そのため、多くのユーザーは文字通り数十ものアプリケーションを常時実行したままにしていますが、アプリケーションの
リソースをスワップバックする必要がある場合にわずかな遅延が発生する程度で、大きなペナルティはありません。この場合、解決策はアプリケーションを終了することではなく、RAMを増やすことです(Lionを正常に動作させるだけでも、RAMを増やす必要があるかもしれません)。さらに、上のスクリーンショットが示すように、自動終了は実際にはアプリケーションプロセスを終了させるわけではないので、いずれにしてもリソースを節約することはできません。

したがって、自動終了のメリットはユーザーエクスペリエンスにあるはずです。さて、一方では、Apple自身が自動終了を支持する論拠を想像できます。ここでの究極の目標は、実行中のアプリケーションと実行されていないアプリケーションの区別をなくすことです。iOS 4のマルチタスクでは、通常、自分でアプリケーションを終了することはないため(必要に応じてアプリケーションを切り替え、システムに終了を指示させる)、どのアプリケーションが実行中なのかわかりません。また、実行中のアプリケーションと実行されていないアプリケーションの両方がFast App Switcherにリストされるため、どのアプリケーションが実行中なのかを気にする必要もありません。つまり、実行中のアプリケーションに切り替えることと
、終了したアプリケーションを再起動することは同じことなのです。(2010年6月23日の私の記事「Fast App Switchingとは何か?」を参照。)もしすべてのアプリケーションが自動終了、自動保存、再開をサポートしていたら、Lionはまさにそのようになるでしょう。そのため、Dock のシステム環境設定パネルには、Dock で開いているアプリケーションのインジケーター ライトを表示しないようにするオプションがあります。理想的な Lion の世界では、開いているアプリケーションと開いていないアプリケーションの区別は重要ではありません。

一方、昨日 Lion が私のマシンでプレビューを自動的に終了させた時、私はプレビューを使っていたというのが実情です。Lionが認識するような形でその瞬間に私が積極的にプレビューを使用していたわけではありませんでした。つまり、開いているプレビューウィンドウはなく、プレビューが最前面に表示されていなかったのです。しかし、私はプレビューに関わる何らかの作業に従事していました。プレビューから切り替えたのは、Finder でプレビューで開こうとしていた書類を準備するためだけでした。しかし、Command + Tab でプレビューに戻ると、プレビューは消えていました。これでは役に立ちませんし、便利でもありません。煩わしく、混乱を招き、邪魔になります。作業を続行するには、もう一度明示的にプレビューを起動する必要がありました。

したがって、iOSの体験をMacにコピーしようとする試みは不適切だと私は考えています。Appleのこの試みは全体的に見当違いです。iOSでは一度に1つのアプリケーションしか使用できないため、使用していないアプリケーションをシステムが終了させるのは理にかなっています。そのため、最近使用したアプリケーションは、たとえ実行中でなくてもFast App Switcherにリストされます。しかしMacでは、複数のアプリケーションを同時に使用できます(今回のケースもまさにその通りです)。そして、Command + TabスイッチャーにもDockにも、自動的に終了したアプリケーションは表示されませんでした。今回のケースでは、事前にLionについて調べていたので、プレビューがなぜか
消えてしまった原因を理解し、再起動する方法も知っていました。しかし、Lionは事実上、私の足元から敷物を奪い取り、複雑な操作の途中で動作を遅くしました。初心者がLionのこの動作に戸惑うのは当然のことでしょう。

さらに、もっと大きな問題が存在します。一体誰が責任を負っているのか? 私は私が責任を負うべきだと考えますが、Lionはそれに反対です。しかも、この点だけではありません。自動終了は、Lionの全体的な「乳母国家」的哲学の一側面に過ぎず、私が異議を唱える点です。アプリケーションに実行を指示すると、終了を指示するまではアプリケーションが実行され続けることになります。Lionはより適切に判断し、私に代わってアプリケーションを終了させます。逆に、アプリケーションに終了を指示すると、終了することになります。しかし、Lionはより適切に判断し、アプリケーションが再び起動するとアプリケーションのウィンドウを復元し、コンピュータを再起動した場合にはアプリケーションを再起動します。同様に、アプリケーションに保存を指示すると、
保存されることを期待し、保存を指示しないと、保存されないことを期待します。Lionは、私が個人的に判断すべき区別と選択を廃止しようとしているのです。

iPhoneやiPadでは、インターフェースは必然的に簡素化されており、システムによる制御の度合いは適切であるだけでなく、役に立つ。しかしMacでは状況は異なる。iOSではシステムが私を助けてくれるが、Mac OS Xではシステムが私と戦っている。私は自分のコンピューターは自分で操作できると思っているが、Lionは違う考えを持っている。

(この結果は、実は iOS というよりは、Microsoft を思い出させます。Microsoft アプリケーションで多くの人が反対するのは、それらのアプリケーションが自分たちは賢いと思っているが、実際には単に生意気なだけであるということです。「リストを作成しようとしているようですが、リスト マネージャを使用しますか?」 Lion で突然しゃべるペーパークリップが現れて、私の生活を乗っ取ることになるのでしょうか?)

確かに、私は典型的なユーザーではありません。Macを初めて使うユーザーには、iOS風のMac OS Xが適しているかもしれません。もしかしたら、私がiOSをぎこちなく感じているのと同じように、彼らもMacのインターフェースをぎこちなく感じているのかもしれません。そして、私がiOSの裏で行っていることを高く評価しているのと同じように、Lionの裏で行われていることを高く評価しているのかもしれません。自分のコンピューターをハイブリッドのプリウスのように考えている人もいます。ボンネットの中は複雑ですが、実際に使うと「ただ動く」のです。私は自分のコンピューターを、1960年代のマニュアルシフトのVWビートルのようなものだと考えています。指示通りに動き、何か問題が起きても自分で修理できることが多いのです。Lionを使うと、まるで運転席から放り出されたような気分になります。

Idfte
Contributing writer at Idfte. Passionate about sharing knowledge and keeping readers informed.