Почему приложения Mac никогда не закрываются?


60

Я пользователь Linux / Windows / Mac. Мне нравятся все системы, * nixes больше, чем Windows, но мне нравятся все неэтичные.

Я начал использовать Mac в этом году, и разница между Linux и Windows, которую я не могу понять, заключается в следующем: почему приложения никогда не закрываются, когда я нажимаю кнопку «x», поскольку именно так ведут себя Linux и Windows? Мне нужно нажать cmd + q или выйти из меню вверх.

Я имею в виду, это только отличается от всех них, или есть причина для такого поведения? Я не вижу никакого преимущества. Если я хочу закрыть, я хочу закрыть. Период.

Кто-нибудь знает причину этого?


1
Просто поведение Xкнопки по умолчанию - скрывать. Я согласен, что это глупо, но это результат менталитета «Твой макбук знает лучше тебя». Некоторые программы для Windows и Linux делают то же самое, но в целом это Xозначает, что они закрыты.
Фальмарри

1
Иногда поведение по умолчанию имеет причину, даже историческую, которая не имеет смысла. Я хотел бы знать это.
Кто-то все еще использует тебя MS-DOS

1
Я думаю, что исторически это закрывает окно, но не выходит из приложения. Я не знаю наверняка, почему, но я подозреваю, что он укоренен в то время, когда у компьютеров Mac была виртуальная память и реальное переключение приложений, вы могли закрыть окна, возможно, освободить часть памяти, но не замедлить открытие нового.
Нес

25
Когда приложение всегда имеет только одно (главное) окно (например, Системные настройки ), его закрытие (либо « Файл» > « Закрыть» , «Command + W», либо красный крестик в верхнем левом углу окна) завершает работу приложения («готово»). с «окном» означает, что вы «закончили» с приложением, поскольку имеется только одно окно). Приложения, которые могут иметь более одного главного окна, не закрываются при закрытии последнего окна. Приложение остается открытым, поэтому вы можете использовать (например) Файл > Новый ... (или Файл > Открыть ... ), чтобы открыть новое окно, не выходя и не перезапуская приложение.
Крис Джонсен

1
@ Крис твой должен быть ответом, это имеет для меня самый смысл
phunehehe

Ответы:


89

В некотором смысле, это соглашение о пользовательском интерфейсе, история которого восходит к 1984 году. Поскольку Windows и X11 публикуют дату с оригинальным графическим интерфейсом Mac, можно сказать, что Windows делает это «просто чтобы быть другим», а не предполагая, что Mac это чудак.

Еще в первые дни Macintosh вы могли запускать только одно приложение за раз. Было совершенно разумно, чтобы приложение открывалось без окон, потому что у приложения всегда была видимая строка меню в верхней части экрана. Когда вы закрыли все окна приложения, имело смысл оставить приложение открытым, потому что вы всегда можете использовать строку меню для создания нового документа или открытия существующего. Выход из процесса только потому, что окно было закрыто, не имел никакого смысла в то время, потому что не было бы никакого другого процесса, на который можно было бы обратить внимание.

Несколько лет спустя Macintosh конца 80-х годов достиг уровня, когда было достаточно памяти для одновременного открытия нескольких приложений. Поскольку инструменты для этого должны были сохранять обратную совместимость с существующими приложениями, они, естественно, не собирались изменять основные соглашения UI и убивать приложения без открытых окон. Результатом стало четкое различие в пользовательском интерфейсе между визуальным элементом GUI (окном) и абстрактным запущенным процессом (приложением).

Тем временем Microsoft занималась разработкой Windows. К началу 90-х у Microsoft была хорошо работающая Windows 3.X, и Motif на X11 был сильно вдохновлен работой Microsoft. В то время как Macintosh был построен вокруг представления пользовательского интерфейса приложений, Windows (как следует из названия) была построена на философии, согласно которой само окно должно быть фундаментальной единицей пользовательского интерфейса, и единственная концепция приложения находится в форме Контейнерные окна в стиле MDI. X11 также считал приложение в значительной степени неважным с точки зрения пользовательского интерфейса. Один процесс может даже открыть окна на нескольких дисплеях, подключенных к нескольким машинам в (совсем новомодной) локальной сети.

