Оберон умер, да здравствует Оберон! Рабочее окружение ETH Oberon

    Перед тем, как начать повествование об операционной системе A2, необходимо упомянуть и о её предшественнице ETH Oberon, являющейся дальнейшим развитием первоначальной Oberon System.

    В контексте статей (Часть 1, Часть 2), посвященных языку программирования Активный Оберон и операционной системе A2, ETH Oberon интересна с точки зрения развития пользовательского интерфейса в Оберон-системах и влияния на ИТ-индустрию. В отличии от первоначальной Oberon System, пользовательский интерфейс ETH Oberon представляет собой набор графических визуальных объектов ( гаджетов ). При портировании на новую графическую систему ещё раз было подтверждено, что ОС Оберон спроектирована очень хорошо и при портировании потребовались минимальные изменения.

    Классический рабочий стол в ОС Оберон представляет собой браузерную среду, управляемую тайловым оконным менеджером, и основан на концепции «Текст Как Интерфейс»(ТКИ) — всё есть текст ( вернее гипертекст ), любой текст может быть командой, для выполнения которой нужно либо кликнуть по ней средней кнопкой мыши, либо выделить нужный участок текста ( в любом месте ), который будет интепретирован как параметры команды и также кликнуть по команде. Команды да и вообще весь интерфейс можно писать в панелях, вставлять гаджеты, сохранять и открывать в нужное время.
    Настройки ОС хранятся и обрабатываются как обычные документы, и не отличающиеся от них (привет, вики).

    image
    На скриншоте рабочего стола ETH Oberon мы видим внизу скрытую панель, справа открыты инструментальные панели графических редакторов Rembrandt и Leonardo, слева два документа с графическим содержимым и html страница сайта ETHZ.

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

    Каждая панель имеет область управления, на которой находится маркер перетаскивания, заголовок, и управляющие кнопки.
    При нажатии кнопки Grow, панель разворачивается до размера области, в которой она находится, повторное нажатие кнопки разворачивает панель на весь рабочий стол.

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

    Кнопка Hide позволяет скрыть панель, свернув её до размера заголовка и поместив внизу рабочей области. На скриншоте скрытая панель находится в правом нижнем углу.

    Для различных типов документов на панели появляются свои, контекстно зависимые кнопки, например Store, Back…

    Для формирования рабочего окружения подсистема Gadgets предоставляет средства визуальной разработки гипертекстовых документов, которыми, по сути, и являются все панели. Содержимое панелей можно редактировать «в реальном времени» — добавлять нужные команды, гаджеты, удалять неиспользуемые и сохранять для последующего использования. Все изменения сразу становятся доступны пользователю. Конфигурационный документ позволяет настроить состав панелей, загружаемых при старте системы, размеры рабочих областей, цветовые схемы и т.п. Для формирования интерфейса также может использоваться скриптовый язык.

    Связывание гаджетов с программным кодом осуществляется посредством концепции команд ( Commands ). Команды в Обероне это экспортированные за пределы модуля процедуры специальной сигнатуры. Компилятор распознаёт такие команды и при генерации объектного модуля помещает указатели на них в специальную таблицу команд. Обращение к таким командам имеет форму ИмяМодуля.ИмяКоманды. За командой могут следовать параметры, либо параметрами является выделенный ранее текст. Командный процессор производит разбор команды, формирование запросов, параметров, загрузку модуля и передачу управления на процедуру-команду. Таким образом, атрибуту гаджета ( например кнопке ), отвечающему за хранение команды, присваивается соответствующее значение. Далее всё происходит автоматически.

    Из своего опыта, могу сказать, что интерфейс, построенный на концепции ТКИ ( текст как интерфейс ), совмещённой с браузерной средой, предоставляет мощный механизм формирования рабочего окружения под конкретного пользователя, предметную область, проект, хотя и требует некоторого времени для его освоения, в силу своей необычности. Забегая вперёд, скажу, что в ОС A2 от концепции ТКИ остались лишь небольшие следы и её оболочка рабочего стола больше напоминает классический десктоп.
    image
    Скриншот рабочего стола Oberon V4. В отличии от Oberon System 3 ( ETH Oberon ), как и в первоначальной Oberon System, рабочее окружение формируется на текстовой а не графической основе.

    Роб Пайк, создатель среды Acme для Plan 9, черпал идеи в Оберон-технологиях, и пользовательский интерфейс Acme скроен по образу и подобию пользовательского интерфейса ОС Оберон.
    image
    Скриншот Acme

    Ссылки




    Содержание серии


    Комментарии 20

      +2
      Почему он такой допотопный?
        0
        кто он?
          +1
          Как минимум интерфейс.
            +1
            Будь добр, выражай яснее свои мысли.
            1) Интерфейс чего «такой допотопный»? На скриншотах есть не только ОС Оберон но и Acme.
            2) Что ты имеешь ввиду под «допотопностью»?
        +2
        Похоже этот «текст как интерфейс» весьма любопытная штука. Необычная ветвь развития интерфейсов… вроде и не классическая юниксовая командная строка, но и не привычный всем GUI, а что-то еще, совершенно особенное.
          +1
          acme в этом смысле очень интересный, очень советую на него взглянуть.
            0
            Да, штука интересная.
            Но, как я уже говорил, требует некоторых усилий и времени на то, что бы освоиться в такой рабочей среде. Зато потом очень удобно работать, а «формошлёпка» позволяет легко создавать интерфейс/документы в режиме WYSIWYG.
              +3
              Как человек, которому регулярно приходится этим пользоваться — нет, не удобно.
                +1
                Именно Обероном или иной средой с WYSIWYG созданием формочек? Поделитесь, интересно же!
                  +1
                  Это сугубо индивидуально — кто-то до сих пор предпочитает командную строку графическому интерфейсу, кому-то на каждый чих нужна волшебная кнопка, есть люди, предпочитающие минималистическое рабочее окружение, есть и другие…

                  Мы использовали кассовые терминалы на базе ETH Oberon и даже бабульки работали без всяких проблем, не испытывая никакого неудобства.
                    0
                    Что-то мне подсказывает что интерфейс ввода кассового терминала это 20 хардварных кнопок десять из которых цифры, так что ваш опыт не показателен.
                      0
                      не только, там полноценный АРМ, имеющий разные режимы работы и нужно уметь полноценно работать с интерфейсом — авторизация, выбор режима работы, бекап, приём/передача данных, печать ценников, управление товарными запасами, отчёты и тп.
                      Часто нет штатного программиста/администратора, и работники магазина всё делают сами.
                      Мы использовали ETH Oberon для управления производственной линией.

                      Мне не совсем понятно, в чём трудность восприятия и работы с гипертекстовым документом? Ты ведь открываешь в браузере эту статью, пишешь комментарии, проблем не испытываешь, а ведь эта, страница, по сути, гипертекст. В ОС Оберон концепция просто несколько шире
                        0
                        Тем что при редактировании можно случайно стереть, например, меню программы? Я где-то читал про acme, именно это отмечалось как основная странная особенность. Вот сотрете вы меню, и — не зная команд — что будете делать? Интерфейс все-же должен иметь «защиту от дурака».
                        Собственно эта же проблема имеет место со всякими vim, из которых никто не знает как первый раз выйти: командный интерфейс мешается с рабочим пространством (в данном случае областью для ввода текста).
                          0
                          За Acme ничего не могу сказать — я им не пользовался, только статьи Пайка читал.
                          Что касается ETH Oberon, то гаджеты, да и панели целиком, можно «залочить» — заблокировать возможность изменений.
                          Кроме тогда, да, желательно знать несколько основных команд для открытия/закрытия панелей, документов и тп, чтобы в случае подобной аварии восстановить восстановить рабочее окружение.
                0
                Угу. Поэтому советую посмотреть на оригинал, а не на копии. Вирт и оберонщики тут ничего не придумали нового.

                Погуглить и прочитать про Cedar от Xerox Park :-)

                Например вот это видео:
                  –1
                  Собственно говоря, Вирт, Гутхнехт и комнания никогда даже не то что не скрывали, какие идеи и проекты повлияли на Project Oberon, но, как раз, везде это подчёркивали. Это отражено во всех документах, посвящённых Оберону.
                  Однако, в отличии, от, как ты говоришь, «оригинала», система Оберон является полностью прозрачной, минималистичной и обозримой системой, в отличии от монструозного «оригинала». Это не копия, а своя, оригинальная разработка. И именно Оберон, в силу своих особенностей, впоследствии оказывал влияние на умы разработчиков. Так было, так есть, поэтому мне не совсем понятны твои постоянные попытки опорочить Вирта и оберонщиков, приписывая им какае-то негативные деяния, тем самым вводя в заблуждение, незнакомых с оберон-технологиями, людей.
                  +2
                  Да, и в оригинале это таки называлось «Документ как интерфейс», оберонщики немного перевирают термины искажая смысл концепции.
                    0
                    Есть более общий термин «content as interface» и понятия «документ как интерфейс», «текст как интерфейс», «гипертекст...» это частности.
                    Поэтому непонятно, что ты имел ввиду, кто и что привирает…
                  0
                  Добавил ссылку на перевод статьи Юрга Гуткнехта «Оберон: перспективы эволюции»
                    0
                    По просьбам общественности добавил ссылку на дистрибутив варианта ETH Oberon, запускаемой как приложение MS Windows

                    Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                    Самое читаемое