Привет, Хабр!
Перед следующей статьей из цикла «Приключения микропроцессоров» мы решили поговорить с вами о GUI. Из года в год система взаимодействия ОС, ПО и пользователей совершенствовалась. Аппаратные методы общения с компьютером уступили место интерфейсу командной строки. Командная строка в пользовательском сегменте «сдалась» под напором файл-менеджеров. И, наконец, появились полностью графические интерфейсы пользователя с привычными окнами, выпадающими меню и прочими удобствами.
Сегодня мы хотели бы поговорить о том, как развивался графический пользовательский интерфейс на протяжении последних 50 лет. Под катом рассмотрим некоторые интересные образчики применения GUI, необычные ОС и компьютеры. Как обычно, с массой фотоматериалов и видео. Потому что, как говорила Алиса, «что же это за книжка, в которой нет картинок?».
Кратко о первых устройствах ввода
Вероятно, одним из самых ранних образцов пользовательского интерфейса (конечно же, если воспринимать его в качестве некой системы взаимодействия программиста и вычислительной машины) является перфокарта. Ничего общего с UI в современном понимании этого термина перфокарты не имели. Фактически, это всего лишь средство ввода программ и данных для последующей обработки. Одно из первых устройств для создания перфокарт было разработано Германом Холлеритом еще в 1897 году. А на фотографии ниже изображено устройство середины XX века.
Вслед за перфокартами компьютеры обзавелись клавиатурами. Сначала — в виде модернизированных печатных машинок (или подобных устройств), а первые полноценные компьютерные клавиатуры появились только в 1970-х.
В 1968 году на Калифорнийской выставке интерактивных устройств была продемонстрирована первая компьютерная мышь, а 2 года спустя Дуглас Энгельбарт запатентовал свое изобретение. В СССР компьютерные мыши также производились. Одна из первых версий носила гордое имя «Манипулятор „Колобок“» — по всей видимости, из-за металлического шарика. Тем не менее, лишь с приходом на массовый рынок GUI мыши приобрели повсеместную популярность.
Еще одно популярное устройство ввода, джойстик, перекочевало в компьютерное (преимущественно игровое) применение из военной техники. Да, это не совсем «указывающее» устройство, однако мы не могли пройти мимо следующего интересного факта.
Неизвестно, кто именно начал применять джойстики для управления компьютером, однако первым электрическим джойстиком на сегодняшний день считается knüppel («кнюппель»), специальное устройство, с помощью которого осуществлялось управление ракетами Henschel Hs 293 1943 года.
Кроме того, в течение нескольких десятилетий на рынке существовали разнообразные варианты трекболов (предшественник мыши), световых перьев и прочих устройств ввода. Некоторые из них так и остались в истории, некоторые трансформировались в привычные нам сегодня девайсы. Однако не будем заострять излишнее внимание на средствах взаимодействия с GUI и перейдем к разговору непосредственно об этой концепции.
GUI как принцип
Вначале стоит сказать пару слов непосредственно о том, что такое GUI и какими критериями интерфейс должен обладать, чтобы называться «графическим».
Традиционно принято считать, что GUI (Graphic User Interface) предполагает взаимодействие пользователя с компьютером при помощи разнообразных графических элементов управления, иконок. В лаборатории Xerox PARC (об их разработках мы поговорим чуть ниже) была предложена концепция WIMP (Windows, Icons, Menus, Pointers).
В качестве вспомогательных элементов могут использоваться звуки и другие атрибуты «пользовательского комфорта», не имеющие к GUI непосредственного отношения, однако способствующие раскрытию некоторых интерфейсных метафор.
Метафорами в мире GUI принято называть интерфейсные реализации объектов/парадигм физического мира, знакомых пользователю. Например, к таким метафорам относятся «рабочий стол», «папка» и т.п.
Характерные примеры систем с GUI:
ОС Windows;
ОС Workbench;
графическая оболочка GEM для ОС CP/M Гэри Килдалла.
В свою очередь, текстовый (TUI) и командный интерфейсы (CLI) основываются на ручном вводе всех необходимых команд в командной строке. Для представления информации в них используются исключительно набор буквенно-цифровых символов и символов псевдографики.
Характерные примеры:
Commodore 64 (работа пользователя с компьютером начинается в интерпретаторе BASIC);
ZX Spectrum (также интерпретатор BASIC);
Microsoft DOS (командная строка);
CP/M (командная строка).
Строго говоря, во многих системах из этого списка GUI мог быть реализован в рамках отдельных программ (например, GEOS для C64).
Иногда текстовый интерфейс может комбинироваться с графическим, однако в таких случаях вряд ли стоит говорить о полноценном GUI. К примеру, некоторые штатные модели ZX Spectrum имеют загрузочное меню, предлагающее выбор (переход к BASIC, загрузка с магнитной ленты или гибкого диска и пр.), а переходы между пунктами меню сопровождаются характерными щелчками.
Исторически одной из первых компьютерных программ, имплементировавших нечто похожее на GUI, является программа для рисования схем и чертежей Sketchpad. Она была разработана инженером Айвеном Сазерлендом в 1963 году и управлялась световым пером.
А в конце 1960-х команда Стенфордского университета под руководством Дугласа Энгельбарта разработала NLS, On-Line System. Эта система фактически предвосхитила появление более поздних инструментов для совместной работы с текстом и прочими данными. Для взаимодействия с гиперссылками предлагалось использовать устройство типа «мышь».
И Sketchpad, и NLS не являются полноценными примерами реализации GUI, тем не менее, сам факт их существования свидетельствует о том, что в ряде случаев использование графики и навигация при помощи указывающего устройства способны сделать работу с компьютером гораздо более удобной.
Xerox Alto и Xerox Star
Первым компьютером с графическим пользовательским интерфейсом считается Xerox Alto, разработанный в лаборатории Xerox PARC в 1973 году. Это был экспериментальный продукт, не предназначенный для широкого рынка. Тем не менее, к концу 1970-х было произведено порядка 2000 машин этой линейки.
Большая их часть, порядка полутора тысяч, были установлены непосредственно в Xerox Laboratories, остальные продавались университетам в качестве учебных и вычислительных машин.
Уже в первые годы существования Alto приобрел широкую известность в Кремниевой долине. Еще большую популярность Xerox принесла разработка усовершенствованной версии Alto, Xerox Star. Первые лица крупных технологических компаний, в том числе представители Microsoft и глава Apple Стив Джобс посещали Xerox Laboratories, чтобы поработать с этими компьютерами. Известно, что в 1979 Джобс договорился о специальных демонстрационных сессиях в обмен на некоторые бонусы для Xerox от компании Apple. В следующие несколько лет на свет появились Apple Lisa и Macintosh, первые рыночные образцы ПК с графическим пользовательским интерфейсом.
Помимо Джобса, вдохновение для собственных GUI у Xerox черпал и Билл Гейтс. В мире высоких технологий всегда действовал принцип «кто первый показал, тот лучше продается», поэтому времени на разработку уникального интерфейса ни у Apple, ни у Microsoft толком не было. Именно поэтому ранние версии графических ОС у обеих компаний выглядят как близнецы-братья. Взгляните сами:
Разумеется, Джобс не мог упустить возможность подать на Гейтса в суд за наглое копирование его собственного самобытного (позаимствованного у Xerox) дизайна ОС.
Xerox Alto дал толчок отрасли разработки графических пользовательский интерфейсов. Тем не менее, ввиду дороговизны компьютерных компонентов, сложности разработки GUI и неготовности крупных игроков менять подход к созданию компьютеров и ПО, первые машины, снабженные графическим интерфейсом, стали массово появляться на рынке лишь десятилетие спустя, в начале 1980-х. Далее в статье мы рассмотрим некоторые примеры подобных устройств, и промышленных, и предназначенных для домашнего использования.
Quantel Paintbox
В 1981 году эпоха персональных компьютеров только-только начиналась, однако по-настоящему актуальные и прогрессивные ЭВМ (наподобие Alto) простым пользователям были недоступны. Сказывались и молодость рынка, и высокая стоимость отдельных комплектующих.
Однако крупные компании уже активно пользовались подобными устройствами. Quantel Paintbox, специализированная рабочая станция для работы с компьютерной графикой, применялась для создания телевизионных «спецэффектов».
Машину разработала британская технологическая компания Quantel, а одной из первостепенных задач, которые ставились перед Paintbox, являлось создание графики (титры, переходы и т.п.) для выпусков новостей в прямом эфире. Компьютеры продавались по цене порядка 250 000 долларов (что сейчас эквивалентно 374 000 долларов), поэтому позволить их себе могли исключительно крупные телевизионные сети, такие как NBC.
В 1981 году Paintbox произвел революцию в производстве телевизионной графики. Со временем практически все телекомпании, включая небольшие региональные каналы, переключились на полностью «компьютерный» монтаж. Кроме того, считается, что именно в Paintbox впервые появились так называемые всплывающие меню.
Терминал Blit
Программируемый терминал растровой графики Blit был разработан Робом Пайком и Бартом Локанти-младшим, сотрудниками Bell Labs, в 1982 году. Использовался для работы с Unix-машинами и предлагал пользователю широкие графические возможности.
При включении Blit может показаться обыкновенным текстовым терминалом. Однако после входа в систему Unix-хоста (подключенного к терминалу через последовательный порт) с помощью специальных управляющих последовательностей загружается программное обеспечение, управляемое непосредственно процессором терминала. Это ПО используется для реализации графических возможностей терминала и взаимодействия с периферийными устройствами, такими как клавиатура или мышь. Оконная система mpx (или mux, ее более поздняя версия) заменяет командную строку терминала удобным оконным интерфейсом.
Изначально в каждом окне запускался базовый эмулятор терминала, однако можно было заменить его любым доступным интерактивным графическим приложением, например, более продвинутым эмулятором терминала, текстовым редактором или приложением часов. Иными словами, Blit позволял пользователю реализовать интерфейс, крайне сходный с Unix’овским.
Терминал нашел применение как в офисах крупных компаний, которым требовалось разделение мощностей «серверного» компьютера, так и в университетах.
Apple Lisa и Macintosh
Эти компьютеры появились на свет в результате уже упомянутой выше «коллаборации» Xerox и Apple. Стоит отдать должное Стиву Джобсу: он одним из первых увидел потенциал графических интерфейсов для персональных компьютеров. Конкуренты в те же годы довольствовались куда более простыми, командными/текстовыми интерфейсами.
Apple Lisa, выпущенная в 1983 году, имела продвинутый графический интерфейс, запускающийся поверх основной системы (загрузка ОС производилась с жесткого диска). Особой популярности компьютер не приобрел ввиду высокой стоимости.
Несколько упрощенный Apple Macintosh, выпущенный в 1984 году и разработанный с прицелом на удешевление, стал первым коммерчески успешным продуктом, в котором использовался многопанельный оконный интерфейс. Кроме того, в операционной системе была реализована концепция (метафора) рабочего стола: файлы выглядели как листы бумаги, каталоги — как папки с файлами. Кроме того, пользователю был доступен набор «настольных» принадлежностей, таких как калькулятор, блокнот и будильник. Их можно было передвигать по экрану, при необходимости скрывать и вызывать снова.
А удалять файлы и папки можно было, перетаскивая их на значок корзины. В дальнейшем разработчикам Apple, как мы знаем, удалось успешно развить свое видение работы пользователя с компьютером. Так, до сих пор в операционных системах Apple используется управление однокнопочной мышью (в противовес более популярной на рынке двухкнопочной), корнями уходящее в 1980-е.
Commodore Amiga
Компьютер Amiga, один из наиболее прорывных и интересных компьютеров своего времени, был выпущен компанией Commodore в 1985 году. В качестве графического интерфейса использовалась собственная операционная система Workbench, основанная на оконном «движке» Intuition. Пользователю были доступны перетаскиваемые окна, иконки, выпадающие списки и многие другие актуальные и по сей день элементы управления.
В Workbench (в переводе — «верстак») каталоги были представлены в виде ящиков, а программы в идеологии ОС именовались «инструментами». Управлять ОС можно было как с помощью мыши, так и исключительно клавиатурой, с использованием специальных клавиш-модификаторов для перемещения курсора. ОС поставлялась на нескольких дискетах и была доступна как на младших моделях без HDD, так и на более мощных компьютерах, оснащенных жестким диском.
Даже тут не обошлось без Стива Джобса: он был одним из первых, кому тогда еще небольшой стартап Amiga пытался продать свою разработку. Джобс внимательно изучил компьютер и его ОС, от покупки отказался, однако тут же приказал ускорить работу над GUI для Apple, чтобы опередить вероятных конкурентов.
Примечательно, что подавляющее большинство игровых программ не требовало предварительной загрузки операционной системы: достаточно было вставить дискету и запустить компьютер. Как и в случае с Workbench, загрузка осуществлялась через расположенное в ПЗУ компьютера ПО. Фактически, Commodore Amiga была первым по-настоящему мультимедийным компьютером с поддержкой всех актуальных устройств ввода-вывода, огромной палитрой и мощным ПО для дизайнеров, художников и специалистов по видеомонтажу. Отчасти это обусловлено тем, что Amiga (до того, как стартап был выкуплен Commodore) задумывалась как игровая консоль. Но ввиду видеоигрового кризиса корпорация решила выпустить полноценный компьютер.
К изначальной концепции приставки Amiga вернулась лишь незадолго до банкротства компании. Amiga CD32 поставлялась в формате консоли, а в качестве носителя были выбраны CD-диски. А при известных модификациях консоль могла «превратиться» обратно в компьютер, технически сходный с Amiga 1200.
Amiga Workbench до сих пор активно поддерживается фанатами компьютера, несмотря на то, что сама компания Commodore закрылась в связи с банкротством еще в 1994 году.
GEOS
Несмотря на успех Amiga, восьмибитный Commodore 64 также активно продавался до 1994 года, пережив несколько ревизий и технический «апдейт» — офисную машину с Zilog Z80 в качестве сопроцессора для CP/M, Commodore 128.
Графическая оболочка GEOS была выпущена для C64 в 1986 году. Вскоре после запуска собственные порты GEOS получили компьютеры серии Apple II и Commodore 128. Дистрибутив GEOS включал ряд базовых прикладных программ, таких как календарь и текстовый редактор.
PC/GEOS, специальная версия для IBM PC, позиционировалась в качестве компромиссной ОС для компьютеров, которые не справляются с более «тяжелой» Windows 3.1.
Тем не менее, за пределами 8-битных компьютеров система практически не снискала успеха среди пользователей, отчасти из-за чрезмерно авторитарной политики компании-производителя, отчасти из-за скудного багажа возможностей.
Windows: компьютер в каждый дом
Широкое распространение ПК как среди «домашних» пользователей, так и в бизнес-среде заставило производителей задуматься об упрощении работы с компьютером для людей, ранее не имевших опыта работы с подобными устройствами. GUI позволил бы компаниям охватить гораздо большую аудиторию, соответственно, стало экономически выгодно вкладывать деньги в его разработку.
Приложения с графическим интерфейсом существовали и в чистом DOS, однако для их запуска пользователю все равно потребовалось бы вводить команды или использовать файл-менеджер. А это уже чуть более сложная задача, чем клик мышкой.
Еще одним фактором, стимулировавшим развитие GUI, стало расширение возможностей графических адаптеров, обеспечивающих тысячи и миллионы цветов, наряду с быстрыми процессорами, дешевой оперативной памятью и новыми устройствами хранения, вмещавшими гигабайты информации. Все это сделало возможным продавать пользователям качественно новое «железо», способное обеспечить работу требовательных графических интерфейсов.
После Windows 3.11 Microsoft приступила к разработке новой версии операционной системы, ориентированной на потребителя. Windows 95 включала улучшенную версию DOS, часто называемую MS-DOS 7.0. Win95 и WinNT могли запускать 32-разрядные приложения и использовали возможности процессора Intel 80386 для реализации вытесняющей многозадачности.
Windows 95 рекламировалась как 32-разрядная операционная система, хотя на деле она базировалась на гибридном ядре (VWIN32.VXD) с 16-разрядным пользовательским интерфейсом (USER.EXE) и интерфейсом графического устройства (GDI.EXE) Windows 3.11, работавшимим совместно с 32-разрядной подсистемой (USER32.DLL и GDI32.DLL). Это позволяло запускать в системе и 16-разрядные, и 32-разрядные приложения.
Говорить о рыночном успехе Windows, думаем, будет излишне: на текущий момент это самая популярная домашняя ОС, не говоря уже о ее коммерческом применении.
Заключение
Безусловно, в статье собраны далеко не все «титаны» GUI. В первую очередь нам хотелось познакомить с ранними версиями графических пользовательских интерфейсов тех читателей, которые могли считать, что до Windows «жизни» не было.
Если тема ранних GUI интересна для вас, рекомендуем также ознакомиться со следующими ресурсами:
Ранние версии MacOS;
История UNIX;
Подробнее о ранней версии Workbench;
Подробнее о GEOS;
Графическая псевдо-ОС для ZX Spectum-совместимых машин.
В одной из будущих статей мы обратим внимание на не менее интересную тему: этап развития пользовательских интерфейсов в web. По традиции, ждем ваших комментариев и историй о работе с компьютерами до того, как это стало мейнстримом.