Книга: Искусство программирования для Unix
20.3.2. Слабая поддержка GUI-интерфейсов в Unix
20.3.2. Слабая поддержка GUI-интерфейсов в Unix
Опыт Unix доказывает, что использование нескольких метафор в качестве базиса для интегрирующей структуры представляет собой мощную стратегию (обсуждение интегрирующих структур и общего контекста приведено в главе 13). Визуальная метафора "в сердце" современных GUI-интерфейсов (файлы, представленные пиктограммами и открываемые щелчком мыши, который запускает некоторую программу, предназначенную для обработки и обычно способную создавать и редактировать данные файлы) с момента ее разработки в Xerox PARC в 1970-х годах доказала свою способность успешно и долговременно удерживать пользователей и разработчиков интерфейсов.
Несмотря на значительные недавние усилия, в 2003 году Unix все еще поддерживала эту метафору слабо и неохотно — существовало множество уровней, несколько соглашений и только слабые конструкционные утилиты. Типичная реакция со стороны опытных профессионалов Unix — подозревать, что это отражает более глубокие проблемы с самой GUI-метафорой.
Я думаю, что часть проблемы заключается в том, что мы до сих пор не имеем правильной метафоры. Например, в Macintosh, для того чтобы удалить файл, я перетаскиваю его в корзину, но когда я перетаскиваю его на диск, то файл копируется, кроме того, я не могу перетащить файл на пиктограмму принтера, для того чтобы распечатать его, потому что для этого используется меню. Я мог бы продолжать. Это похоже на файлы в OS/360, до того как появилась Unix с ее простой (но не слишком простой) файловой идеей.
В главе 11 приводились цитаты Брайана Кернигана и Майка Леска по этому же поводу, но проблему невозможно решить, лишь обвиняя GUI-интерфейс. Несмотря на все его недостатки, имеется огромная потребность в GUI-интерфейсах со стороны конечных пользователей. Предположим, что удалось создать правильную метафору на уровне взаимодействия с пользователем. Была бы в таком случае Unix способна изящно поддерживать GUI-интерфейс?
Вероятно, нет. Авторы касались данной проблемы, анализируя, является ли модель представления файлов в виде большого блока байтов адекватной. Для более развитой поддержки GUI-интерфейсов механизм мог бы быть предоставлен файловыми атрибутами в стиле Macintosh. Однако кажется маловероятным, что такой подход полностью разрешит проблему. Объектная модель в Unix не включает в себя верных фундаментальных конструкций. Необходимо определить, какой в действительности была бы строгая интегрирующая структура для GUI интерфейсов. И, что не менее важно, как ее можно интегрировать с существующими структурами Unix. Это сложная проблема, требующая фундаментального понимания, которое пока невозможно "среди шума и путаницы" программной инженерии и академических исследований.
- 20.3.1. Unix-файл представляет собой только большой блок байтов
- 20.3.2. Слабая поддержка GUI-интерфейсов в Unix
- 20.3.3. Удаление файлов в Unix необратимо
- 20.3.4. Unix предполагает статичную файловую систему
- 20.3.5. Конструкция системы управления задачами была плохо реализована
- 20.3.6. В Unix API не используются исключительные ситуации
- 20.3.7. Вызовы ioctl(2) и fcntl(2) являются препятствиями
- 20.3.8. Модель безопасности Unix, возможно, слишком примитивна
- 20.3.9. Unix имеет слишком много различных видов имен
- 20.3.10. Файловые системы могут считаться вредными
- 20.3.11. На пути к глобальному адресному пространству Internet
- 20.3.11. На пути к глобальному адресному пространству Internet
- 20.3.4. Unix предполагает статичную файловую систему
- 20.3.8. Модель безопасности Unix, возможно, слишком примитивна
- 20.3.10. Файловые системы могут считаться вредными
- Поддержка SMP
- Глава 1 UNIX для начинающих
- ЧАСТЬ 1 ВВЕДЕНИЕ В IPC UNIX
- Рекламно-информационная поддержка
- 6.1.5. Поддержка WINS
- 12.5. Другие библиотеки для создания графических интерфейсов
- Part Three - Latent Ambiguities
- GUI-Based Printer Configuration Quick Start