Рожденный революцией (Display PostScript)
В 1985 в издательском деле произошла революция, одним из участников которой был PostScript, язык описания графики от мало кому известной в то время Adobe Systems. В 1988 году малоизвестная компания NeXT использовала 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 &038; Evans, первый из предшественников того, что стало PostScript, был интерактивным языком. Джон Варнок разрабатывал компьютерный тренажер для отработки лоцманами проводки судов в Нью-Йоркском заливе.
JaM, разработанный Джоном Варноком совместно с Мартином Ньювелом, изначально тоже был ориентирован на работу с экраном и был интерактивным языком, правда с чисто утилитарными целями. Для удобства отладки. Чем проще экспериментировать с тем, что разрабатываешь, тем больше всевозможных ситуаций удастся опробовать и довести до совершенства.
То есть, Display PostScript "в кавычках" появился на свет даже раньше, чем PostScript для управления печатью. Удивительно, но Джобс об этом знал - и в 1985 году, когда ветераны паблишинговой революции встретились в офисе Adobe Systems за "чашкой чая", между ними состоялся разговор. Без свидетелей, но буквально через неделю Линде Гасс было поручено подумать на эту тему, а также создать и возглавить команду для реализации замысла.
Стив поручил интеграцию "Screen 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?
До середины 80-х, компании создававшие собственные графические пользовательские интерфейсы писали графические библиотеки и интерактивные среды сами, создавая иногда настоящие шедевры.
Мысль приобрести лицензию на использование PostScript в качестве языка интерфейса собственной системы не приходила никому в голову. Лицензия стоила дорого, по условиям лицензии плата бралась за каждое устройство с копией PostScript. А сам язык, в исконном его виде, для интерфейсов не подходил.
Но были и очевидные плюсы такого решения. При выводе документов, созданных в любой "самодельной" графической среде, будь то QuickDraw на Mac’е или графические пакеты Pixar Imaging Computer или рабочей станции от Sun, на лазерный принтер с PostScript, при переводе данных с одного языка на другой (из QuickDraw в PostScript, например), что-то неминуемо терялось.
По словам Линды Гасс, это что-то вроде перевода с французского на английский.
Кроме того, перевод в PostScript - это нетривиальная задача для процессора, занимающая время. Любой нетривиальный алгоритм содержит... баги, несуразности, накладки. Те, кто имеет дело с подобными вещами, обязательно расскажут про пляски с бубном, или танец дождя.
А вот если графическая система компьютера говорит на одном языке с принтером, все эти проблемы исчезают. Все упрощается, WYSIWYG ([на выходе] получаем то, что видим) при этом гарантируется, времени на перевод не требуется.
И, что тоже важно, использовать в качестве графических библиотек технологию, которая уже многократно проверена и обкатана в самых разных условиях, и гарантированно хороша, просто разумно.