Проблема с подходом в стиле Windows заключалась в том, что вы не могли выполнять некоторые формы взаимодействия с пользователем, такие как открытие только с помощью строки меню, и у пользователя не было реальной гарантии того, что процесс фактически завершился, когда окна исчезли. Пользователь Macintosh мог легко переключиться на приложение, которое работало без окон, чтобы закрыть его или использовать его, но Windows не предоставила пользователю абсолютно никакого способа взаимодействия с таким процессом. (За исключением того, чтобы заметить это в диспетчере задач и убить его.) Кроме того, пользователь не мог оставить процесс запущенным, чтобы он мог вернуться к нему, не перезапуская его, за исключением сохранения некоторого видимого пользовательского интерфейса от беспорядка процесса вверх по экрану, и потребляет (в то время, очень ограничено) ресурсы. В то время как Macintosh имел меню «Приложения» для переключения, Windows популяризировала «панель задач». который отображал все окна верхнего уровня без учета процесса, который их открыл. Для тяжелой многозадачности «суп из бара задач» оказался непривлекательным. Для более простых пользователей возможность предсказуемости того, что именно называется «окном верхнего уровня», иногда сбивала с толку, поскольку не было понятного правила о том, какие именно окна будут отображаться на панели.

К концу 90-х наиболее часто использовался графический интерфейс Microsoft. У большинства пользователей есть ПК с Windows, а не рабочая станция Macintosh или UNIX X11. Следовательно, с ростом популярности Linux со временем многие разработчики исходили из опыта использования соглашений Windows UI, а не UNIX UI. Это в сочетании с историей ранней работы над такими вещами, как рисование Motif из соглашений Windows UI, привело к тому, что современные среды рабочего стола Linux ведут себя намного больше как Windows, чем классические вещи X11, такие как twm или Macintosh.

К этому моменту «классическая» Mac OS начала работать с Mac OS 9, и Macintosh стал машиной с операционной системой Unix с очень разными внутренностями в виде Mac OS X. Таким образом, он унаследовал концепцию NeXT UI Dock. На оригинальных машинах NeXT использовался X11, но с довольно уникальным набором виджетов и соглашений UI. Вероятно, самым отличительным из них был Dock, который был своего рода комбинацией программ запуска и переключения задач. (Диалоговое окно «Открыть файл с несколькими столбцами», известное в OS-X, также пришло из NeXT, а также из-за некоторых других видимых вещей. Однако наиболее существенными изменениями в переходе OS-X были невидимые.) Док хорошо работал с концепцией Macintosh «Приложение как фундаментальный элемент пользовательского интерфейса». Так, пользователь может увидеть, что приложение открыто по значку на значке док-станции, и переключиться на него или запустить его, щелкнув по нему. Поскольку современная OS-X теперь поддерживает многозадачность намного лучше, чем классическая Mac OS, внезапно стало понятно, что пользователь может захотеть, чтобы в фоновом режиме работали все виды вещей, например, некоторые программы для преобразования видео, которые запускаются в фоновом режиме. устройство записи экрана, программное обеспечение VOIP, интернет-радио, веб-сервер, что-то, что говорит в ответ на произнесенную команду, и т. д. Ни один из этих элементов не обязательно должен быть открыт для отображения видимого окна, чтобы все еще иметь разумный пользовательский опыт, и меню Панель по-прежнему была отделена от окон в верхней части экрана, и вы могли иметь меню прямо на значке дока, чтобы пользователь всегда мог взаимодействовать с программой, у которой не было открытого пользовательского интерфейса. вследствие этого, Отказ от существующего соглашения о том, чтобы держать приложение открытым, просто чтобы больше походить на Windows, был бы расценен большинством пользователей Mac как ужасный шаг в неправильном направлении. Это делает невозможным несколько способов взаимодействия без реальной выгоды.

Очевидно, что некоторые пользователи предпочитают соглашение Windows, и ни один из них не является «доказуемо правильным». Но переходить от чего-то полезного без веской причины просто бессмысленно. Надеемся, что этот тур по истории поможет вам понять, что вы считаете полезным.


1
Nit: NeXTSTEP не использовал X11. У него было свое собственное управление окнами, основанное на Display PostScript (которое в конечном итоге легло в основу OS X Quartz 2D, хотя и на основе PDF, а не PS).
gsnedders

За исключением того, что все они подражали ксероксу Альто. Джобс и Гейтс оба даже сказали так буквально. И X11 / Motif был основан в основном на всех из них.
Evi1M4chine

1
Apple предоставляет разработчикам выбор выхода из приложения после закрытия последнего окна. Это зависит от разработчиков сделать этот выбор. Очевидно, многие разработчики предпочитают создавать свои приложения подобным образом.
SpaceDog

20

