Рубрика:
Карьера/Образование /
Ретроспектива
|
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|
Дмитрий Мороз
Окно в электронный мир: история развития графического пользовательского интерфейса Часть 1
Сегодня сотни компаний и исследовательских учреждений, тысячи программистов следят за тем, чтобы общение рядового пользователя с компьютером было как можно более простым и понятным. В совершенствование графического интерфейса операционных систем было вложено огромное количество сил, средств и, главное, времени. Хроники почти пятидесяти лет разработок – перед вами.
В мире бытует мнение, согласно которому графический пользовательский интерфейс (GUI – Graphical User Interface, интерфейс передачи команд компьютеру с использованием устройства-указателя, с помощью которого пользователь манипулирует графическими объектами, отображающимися на экране монитора) был создан в недрах исследовательских лабораторий центра Palo Alto Research Center компании Xerox и позднее популяризирован Apple. Хотя специалисты PARC, безусловно, внесли гигантский вклад в это дело, первооткрывателями в области GUI являются всё-таки другие люди.
Ещё в начале 30-х годов прошлого века учёный Ванневар Буш (Vannevar Bush) придумал концепцию устройства под названием Memex. Согласно его описанию, это была доска, содержавшая два сенсорных графических дисплея, клавиатуру, а также подключённый к ней сканер. Благодаря Memex пользователь получал доступ ко всем человеческим знаниям посредством связей, по принципу своей работы очень похожих на гиперссылки. «В Memex человек хранит все свои книги, записи, связи, которые могут быть легко доступны по его желанию в мгновение ока» – так Буш описывал свою задумку. В то время цифровых компьютеров ещё не существовало, поэтому о создании подобного устройства речи быть не могло. Общественность отнеслась к замыслам Буша с иронией.
40-е годы принесли миру первые цифровые вычислительные машины, а также вакуумные трубки – основу дисплея для компьютера.
В июле 1945 года Буш переосмыслил свои идеи относительно Memex в статье «Как мы можем мыслить» (As We May Think), которая была опубликована в газете Atlantic Monthly. Спустя несколько месяцев, а именно 10 сентября журнал Life перепечатал сокращённую версию статьи, снабжённую, однако, несколькими эскизами, демонстрировавшими, как могла бы выглядеть Memex. Прочтение этого материала вызвало у молодого Дугласа Энгельбарта невероятный интерес, и он задался целью построить такую машину.
Первый среди первых
В 1948 году 23-летний Дуглас Энгельбарт (Douglas Engelbart) получил степень бакалавра в области электрической инженерии Орегонского государственного университета. Спустя семь лет он стал кандидатом технических наук при Калифорнийском университете и был приглашён на работу в Стэнфордский исследовательский институт.
Статья Буша воодушевила Энгельбарта ещё во время Второй мировой войны. Будучи оператором радарной станции, он представлял себе систему, построенную на базе электронно-лучевых трубок, с помощью которых пользователь мог создавать информационные модели в графическом виде, а затем динамически передвигаться между ними.
В 1959 году благодаря своим разработкам в области миниатюризации компьютерных компонентов Энгельбарт наконец-то получил необходимое ему финансирование от Военно-воздушных сил Соединённых Штатов.
Последовавшие за этим три года исследований явили в октябре 1962 года доклад под названием «Расширение человеческого интеллекта» (Augmenting Human Intellect). В этом документе Энгельбарт доказывал, что цифровые компьютеры могли бы обеспечить наиболее быстрый метод «увеличения возможностей человека для понимания возникшей проблемы и поиска решения, удовлетворяющего его конкретные нужды». Учёный представлял компьютер не в качестве заменителя человеческого интеллекта, а как средство для его улучшения. В качестве одного из примеров описываемой им технологии был архитектурный дизайн зданий, похожий на современные графические средства автоматизированного проектирования.
В 60-е годы компьютеры представляли собой гигантские мейнфреймы, с которыми пользователи взаимодействовали посредством так называемой «пакетной обработки» (batch processing): программа вводилась в машину посредством серии перфорированных карт, после чего выполнялась в течение строго запланированного времени. Результата вычислений приходилось ждать часами и даже днями. Ввод команд при помощи текстового терминала в режиме «реального времени» только начал набирать обороты.
В результате труд Энгельбарта даже для 1962 года выглядел очень смело. Однако, в отличие от Буша, Дуглас не собирался останавливаться лишь на голой теории и активно работал над созданием системы, которую планировал продемонстрировать в качестве подтверждения своих слов. Благодаря финансированию военными его проекта Энгельбарт имел доступ практически ко всему необходимому оборудованию, а недостающие части создавал сам.
Для работы с проектируемой им визуальной системой требовались новые типы устройств управления. Энгельбарт создал ряд манипуляторов, среди которых были экзотические устройства, крепившиеся к носу или подбородку и управлявшиеся ими. Победу же одержала деревянная коробочка с одной кнопкой и двумя миниатюрными колёсами для передвижения по осям X и Y, получившая неофициальное, однако впоследствии ставшее всенародным название – «мышь». В процессе тестирования использовались и более традиционные сенсорный дисплей и световое перо, однако мышь оказалась наиболее естественным способом управления экранным курсором.
Дуглас Энгельбарт вместе со своим изобретением – компьютерной «мышью»
«Напарником» нового устройства была специальная клавиатура, также разработанная Энгельбартом. Одеваемая на левую руку пользователя, она содержала всего пять клавиш, однако посредством их комбинаций (за это она и получила прозвище «аккордная») количество воспроизводимых символов достигало 32, чего с лихвой хватало для всего алфавита.
Эти устройства ввода были подключены к каждой из шестнадцати рабочих станций, которые, в свою очередь, соединялись с компьютером SDS 940 производства компании Scientific Data Systems, имевшим немыслимые на то время 96 Мб дискового пространства. Информация, набираемая пользователем посредством клавиатуры, поступала на один из двух контроллеров дисплея. После этого текст отображался на 12,7 см электронно-лучевой трубке, перед которой была установлена профессиональная чёрно-белая камера. Полученное в результате телевизионное изображение через панель управления камерой отображалось на каждом из дисплеев рабочих станций.
Окно Диалоговой системы
Такая запутанная схема передачи информации была вызвана не только ограниченными возможностями компьютеров того времени, но и требованиями специально написанного программного обеспечения.
Наиболее инновационной программой разрабатываемой Энгельбартом системы являлся Журнал (Journal). Он представлял собой примитивную версию коллективного редактора по созданию различной документации. Несколько пользователей могли одновременно создать документ, содержавший текст и графику, который затем сохранялся на жёсткий диск SDS 940. Между различными документами можно было устанавливать связи для быстрого перехода, которые получили название «гипертекстовых» (hypertext) ссылок. Они могли содержаться и в самом документе, позволяя моментально получить доступ к интересующей части документа. Таким образом Журнал воплощал в себе главную идею Memex Буша – единую среду быстрого доступа к пользовательской информации.
Дугласу и его команде понадобилось восемь лет, дабы изложенное в «Расширении человеческого интеллекта» стало реальностью. Для завершения разработки к средствам, выделенным ВВС США, «присоединились» деньги Национального управления США по аэронавтике и исследованиям космоса (National Aeronautics and Space Administration, NASA) и Агентства по перспективным исследовательским разработкам (Advanced Research Projects Agency, ARPA).
9 декабря 1968 года в Сан-Франциско среди узкого круга приглашённых специалистов состоялась презентация «Диалоговой системы» (oNLine System – NLS), такое название Энгельбарт дал своей разработке. NLS была соединена посредством телефонной линии с исследовательским центром Дугласа в Менло Парке, Калифорния. Перед зрителями был размещён 6-метровый проекционный экран, на котором демонстрировались возможности системы.
Энгельбарт показал зрителям работу гипертекстовых ссылок, контекстно-зависимую помощь, групповое создание документов, электронную почту, мгновенные сообщения. Кроме того, специально для демонстрации в NLS была добавлена возможность ведения видеоконференций. Интерфейс «Онлайновой системы» мог выводить на экран одновременно несколько окон, однако в силу ограниченных ресурсов границы между ними не отображались.
Проведение видеоконференции в NLS
Полуторачасовая демонстрация своим обилием новых технологий вызвала живейший интерес у собравшихся. Однако до коммерциализации NLS дело не дошло, поскольку наравне со своими достоинствами система обладала рядом недостатков, критичных для потребителя: необходимостью изучения множества диалоговых команд, а также 5-битного двоичного кода для набора текста. Кроме того, с появлением в 1969 году сети ARPANet концепция вычислений с разделением времени начала стремительно устаревать, уступая дорогу индивидуальным мини-компьютерам. И хотя попытки переноса системы на другое аппаратное обеспечение увенчались успехом, популярности NLS за пределами Стэнфордского исследовательского института это не прибавило.
Энгельбарт продолжал работать над совершенствованием технологий, заложенных в NLS вплоть до 1989 года, когда финансирование проекта было полностью прекращено.
Персональный компьютер и графический интерфейс
Исследовательский центр Palo Alto Research Center (PARC), созданный компанией Xerox в середине 1970 года, привлекал в свои ряды множество талантливых специалистов. Среди них оказались и несколько бывших подчинённых Энгельбарта, отказавшихся работать со своим бывшим начальником из-за различий во взглядах на будущее компьютерных вычислений. Они-то и продолжили развитие идей графического пользовательского интерфейса под новым «крылом».
Как раз в это время в PARC был создан первый лазерный принтер, и руководство Xerox решило, что наиболее верным шагом для компании будет интеграция копировальных и цифровых технологий и выведение на рынок комплексного решения, получившего название «офис будущего». В результате в недрах исследовательского центра начались работы по созданию компьютера, который должен был составить компанию новому принтеру. Ну а бывшие инженеры Энгельбарта и их новые коллеги взялись за разработку графического пользовательского интерфейса для новой машины.
Руководителем группы по созданию GUI был назначен Алан Кей (Alan Kay), пришедший в исследовательский центр из Университета штата Юта. Два года (с 1967 по 1969 год) понадобилось Кею и его коллеге по учебному заведению Эду Чидлу (Ed Cheadle), дабы построить компьютер под названием FLEX, в пользовательском интерфейсе которого были впервые применены такие элементы GUI, как перекрываемые окна и квадратные иконки, представляющие собой данные и программы.
Результатом работы слаженной команды сотрудников PARC стало появление в 1973 году Alto. Более подробно о нём, а также о его наследнике STAR вы можете прочитать в №12 журнала за 2006 год.
Главной особенностью компьютера был его 12,8-дюймовый экран, имевший портретную ориентацию и размер стандартного листа формата А4, а также способный выводить растровую графику с разрешением 606х808 пикселей. Стоит вспомнить, что подавляющее большинство терминалов того времени могло отображать лишь текстовые символы, а построенная на базе векторных электронно-лучевых трубок NLS – текст и прямые линии. Компьютер имел клавиатуру и трёхкнопочную мышь, которую Xerox лицензировала у Стэнфордского университета по предложению бывших подопечных Энгельбарта. Кстати, именно в недрах PARC один из коллег Дугласа, Бил Инглиш (Bill English) в 1972 году изобрёл ставшую «классической» шариковую мышь.
Интерфейс операционной системы AltoOS правильнее именовать условно-графическим: например, файловый менеджер, названный разработчиками Neptune Directory Editor, отображал списки файлов в директориях в виде двух колонок, вокруг которых располагались кнопки, выполнявшие различные команды. Нечто подобное десять лет спустя было воплощено в Norton Commander. Однако «окон» в современном понимании в операционной системе AltoOS изначально не было.
Файловый менеджер AltoOS
Поскольку инженерам PARC приходилось разрабатывать ПО практически с нуля, интерфейс операционной системы и приложений не был стандартизирован. Например, в разработанном для Alto текстовом редакторе под названием Bravo меню с кнопками было расположено не сверху, как в файловом менеджере, а снизу. Bravo мог одновременно отображать несколько типов шрифтов, текст различных размеров, а благодаря использованию принципа WYSIWYG (What You See Is What You Get – что ты видишь, то и получишь) напечатанная на принтере страница ничем не отличалась от своего воплощения на экране.
Ещё одной программой, наглядно демонстрировавшей возможности интерфейса AltoOS, был графический редактор Draw. Именно эта программа первой реализовала принцип многооконного интерфейса – разделения рабочего пространства на несколько отдельных областей, отвечающих за определённые функции. И опять же данный вариант организации GUI отличался как от операционной системы, так и от Bravo.
Рабочая область Draw состояла из нескольких окон, каждое из которых содержало команды либо действия определённой группы. В центре располагалось основное окно, являвшееся «холстом». Окно, расположенное слева, содержало набор команд и различные виды кистей, верхнее окно было предназначено для ввода дополнительных текстовых команд, а также вывода системных сообщений программы.
Кстати, впервые курсор мыши изменял свою форму в зависимости от выполнения конкретной задачи: он мог выглядеть наконечником стрелы в одном окне и кистью – в другом.
Исследователи PARC понимали, что для новых приложений им был необходим новый интерфейс, более дружелюбный и, самое главное, стандартизированный. Для достижения этого необходимо было создать абсолютно новую среду разработки приложений, которой и стал Smalltalk.
Smalltalk: шаг навстречу пользователю
Алан Кей начал разрабатывать Smalltalk в 1969 году в Университете штата Юта. Изначально он должен был стать основой пользовательского интерфейса для ещё одного проекта Кея – так и не увидевшего свет портативного компьютера Dynabook. Позднее, уже в стенах PARC, инженер продолжил свои разработки, однако отныне ориентируясь на Alto.
Smalltalk задумывался и как язык программирования и как среда разработки, основным достоинством которой должна была стать простота в использовании. Smalltalk стал первым объектно-ориентированным языком программирования. Он также обладал некоторыми новомодными возможностями, например, автоматическое управление памятью, позволявшими значительно облегчить труд программистам. Среда разработки Smalltalk одновременно являлась пользовательским интерфейсом, в котором работали программы, написанные на этом языке.
Smalltalk представлял собой среду визуальной разработки приложений, подобную Visual Studio и Delphi. В то же время эта среда являлась самостоятельным окружением, заменявшим интерфейс AltoOS. Будучи запущенной из файлового менеджера операционной системы, среда Smalltalk полностью преображала внешний вид интерфейса Alto.
Каждое окно в Smalltalk имело границы собственной рабочей зоны, отделявшие его от других окон, а также от фона серого цвета. Окно имело размещённую сверху строку заголовка, по которой можно было идентифицировать его, а также перемещать по экрану. Строка заголовка не занимала всю длину окна, а расширялась с крайнего левого угла вправо лишь на необходимую для отображения названия длину (подобная особенность в будущем была использована в операционной системе BeOS). Одни окна могли перекрывать другие, а выбранное окно автоматически перемещало себя на верхушку списка открытых.
В среде разработки Smalltalk нашли применение и иконки, представлявшие собой программы или документы, которые можно было открыть либо произвести над ними какие-либо действия. При проектировании Smalltalk были изобретены и внедрены в её среду разработки выпадающие меню, полосы прокрутки, радиокнопки, диалоговые окна – все те элементы, которые сегодня можно увидеть практически в любой современной программе.
Первая стабильно функционирующая версия Smalltalk появилась в 1974 году и сразу же была «взята на вооружение» программистами PARC. Публичный выход языка в свет состоялся в 1980 году. Именно тогда стала общедоступной его переработанная и усовершенствованная версия под названием Smalltalk-80.
В 1974 году Ларри Теслером (Larry Tesler) был разработан текстовый редактор Gypsy, наглядно продемонстрировавшей возможности Smalltalk. Gypsy стал первым представителем прикладного ПО, использовавшего для более лёгкого в освоении и дружелюбного интерфейса выпадающие меню и иконки. Этот текстовый редактор обладал рядом передовых на тот момент особенностей, например, возможностью рисования и обработки графических изображений непосредственно в окне Gypsy, что позволяет назвать его первой программой для вёрстки и дизайна. Позднее Теслер перешёл в Apple для работы над проектом LISA, а ещё один разработчик Gypsy, Тим Мотт (Tim Mott), а также несколько других инженеров покинули стены PARC, дабы в недрах Microsoft разработать текстовый редактор Word for DOS.
Однако на полную мощность возможности Smalltalk были задействованы лишь при написании ПО для нового компьютера Xerox – STAR, вышедшего в апреле 1981 года.
Офисный стол и компьютер
На разработку пользовательского интерфейса для операционной системы STAR (названной STAROS) у сотрудников PARC, по заверениям Xerox, ушло около 30 человеко-лет. В случае со STAR было решено отказаться от портретной ориентации дисплея и вместо него воспользоваться альбомной. Вместе с этим размеры самого экрана были увеличены до 17 дюймов по диагонали, а разрешение – до 1024 х 808 точек.
Во время проектирования пользовательского интерфейса STAROS в недрах исследовательского центра была придумана аббревиатура WIMP, расшифровывавшаяся как «Окна, иконки, меню, укажи и щёлкни» (Windows, Icons, Menus, Point-n-Click). По мнению разработчиков, эти элементы должны были стать базовыми при создании любого GUI, в том числе и при проектировании интерфейса STAROS.
Графический интерфейс STAROS
Вот как описывал концепцию GUI операционной системы один из его разработчиков Дэвид Смит (David Smith): «Первое, что видит пользователь – это Рабочий стол (Desktop), напоминающий поверхность офисного стола вместе с окружающей его обстановкой и различными приспособлениями. Он представляет собой рабочую среду, в которой находятся все проекты и доступные пользователю ресурсы. На экране монитора отображаются изображения знакомых офисных объектов, таких как документы, папки, ящики для хранения файлов, корзина и т. д. Эти изображения называются иконками». Уже из этого короткого описания видно, что в общих чертах GUI современных операционных систем являются вариацией ставшего основой интерфейса STAROS.
Поскольку ресурсы компьютера по обработке графики в то время были весьма ограниченными, максимальное количество иконок, а также их местоположение были строго ограниченными. Рабочий стол STAROS был условно разделён на 1-дюймовые квадраты: 14 – по горизонтали и 11 – по вертикали. Каждый из этих квадратов мог содержать одну иконку, что в результате давало максимум 154 штуки.
Ограниченность ресурсов STAR сказывалась и на максимальном количестве одновременно открытых окон, равнявшемуся шести. Вместе с тем пользователь мог расположить их на «Рабочем столе» по собственному усмотрению.
Встроенный файловый менеджер вместо двух колонок со списками файлов отныне мог отображать данные различными способами. В зависимости от предпочтений пользователя это мог быть как простой список в виде иконок стандартного размера, уменьшенного размера, однако вместе с их названиями, так и сложная древовидная иерархия каталога со своими подкаталогами. Как и в современных операционных системах, пользователь мог произвести сортировку файлов по различным признакам: имени, автору документа, дате создания, размеру и т. д.
Благодаря применению в STAROS ещё одной концепции «Перетащи и Брось» (Drag & Drop) пользователь мог простыми манипуляциями с мышью переместить объект с «Рабочего стола» в какую-нибудь папку, записать на дискету, распечатать его или же переслать по электронной почте.
Файловый менеджер STAROS
STAROS имела определённый набор основных команд, которые использовались в операционной системе: Переместить, Копировать, Удалить, Показать свойства, Скопировать свойства, Повторить, Справка и т. д. Эти же команды были реализованы во всех прикладных программах для ОС, в результате чего, например, пользователь при первом знакомстве с текстовым редактором знал, что команда Копировать будет работать тем же образом, что и в самой операционной системе.
Служба Справки в STAROS была контекстно-зависимой, в результате чего выводила справочную информацию лишь по необходимому в данный момент объекту. При нажатии клавиши HELP на клавиатуре пользователь вызывал основное меню Справки, в котором мог передвигаться по справочной информации при помощи гиперссылок либо же, набрав в строке поиска ключевое слово, непосредственно перейти на интересующий его подраздел.
В качестве подведения итогов можно отметить, что STAROS является первой операционной системой с полноценным графическим пользовательским интерфейсом. В ней были воплощены все элементы GUI, которые можно встретить в любой из современных операционных систем.
Ложка дёгтя в бочке мёда
К сожалению, недальновидность руководящего состава Xerox, высокая цена, а также ряд других обстоятельств не позволили STAR стать коммерчески успешной. В результате компании удалось продать всего пару десятков тысяч этих компьютеров. К тому времени, когда руководство Xerox осознало свои ошибки, приведшие к поражению, было уже поздно: большинство ведущих учёных ушло из компании, попутно прихватив с собой идеи и наработки, так и не реализованные на прежнем месте работы.
Разработки Xerox в области графического пользовательского интерфейса так и остались бы одинокой «вспышкой света», если бы не вмешался случай: экскурсия представителей компании Apple по центру PARC. Что она принесла миру? Об этом речь пойдёт в следующий раз.
Приложение
Машинный рисунок
Ещё одним человеком, вдохновлённым концепцией Memex Ванневара Буша, был студент Массачусетского технологического института Иван Сазерленд (Ivan Sutherland), в 1963 году разработавший для своей кандидатской диссертации ПО Sketchpad. Эту программу можно по праву считать первым средством автоматизированного проектирования, обладавшего к тому же графическим интерфейсом.
Sketchpad позволяла посредством светового пера манипулировать объектами на экране. Благодаря этому пользователь мог взять из библиотеки готовую геометрическую фигуру, произвести над ней необходимые манипуляции и затем сохранить либо распечатать на плоттере. Программа позволяла рисовать линии различной длины и толщины, углы и соединения. Причём для каждого элемента рисунка пользователь мог задавать свои параметры, например, сделать линию определённой длины, а угол – градуса.
Sketchpad Ивана Сазерленда
Sketchpad была разработана для компьютера Lincoln TX-2, обладавшего памятью в 64 Кб 36-битных слова. 20 бит одного слова содержали координаты точки в пространстве, а оставшиеся 16 отвечали за её вывод на дисплей. В 1980 году доклад Сазерленда по Sketchpad был перепечатан под названием «Sketchpad: Человеко-машинная графическая система связи» (Sketchpad: A Man-Machine Graphical Communication System). Интересующиеся могут скачать текст в электронном виде по адресу: http://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-574.pdf.
- http://www.wikipedia.org.
- http://www.arstechnica.com.
- http://www.sitepoint.com.
- http://toastytech.com.
- http://www.mprove.de.
- http://www.guidebookgallery.org.
- http://www.bootstrap.org.
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|