Запасный путь прогресса
АрхивОнлайнРазработанная авторами Unix система Plan 9 была полна оригинальных находок. Одна из них - интерфейс текстового редактора Acme, в котором меню ничем не отличается от редактируемого текста, а команды вводятся аккордами на клавишах мыши.
Прогресс - странная штука. Казалось бы, его определение совершенно однозначно: больше, лучше, выше. Но иногда выходит так, что старое в силу разных причин оказывается столь популярно, что от него невозможно отказаться, а новое и хорошее забывается. Иногда -насовсем.
Именно это и происходит с операционной системой Plan 9, изобретённой, как и UNIX, в Bell Labs. Увы, Plan 9 не завоевал и малой доли популярности UNIX и два десятка лет остаётся лишь исследовательским проектом.
Зато в таком качестве Plan 9 безусловно преуспел. Unicode - пожалуй, наиболее известная из тех технологий, что подарил миру неудачливый наследник бессмертного UNIX. Но есть в нём и такие новаторские решения, которые пока не нашли применения в других системах.
Интерфейс для программистов
Ещё большая, чем в UNIX, универсальность файловой системы, оригинальный сетевой протокол и механизм взаимодействия процессов - все они до сих пор привлекают внимание специалистов. Нас же заинтересовала более заметная невооружённому взгляду деталь - пользовательский интерфейс.
Оконный интерфейс самого Plan 9 почти не представляет ценности - он более или менее похож на X Window тех времён (разработка системы началась в середине восьмидесятых годов прошлого века), и уже не кажется удобным. Куда интереснее оказался прилагаемый к Plan 9 текстовый редактор Acme.
Пользовательский интерфейс для программиста - так называет Acme Роб Пайк, его создатель и один из авторов Plan 9. В Acme необычно почти всё - и мозаичная организация окон, и текстовые команды, и интегрированный командный интерпретатор. Причём отличия совершенно невозможно описать в двух словах - придётся показывать "на пальцах".
Базовые навыки Acme
Первое, что мы видим, запустив Acme, - разделение на неперекрывающиеся окна и меню, совершенно непохожие на привычные. Если покликать по ним мышью, то быстро обнаружится, что команды не срабатывают, а мышь лишь переставляет текстовый курсор. И - о ужас - текстовый курсор не стесняется отрисовываться прямо на пунктах меню. Сперва это кажется сбоем, но если начать печатать, обнаруживается, что то, что казалось пунктами меню, на самом деле - обыкновенный поддающийся редактированию текст.
Взаимодействие с Acme полностью построено на работе с мышью, причём используется не только две привычные кнопки, но и средняя. Левая кнопка отвечает за перемещение текстового курсора и выделение, средняя - за выполнение команд, а правая - за поиск.
Действие средней и правой кнопки всегда ассоциируется с тем словом, по которому мы кликаем. К примеру, нажав средней кнопкой на команду Del, мы закроем окно, а кликнув правой по какому-нибудь слову в документе, активируем поиск этого слова в других частях текста.
Выделять средней и правой кнопкой тоже можно, и Acme среагирует на команду тогда, когда кнопка будет отпущена. Если выделить правой кнопкой адрес веб-страницы, откроется новое окно, содержащее текст с этой страницы.
Правая кнопка не только ищет слова и запрашивает веб-страницы. С её же помощью открываются файлы, а средней кнопкой - выполняются не только команды из меню но и любые системные команды. Точнее, наоборот - команды меню на самом деле системные и срабатывают относительно текущего окна. Каждое окно, кстати, связано с каталогом, адрес которого написан в левом верхнем углу окна. Как и любой другой текст на экране, этот адрес можно сменить.
Копирование и вставка текста в Acme осуществляются при помощи команд Snarf (скопировать), Cut (вырезать) и Put (вставить), но есть куда более удобный способ пользоваться ими. Выделив часть текста и не отпуская левую кнопку мыши, нажимаем среднюю и отпускаем обе. Это сочетание, называемое аккордом, соответствует команде Cut.
Чтобы вставить вырезанный текст, нужно зажать сначала левую кнопку, затем правую. Самый сложный трюк - копирование текста без удаления оригинала. Для этого требуется сперва вырезать часть и, продолжая держать левую клавишу, отпустить среднюю и нажать правую. То есть, по сути, сперва вырезать текст, а затем тут же вставить обратно.
О мозаичных окнах
В отличие от текстовых команд, способ управления окнами в Acme несколько понятнее для современного пользователя. Конечно, он не так интутивен, как в привычных операционных системах, но изучению без помощи инструкции всё же поддаётся. Квадратик над полосой прокрутки меняет размеры тайла, команда New создаёт новую область, а Del, как уже говорилось, закрывает её.
Обычно новые области создаются в той же колонке, что и та, из которой была активирована команда New. Единственное исключение - результаты работы консольных приложений: они обычно выводятся справа от той области, где выполнялась команда. Новые колонки создаются командой Newcol.
Плюсы и минусы
Интерфейс, в котором можно запросто взять и дописать команды в меню, как минимум интригует, а неперекрывающееся расположение окон стало более востребованным, чем 30 лет назад из-за распространения больших мониторов. Однако сочетание мозаичных окон с необходимостью работать при помощи мыши сегодня выглядит довольно странным.
Особенно несовременны аккорды, исполняемые клавишами мыши. Пожалуй, даже с гитарой для игры в Guitar Hero проще управиться, чем с мышью в Acme. Мало того, купить мышь с настоящей средней кнопкой сегодня практически невозможно, а выделять текст, зажимая колёсико, - мучение. Единственный выход - использовать мышь с боковой кнопкой и переназначать её действие на среднюю.
Работать в Acme, не изучая Plan 9 или Inferno, можно - для этого даже сделана специальная версия под названием Acme Stand Alone Complex (Acme SAC), последние версии которой работают не только в современных FreeBSD, Mac OS X и Linux, но и в Windows. Тем не менее, чтобы по-настоящему проникнуться всеми достоинствами Acme, будет полезно окунуться в настоящий Plan 9. Заменить современные системы он не в состоянии, зато в нём можно найти кладезь полезных идей, утерянных, когда прогресс пошёл по другому пути.
Читайте также
- "Крах иллюзий" - перевод статьи Роба Пайка о стагнации в области разработки операционных систем
- "Возвращение в ад" - статья в "Компьютерре" об Inferno - следующей экспериментальной операционной системе, сделанной Пайком в Bell Labs
- "Куда ведут окна" - статья в "Компьютерре-Онлайн" об оконных системах