В этом смысле, крайне полезным представляется знакомство учащихся с разными средами уже на начальном этапе освоения графических интерфейсов. Это не обязательно должны быть разные интегрированные среды, но само представление о том, что один и тот же результат может достигаться с помощью разных интерфейсных средств, должно быть передано обязательно. В общем случае это возможно и в рамках одной интегрированной среды из числа рассматриваемых ниже – и «КДЕ», и «Гном» в высшей степени гибки в отношении настройки внешнего вида и «поведения». Эта гибкость также весьма полезна для обеспечения доступности и максимально достижимого комфорта учащимся с физиологическими особенностями и физическими недостатками (дальтонизмом, слабым зрением, ограниченной подвижностью или расстроенной координацией движений и т.п.).
2.17 Общие черты интегрированных сред
Сколько-нибудь последовательной теории интегрированных графических сред не существует. Изучая отдельные среды в динамике их развития, можно, тем не менее, выделить несколько общих черт:
они опираются на определенный интерфейс разработчика (API), состоящий из библиотек, доступных также разработчикам прикладных программ (будь то MS Windows API для «Майкрософт Уиндоуз», «Мотиф» для «CDE», «Qt» для «КДЕ» или GTK+ для «Гном»);
они реализуют элементы объектной метафоры (одельные экземпляры сущностей, таких как файлы, процессы (их потоки ввода-вывода) визуализируются определенным образом, на них можно фокусироваться и выполнять с ними различные действия, их состояния и изменения этих состояний также могут визуализироваться или озвучиваться). Целостная объектная метафора своей реализации не нашла (и, видимо, последовательно «объектная» среда была бы крайне неудобной в использовании);
они реализуют единообразные элементы управления («виджеты»), зачастую не только в оформлении отдельных окон, но и в их «начинке»;
они содержат те или иные элементы управления, не привязанные к отдельным окнам прикладных программ («общие» меню, «панели управления», «поверхность стола» и т.п.);
они позволяют согласованно изменять свойства интерфейса образующих среду программ;
они реализуют «буфер (буферы) обмена», позволяющий передавать типизованные данные от программы программе (оконная система «Икс» содержит буфер, позволяющий передавать данные лишь простого текстового типа);
они реализуют возможность «перетаскивания» (drag'n'drop) объектов или данных между окнами одной программы или разных программ.
(За ограниченностью объема «за бортом» остаются более сложные вопросы, такие, как компонентная объектная модель и модели сетевого взаимодействия, так или иначе «втягиваемые» в проекты интегрированных сред.)
На сегодня существуют и развиваются две свободные интегрированные графические среды общего назначения: «КДЕ» и «Гном». Они входят в поставку большинства стандартных (открытых) ОС, как свободных, так и несвободных. Хотя «Гном» на полгода моложе «КДЕ», мы начнем обсуждение именно с «Гном».
2.18 «Гном» (Модельная среда сетевых объектов GNU)
«Гном» (GNOME, GNU Network Object Model Environment – «Среда GNU, основанная на модели сетевых объектов», но также и «Образцовая среда для сетевых объектов GNU») – один из самых амбициозных и масштабных проектов в программистском сообществе.
Кроме реализации функционально полной графической среды (возможно, уместнее говорить о сенсуальных средах, учитывая то, что звук стал их полноправной частью), «Гном» претендует на то, чтобы полностью реализовать спецификации промышленной платформы сетевого взаимодействия CORBA и полностью абстрагировать слой «менеджера рабочего стола» (или «графической среды») от низлежащего слоя управления окнами («оконного менеджера»).
«Гном» поддерживает ряд оконных менеджеров, среди которых: Sawfish («штатный» оконный менеджер по умолчанию), Enlightenment, IceWM, WindowMaker, AfterStep и FVWM2, совместимые с «Гном», впрочем, в разной степени.
Сегодняшняя версия «Гнома» («Гном» 2.4) – полноценная интегрированная среда, включающая реализацию повседневно необходимых функций и позволяющая использовать сторонние решения для реализации функциональности, которая в ней отсутствует.
«Гном» использует один из самых развитых интерфейсных пакетов GTK+, реализованный для разных платформ. Над ним надстраивается масса компонентов и библиотек, обеспечивающих сетевую функциональность, интерфейсы к различным языкам программирования, работу со звуком через механизмы ОС и пр. Сам «Гном» стремится оставаться мобильным и доступным во всех открытых системах. Он стабильно работает в «ГНУЛинукс», «БСД», AIX и «Солярис»; последнее обстоятельство способствовало поддержке разработки «Гном», которую оказывает Sun Microsystems через созданный в 2001 г. году «Фонд “Гном”», среди учредителей которого также крупнейшие поставщики свободных ОС.
С пользовательской точки зрения «Гном» предстает как набор базовых компонентов интерфейса и «апплетов», утилит и прикладных программ. К базовым компонентам относятся менеджер файлов и поверхности стола Nautilus, панели управления и меню GNOME Panel и центр управления (Gnome Control Center).
«Наутилус». Менеджер файлов Nautilus позволяет отображать содержимое файлов и каталогов в окнах и выполнять над файлами обычные действия (удаление, переименование, копирование и перемещение и т.п.), а также осуществлять предварительный просмотр многих типов данных. «Наутилус» эффектен, но работа с ним не более эффективна, чем с прочими браузерами файлов, включаемыми обычно в графические среды (менеджер файлов CDE или «Майкрософт Уиндоуз Эксплорер»).
Помимо отображения содержимого каталогов в окнах, «Нау» также может отображать один из каталогов на поверхности «рабочего стола»: размещенные на нем иконки как бы приклеены к монитору, и при смене текущего экрана остаются на том же месте относительно наблюдателя (так же, кстати, ведут себя и открытые окна, если их «приклеить»).
Поддерживается широкий спектр операций переноса мышью (drag'n'drop), причем «перетаскиванию» подвержены не только объекты (файлы, пункты меню и т.п.), но и некоторые их свойства: так, можно «взять цвет» в окне выбора цвета и перенести его на панель, которая воспримет его. Есть даже операции, позволяющие назначить один объект свойством другого: например, если на панель «перетащить» не цвет, а файл с картинкой, последняя станет ее фоном. «Таскать» файлы между окнами «Нау», на рабочий стол и панели можно практически без ограничений.