Оберон умер, да здравствует Оберон! Рабочее окружение ETH Oberon
Перед тем, как начать повествование об операционной системе A2, необходимо упомянуть и о её предшественнице ETH Oberon, являющейся дальнейшим развитием первоначальной Oberon System.
В контексте статей (Часть 1, Часть 2), посвященных языку программирования Активный Оберон и операционной системе A2, ETH Oberon интересна с точки зрения развития пользовательского интерфейса в Оберон-системах и влияния на ИТ-индустрию. В отличии от первоначальной Oberon System, пользовательский интерфейс ETH Oberon представляет собой набор графических визуальных объектов ( гаджетов ). При портировании на новую графическую систему ещё раз было подтверждено, что ОС Оберон спроектирована очень хорошо и при портировании потребовались минимальные изменения.
Классический рабочий стол в ОС Оберон представляет собой браузерную среду, управляемую тайловым оконным менеджером, и основан на концепции «Текст Как Интерфейс»(ТКИ) — всё есть текст ( вернее гипертекст ), любой текст может быть командой, для выполнения которой нужно либо кликнуть по ней средней кнопкой мыши, либо выделить нужный участок текста ( в любом месте ), который будет интепретирован как параметры команды и также кликнуть по команде. Команды да и вообще весь интерфейс можно писать в панелях, вставлять гаджеты, сохранять и открывать в нужное время.
Настройки ОС хранятся и обрабатываются как обычные документы, и не отличающиеся от них (привет, вики).
На скриншоте рабочего стола ETH Oberon мы видим внизу скрытую панель, справа открыты инструментальные панели графических редакторов Rembrandt и Leonardo, слева два документа с графическим содержимым и html страница сайта ETHZ.
Пространство рабочего стола разбито на две области. Левая, занимающая основную часть пространства, предназначена для отображения документов, правая, меньшая, в основном, для командных панелей и инструментов, хотя здесь же могут быть открыты документы, для отображения которых этой области достаточно.
Каждая панель имеет область управления, на которой находится маркер перетаскивания, заголовок, и управляющие кнопки.
При нажатии кнопки Grow, панель разворачивается до размера области, в которой она находится, повторное нажатие кнопки разворачивает панель на весь рабочий стол.
Кнопка Close возвращает панель к предыдущему состоянию, то есть, если панель распахнута на весь рабочий стол, то она свернётся до размера области, повторное нажатие сворачивает панель до её нормального размера, третье нажатие закроет панель.
Кнопка Hide позволяет скрыть панель, свернув её до размера заголовка и поместив внизу рабочей области. На скриншоте скрытая панель находится в правом нижнем углу.
Для различных типов документов на панели появляются свои, контекстно зависимые кнопки, например Store, Back…
Для формирования рабочего окружения подсистема Gadgets предоставляет средства визуальной разработки гипертекстовых документов, которыми, по сути, и являются все панели. Содержимое панелей можно редактировать «в реальном времени» — добавлять нужные команды, гаджеты, удалять неиспользуемые и сохранять для последующего использования. Все изменения сразу становятся доступны пользователю. Конфигурационный документ позволяет настроить состав панелей, загружаемых при старте системы, размеры рабочих областей, цветовые схемы и т.п. Для формирования интерфейса также может использоваться скриптовый язык.
Связывание гаджетов с программным кодом осуществляется посредством концепции команд ( Commands ). Команды в Обероне это экспортированные за пределы модуля процедуры специальной сигнатуры. Компилятор распознаёт такие команды и при генерации объектного модуля помещает указатели на них в специальную таблицу команд. Обращение к таким командам имеет форму ИмяМодуля.ИмяКоманды. За командой могут следовать параметры, либо параметрами является выделенный ранее текст. Командный процессор производит разбор команды, формирование запросов, параметров, загрузку модуля и передачу управления на процедуру-команду. Таким образом, атрибуту гаджета ( например кнопке ), отвечающему за хранение команды, присваивается соответствующее значение. Далее всё происходит автоматически.
Из своего опыта, могу сказать, что интерфейс, построенный на концепции ТКИ ( текст как интерфейс ), совмещённой с браузерной средой, предоставляет мощный механизм формирования рабочего окружения под конкретного пользователя, предметную область, проект, хотя и требует некоторого времени для его освоения, в силу своей необычности. Забегая вперёд, скажу, что в ОС A2 от концепции ТКИ остались лишь небольшие следы и её оболочка рабочего стола больше напоминает классический десктоп.
Скриншот рабочего стола Oberon V4. В отличии от Oberon System 3 ( ETH Oberon ), как и в первоначальной Oberon System, рабочее окружение формируется на текстовой а не графической основе.
Роб Пайк, создатель среды Acme для Plan 9, черпал идеи в Оберон-технологиях, и пользовательский интерфейс Acme скроен по образу и подобию пользовательского интерфейса ОС Оберон.
Скриншот Acme
Ссылки
- Юрг Гункнехт. Оберон: перспективы эволюции
- Дистрибутив Plugin Oberon — вариант ETH Oberon, запускаемой как приложение MS Windows
Содержание серии
- Некоторые любят поактивней
- Модули
- Рабочее окружение ETH Oberon