ある意味では、それは1984年までさかのぼる歴史を持つUI規約です。WindowsとX11は両方ともオリジナルのMac GUIをポストしているので、WindowsはWindowsの方法で「ただ違う」というよりもMacが奇妙なものであることを示唆しています。
Macintoshの初期の時代には、一度に1つのアプリケーションしか実行できませんでした。アプリケーションには常に画面の上部に表示されるメニューバーがあるため、ウィンドウなしで開くことは完全に合理的でした。アプリケーションのすべてのウィンドウを閉じたときは、常にメニューバーを使用して新しいドキュメントを作成したり、既存のドキュメントを開いたりできるため、アプリケーションを開いたままにしておくことは理にかなっています。ウィンドウが閉じられたという理由だけでプロセスを終了することは、その時点では意味がありませんでした。なぜなら、フォーカスを与える他のプロセスがなかったからです。
数年後、80年代後半のMacintoshは、複数のアプリケーションを一度に開くのに十分なメモリがあるところまで進みました。これを行うためのツールは、既存のアプリケーションとの後方互換性を維持する必要があったため、基本的なUIの規則を変更せず、ウィンドウを開かずにアプリケーションを強制終了しませんでした。その結果、視覚的なGUI要素(ウィンドウ)と抽象的な実行プロセス(アプリケーション)の間のUIが明確に区別されました。
一方、MicrosoftはWindowsを開発していました。90年代前半までに、MicrosoftはWindows 3.Xを適切に動作させ、X11上のMotifはMicrosoftの作業に大きな影響を受けていました。MacintoshはアプリケーションのUIの提示に基づいて構築されましたが、Windows(名前が示すとおり)は、ウィンドウ自体がUIの基本単位であるという哲学に基づいて構築され、アプリケーションの概念はMDIスタイルのコンテナウィンドウ。X11は、UIの観点からはほとんど重要でないアプリケーションも考慮しました。1つのプロセスで、(非常に新しい)ローカルエリアネットワーク上の複数のマシンに接続された複数のディスプレイでウィンドウを開くこともできます。
Windowsスタイルのアプローチの問題点は、メニューバーだけで開くなど、ユーザーとの何らかの形でのやり取りができず、ユーザーがウィンドウがなくなったときにプロセスが実際に終了したという本当の保証がなかったことです。Macintoshユーザーは、Windowsなしで実行しているアプリケーションに簡単に切り替えて終了したり、使用したりすることができましたが、Windowsはユーザーがそのようなプロセスと対話する方法をまったく提供しませんでした。(タスクマネージャーで気づき、それを強制終了することを除いて。)また、ユーザーは、プロセスが乱雑にならないように見えるUIを維持することを除いて、プロセスを再起動せずに戻ることができるようにプロセスを実行したままにすることを選択できませんでした画面をアップし、(当時は非常に限られた)リソースを消費していました。Macintoshには切り替え用の「アプリケーション」メニューがありましたが、Windowsは「タスクバー」を普及させました。開いたプロセスに関係なく、すべてのトップレベルウィンドウを表示しました。重いマルチタスカーの場合、「タスクバースープ」は扱いにくいことが判明しました。より基本的なユーザーにとって、どのウィンドウが実際にバーに表示されるかについての学習可能なルールがなかったため、「トップレベルウィンドウ」として正確に修飾されたものについての予測不可能性は時々混乱しました。
90年代後半までに、MicrosoftのGUIが最も一般的に使用されました。ほとんどのユーザーは、MacintoshまたはUNIX X11ワークステーションではなくWindows PCを使用しています。その結果、Linuxの人気が徐々に高まるにつれて、多くの開発者はUNIX UI規則ではなくWindows UI規則を使用するという背景から来ていました。これは、Windows UI規則からのMotif描画のようなものに関する初期の作業の歴史と結びつき、twmやMacintoshのような古典的なX11のものよりもWindowsのように動作する現代のLinuxデスクトップ環境をもたらします。
この時点で、「古典的な」Mac OSはMac OS 9でそのコースを実行し、MacintoshはMac OS Xの形式で非常に異なる内臓を持つUnixベースのマシンになりました。したがって、DockのNeXT UIコンセプトを継承しました。元のNeXTマシンでは、X11が使用されていましたが、かなりユニークなウィジェットとUI規則のセットがありました。おそらく最も特徴的なのは、プログラムランチャーとタスクスイッチャーを組み合わせた一種のDockでした。(OS-Xで知られている「複数列」のファイルを開くダイアログボックスも、NeXTから来ました。その他の目に見えるものもあります。OS-Xの移行における最も重要な変更はすべて目に見えないものでした。) 「基本的なUI要素としてのアプリケーション」というMacintoshの概念とうまく機能しました。そう、ユーザーは、ドックアイコンのマークでアプリケーションが開いていることを確認し、クリックすることで切り替えたり起動したりできます。最近のOS-Xは、従来のMac OSよりもはるかに優れたマルチタスクをサポートするようになったため、ユーザーがバックグラウンドで実行するビデオ変換ソフトウェアなど、あらゆる種類のものをバックグラウンドで実行したい場合があることを突然理解しました、スクリーンレコーダー、VOIPソフトウェア、インターネットラジオ、Webサーバー、音声コマンドに応じて発言するものなど。これらのことは、賢明なユーザーエクスペリエンスを維持するために可視ウィンドウを開く必要は必ずしもありません。バーは画面上部のウィンドウとは別であり、ドックアイコンにメニューを直接表示できるため、ユーザーは常にUIが開いていないプログラムと対話できます。その結果、ほとんどのMacユーザーは、アプリケーションを開いたままにするという既存の慣習を捨てて、Windowsに似たものにすることは、間違った方向への恐ろしい一歩と見なされていました。いくつかの相互作用モードが不可能になり、実際の利益はありません。
明らかに、一部のユーザーはWindowsの規則を好みますが、どちらも「間違いなく正しい」わけではありません。しかし、正当な理由なしに、そのような有用なものから移行することは意味がありません。いくつかの歴史を巡るこのツアーで、役に立つと思われるコンテキストが少し得られれば幸いです。
X
ボタンのデフォルトの動作は非表示にすることだけです。私はそれが愚かであることに同意しますが、それは「あなたのMacbookはあなたよりもよく知っている」という考え方の結果です。一部のWindowsおよびLinuxプログラムは同じことを行いますが、一般的にX
は近いことを意味します。