четверг, 6 мая 2010 г.

Но почему вообще возможно отключить рабочий стол?

Это перевод Why is it even possible to disable the desktop anyway? Автор: Реймонд Чен.

Некоторое время назад, я упомянул об опасности отключения окна рабочего стола. Но почему это вообще возможно?

Это просто артефакт истории философии дизайна операционной системы Windows.

В те давние времена у вас было очень мало памяти, жёсткие диски имели малый объём, большинство процессоров не имели аппаратной поддержки защиты памяти, а разработка программного обеспечения была уделом элиты, которая могла потратить несколько тысяч долларов на SDK. Из всего этого следовало:
  • Жёсткие ограничения на память означали, что всё опциональное должно быть выброшено и не должно реализовываться.
  • Считалось, что разработчики программ не будут тупить.
  • Считалось, что разработчики программ не будут делать злонамеренных вещей.
  • Считалось, что разработчики программ будут делать всё правильно.
Конечно же, мы могли добавить дополнительные проверки во все места, где окно рабочего стола могло оказаться отключенным, но это сделало бы одно окно "более специальным", чем другие, усложняя дизайн менеджера окон. Не забываем: всё необязательное должно было быть выброшено.

Предполагалось, что разработчики программ не должны были совершать таких глупых ошибок, которые приводили бы к блокировке рабочего стола, повреждению кучи или любых других ошибок класса "не делай так", кроющихся в мире программирования под Windows. Если же происходила такая серьёзная ошибка, то она вылавливалась бы отделом тестирования до выпуска программы. Разработка программ тогда была тяжёлым делом, потому что никто не сказал, что это будет просто.

Предполагалось, что разработчики программ будут относится с уважением к своим пользователям. Потому что, в конце концов, разработчики программ, кто злоупотреблял доверием своих клиентов, лишались бы их. Если программа прописывает себя в автозапуск, то она делает это не из-за эгоистичности её разработчика, а потому что так захотел пользователь. Так считалось.

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

Мир программного обеспечения изменился с тех дней. У меня была отличная беседа с моим коллегой Zeke, где мы обсудили, как философия дизайна изменилась за это время. Может быть позже я напишу ещё несколько слов по этой теме...

Комментариев нет:

Отправить комментарий

Можно использовать некоторые HTML-теги, например:

<b>Жирный</b>
<i>Курсив</i>
<a href="http://www.example.com/">Ссылка</a>

Вам необязательно регистрироваться для комментирования - для этого просто выберите из списка "Анонимный" (для анонимного комментария) или "Имя/URL" (для указания вашего имени и ссылки на сайт). Все прочие варианты потребуют от вас входа в вашу учётку (поддерживается OpenID).

Пожалуйста, по возможности используйте "Имя/URL" вместо "Анонимный". URL можно просто не указывать.

Ваше сообщение может быть помечено как спам спам-фильтром - не волнуйтесь, оно появится после проверки администратором.