Рожденный революцией (Display PostScript)

В 1985 в издательском деле произошла революция, одним из участников которой был PostScript, язык описания графики от мало кому известной в то время Adobe Systems. В 1988 году малоизвестная компания NeXT использовала PostScript для экранной графики, заставив его творить на экране странного компьютера немыслимое.

Рожденный революцией (Display PostScript). Фото.

В NeXTSTEP, разрывая шаблоны, рисование на экране (а также вывод нарисованного на печать), и даже взаимодействие нарисованного с пользователем, были возложены на… PostScript. Любой, имевший дело с выводом чего-либо на PostScript-принтеры, даже не эксперт по выжиманию звонкой монеты из вычислительной техники, если бы его спросили, предостерег бы NeXT и безумного Стива от этого опрометчивого шага.

Но… Картинки на экране (меню, док, окна, иконки и текст в этих окнах) вели себя как-то не так. Нормально. Даже слишком нормально – обновляя содержимое сразу нескольких окон одновременно, как не смог бы ни один другой компьютер. Обман? А в чем подвох? Зачем?

И тут кто-то из сидящих в зале сообщил окружающим, что это Display PostScript, который придумал Стив Джобс (перемещаясь между Pixar и NeXT за рулем очередного Мерседеса), но потом то ли проиграл идею своей рисовалки Джону Варноку (главе Adobe Systems) в карты, то ли проспорил, и теперь права на неё принадлежат Adobe, называется она Display PostScript.

Упав на благодатную почву, идея отправилась в путешествие сквозь пространство и время, из-за чего все нечастые упоминания Display PostScript начинаются с сообщения о том, что его разработала Adobe. Иногда с добавлением частицы “именно”, то есть, “именно Adobe разработала Display PostScript”. Подозрительно, да? Неужели правда, которую приказали скрывать?

На самом деле, все так и было. В смысле, Display PostScript, как и сам PostScript, и все его варианты, действительно создала Adobe Systems, к этому причастен Джон Варнок, а Стив сыграл в возвышении обоих вариантов PostScript над другими проявлениями технологии в области графики очень важную роль. Тоже причастен.

В обоих случаях Стив Джобс был… клиентом. Заказчиком. В обоих случаях PostScript был лучшим, но само по себе это обстоятельство ничего не решает. Слишком часто побеждают посредственности, умеющие пробиваться к свету лучше других.

Как появился Display PostScript

Про появление на свет PostScript на ресурсе уже писали.

Язык описания графики, придуманный Джоном Варноком на Sutherland & Evans, первый из предшественников того, что стало PostScript, был интерактивным языком. Джон Варнок разрабатывал компьютерный тренажер для отработки лоцманами проводки судов в Нью-Йоркском заливе.

JaM, разработанный Джоном Варноком совместно с Мартином Ньювелом, изначально тоже был ориентирован на работу с экраном и был интерактивным языком, правда с чисто утилитарными целями. Для удобства отладки. Чем проще экспериментировать с тем, что разрабатываешь, тем больше всевозможных ситуаций удастся опробовать и довести до совершенства.

То есть, Display PostScript “в кавычках” появился на свет даже раньше, чем PostScript для управления печатью. Удивительно, но Джобс об этом знал – и в 1985 году, когда ветераны паблишинговой революции встретились в офисе Adobe Systems за “чашкой чая”, между ними состоялся разговор. Без свидетелей, но буквально через неделю Линде Гасс было поручено подумать на эту тему, а также создать и возглавить команду для реализации замысла.

Стив поручил интеграцию “Screen PostScript”, которого еще не было, в операционную систему, работа над которой тоже только начиналась, Лео Гурвицу. Одному из главных разработчиков этой системы. Протеже самого Билла Аткинсона, программисту и одному из первых в мире инженеров по компьютерной графике.

Рожденный революцией (Display PostScript). Как появился Display PostScript. Фото.

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

Название Display PostScript было придумано Лео и Линдой, во время одного из совещаний в офисе Adobe, и утверждено обоими жесткими и непредсказуемыми лидерами индустрии, Джоном Варноком и Стивом Джобсом. Произошло это в августе 1988 года.

Несмотря на это, я буду называть проект с рабочим названием Screen PostScript его более привычным и благозвучным именем, под которым он был зарегистрирован в качестве товарного знака Adobe Systems – Display PostScript, или Display PS.

Что такое Display PostScript

Странный вопрос, да? Это то, что рисовало на экране NeXT Computer пользовательский интерфейс, тексты и графику в программах для его операционной системы, и участвовало в выводе на печать документов, создаваемых в этих программах. Что еще может делать “язык описания графики”?