Окно не является приложением в MacOS, в MacOS оно подключается к приложению. Вот почему приложение не закрывается при закрытии окна.

В Windows окно - это приложение, поэтому приложение должно выйти, когда вы нажмете кнопку выхода.

На Linux разработчик решает, какую архитектуру им нравится использовать, возможны оба пути ...


4
В Windows тоже возможны оба пути ...
Крис Даун,

1
И если вы используете Какао для создания приложений, вы можете выбрать, будет ли ваше приложение закрываться при закрытии последнего окна.
Blacklight Shining

Кроме того, Системные настройки закрываются при закрытии окна. (Могут быть и другие прилагаемые приложения, которые делают это, но это единственное, о чем я могу думать на данный момент.)
Blacklight Shining

@ChrisDown: Как можно взаимодействовать с приложением без окна в Windows? Системный докер?
Evi1M4chine

15

Это зависит от приложения. Например, приложение System Preferences делает завершает работу при нажатии на красную кнопку. Однако большинство программ закрывают окно (и документы внутри него) только при попытке «закрыть» его. Я предполагаю, что идея заключается в том, чтобы сделать вещи быстрее, когда вы захотите снова использовать приложение.

Если я хочу закрыть, я хочу закрыть. Период.

Я согласен, поэтому я использую сочетания клавиш, Cmd+ wдля закрытия окна и Cmd+ qдля действительно выхода. В большинстве приложений это реализовано. Альтернатива - щелкнуть правой кнопкой мыши значок приложения и выбрать «Выход», что намного медленнее.


8

Да, это очень, очень раздражает.

Между тем, это приложение должно помочь:
http://www.carsten-mielke.com/redquits.html

Из описания:

Вы когда-нибудь пытались закрыть приложение с помощью красной кнопки и задавались вопросом, почему оно все еще открыто? RedQuits меняет это. Все программы теперь закрываются и закрываются все открытые окна, если вы нажмете красную кнопку.



1
Люди, которые используют этот обходной путь, вероятно, должны переключиться на Windows или изучить философию OS X как что-то делать. Я не хочу начинать огненную войну здесь, но это обычно применяется, когда кто-то хочет вести себя как продукт, как другой. Хорошо, что инструмент существует. Вероятно, есть несколько человек, которые используют его.
Рафаэль Бугаевский

2
И это единственный правильный ответ, СПАСИБО, @Tamas! Правило заключается в том, что компьютер и программное обеспечение должны быть гибкими и соответствовать моим потребностям и привычкам, а не наоборот!
Мареки

3

Причина этого заключается в том, что окно. В Microsoft Windows каждое приложение получает свое собственное окно, в котором в Mac OSX и предыдущих выпусках Mac OS каждый файл или документ имеет свое собственное окно. Когда вы «закрываете Safari», вы не закрываете [выход] Safari из приложения, а просто закрываете файл (http://unix.stackexchange.com). Аналогично, если вы закрываете окно Pages (приложение для обработки текста Apple), вы закрываете документ, над которым работали, но приложение Pages все еще работает. Если вы хотите выйти из приложения, используйте CMD + Q. Некоторые приложения не для создания файлов следуют этому шаблону, поскольку они могут иметь несколько открытых окон или не открывать их вообще и все еще функционировать (iTunes).

Альтернативные действия: нажмите CMD + Q, чтобы закрыть приложение, а не закрывать окно [CMD + W]. Вторичный щелчок по значку на док-станции (CTRL + щелчок правой кнопкой мыши или касание двумя пальцами трекпада / волшебной мыши) и выберите выйти таким образом.

К сожалению, это всего лишь одна маленькая вещь, которую нужно сделать, чтобы отучиться от Windows и думать, что Mac: D


Я получил это через несколько месяцев. :) На самом деле оба подхода имеют смысл.
Кто-то все еще использует вас MS-DOS

0

Сначала я думал, что это тоже плохая идея, но на самом деле - теперь я думаю, что это круто. На самом деле мне не нравится то глупое поведение, что «X» завершает приложение. Очень важно отметить, что этот подход намного лучше подходит для приложений на основе документов, таких как Photoshop или редакторы документов, - теперь я всегда забываю помнить, что «X» завершает приложение (например, Photoshop), а затем мне нужно потратить дополнительные время на инициализацию. Приложение просто там ждет ваших новых документов, почему я должен прекратить его? Хорошо, это проблема с памятью, но в настоящее время оперативная память настолько дешева, что это не имеет никакого значения.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.