Работа с графикой – одно из основных предназначений PostScript вообще, и его экранного варианта, в частности. Но не единственное.

Пользовательский интерфейс – это не только и не столько картинки и тексты. Это еще и интерфейс, то есть, граница между пользователем и операционной системой. Инструмент управления ею.

Интерфейс – понятие достаточно абстрактное. Неизмеримое. Программное обеспечение реагирует на нажатие кнопок мыши, на её перемещение по экрану, на нажатие клавиш на клавиатуре. Это практически то же самое, что и язык командной строки, только команды вводятся иначе, и смысл их зависит от того, что в данный момент на экране, и в какой из его областей была нажата, кликнута или отжата кнопка на мыши.

Еще одно ключевое предназначение Display PostScript – взаимодействие с пользователем. Это интерактивный PostScript.

Интерактивная составляющая Display PS разрабатывалась с учетом накопленного к тому времени опыта. Она очень тщательно проработана, и почти в точности, без серьезных изменений, перекочевала в macOS. Более того, её основы, после творческой переработки, были унаследованы iOS, операционной системой основанной не на системе “мышь-окно-клавиатура”, а на принципиально новой парадигме тач-интерфейса.

Разработку интерактивного аспекта Display PS поручили Джеку Ньюлину.

Друзей во главе известных компаний – благо

Джек Ньюлин поступил на работу в исследовательский центр Xerox в Пало Альто в 1976 году. Принимал участие в нескольких проектах, в том числе связанных с Smalltalk и Interpress (коммерческий язык описания графики, разработанный Джоном Варноком и Чаком Гешке, конкурент PostScript).

Что побудило Джека в 1986 году искать работу – неизвестно. Либо ему стало неинтересно, либо атмосфера свободы и вседозволенности, свойственная Xerox PARC в прежние годы, стала утекать в межпланетное пространство, так или иначе в один из весенних дней 1986 года он заглянул в гости к старым приятелям, бывшим коллегам по работе.

Бывшие коллеги возглавляли Adobe Systems, компанию державшую свой флаг в разных странах и почти на всех континентах. Джек предложил им свои услуги.

Они его хорошо знали и ценили, но Interpress был прямым конкурентом PostScript.

– Если мы тебя примем на работу, – сказал Джон Варнок – Xerox подаст на нас в суд. Но, если ты не возражаешь против идеи поработать в одном интересном стартапе, могу тебе помочь.

Варнок набрал номер на телефоне, и через несколько минут Джек Ньюлин говорил с Джобсом. Через пару недель Джек стал сотрудником NeXT, первым и единственным на тот момент подчиненным Лео Гурвица.

На Adobe команда разработчиков Display PS уже состояла из десятков человек, язык уже обретал реальные черты.

Зачем Display PS?

Рожденный революцией (Display PostScript). Зачем Display PS? Фото.

До середины 80-х, компании создававшие собственные графические пользовательские интерфейсы писали графические библиотеки и интерактивные среды сами, создавая иногда настоящие шедевры.

Мысль приобрести лицензию на использование PostScript в качестве языка интерфейса собственной системы не приходила никому в голову. Лицензия стоила дорого, по условиям лицензии плата бралась за каждое устройство с копией PostScript. А сам язык, в исконном его виде, для интерфейсов не подходил.

Но были и очевидные плюсы такого решения. При выводе документов, созданных в любой “самодельной” графической среде, будь то QuickDraw на Mac’е или графические пакеты Pixar Imaging Computer или рабочей станции от Sun, на лазерный принтер с PostScript, при переводе данных с одного языка на другой (из QuickDraw в PostScript, например), что-то неминуемо терялось.

По словам Линды Гасс, это что-то вроде перевода с французского на английский.

Кроме того, перевод в PostScript – это нетривиальная задача для процессора, занимающая время. Любой нетривиальный алгоритм содержит… баги, несуразности, накладки. Те, кто имеет дело с подобными вещами, обязательно расскажут про пляски с бубном, или танец дождя.

А вот если графическая система компьютера говорит на одном языке с принтером, все эти проблемы исчезают. Все упрощается, WYSIWYG ([на выходе] получаем то, что видим) при этом гарантируется, времени на перевод не требуется.

И, что тоже важно, использовать в качестве графических библиотек технологию, которая уже многократно проверена и обкатана в самых разных условиях, и гарантированно хороша, просто разумно.

Компьютеры AppleРабота в AppleСтив Джобс