Про «ту Apple»-6. Newton, часть 2: Хоббиты, Dylan и прочие безобразия
Если бы проектом Newton руководил кто-то, способный чувствовать, что нужно рынку, и заранее отказываться от тупиковых направлений в развитии, и если бы Newton вышел в свет не в 1993-м, а в 1989-м или 1990-м… Но, увы, все случилось так, как случилось. Apple Computer использовала труд хоббитов! Скалли ознакомил группу Newton со своим видением их задачи. То, что вырисовывалось, “компьютером на ладони” быть не могло. Кроме распознавания рукописного текста, что Стиву Сакоману и его коллегам казалось хоть и сложной, но вполне решаемой задачей, было еще несколько задач куда сложнее. Но… “Нам нет преград ни в море, ни на суше…” Как рассказывал Кэпс, они с Сакоманом с тихим ужасом наблюдали за увлеченным трудом инженеров. Сбылись самые худшие из опасений. Первый вариант устройства революционной платформы Newton, Figaro, был похож на Knowledge Navigator из роликов Скалли. Размер корпуса – 9 на 12 дюймов, или 228,6 на 304,8 миллиметра. Согласно ISO 216, формат А4 до этого размера не дотягивает, в нем только 210 на 297 мм. В корпусе размещались: приводящие все остальные части комплекса в движение и реализующий интеллект, три хоббита; жесткий диск; чипы доступа к удаленным сетям; чипы управления ИК-датчиками (инфракрасными); LCD-экран с активной матрицей, не цветной; аккумуляторные батареи для всего этого. Все это весило немало и тянуло, по самым скромным прикидкам, на 6000 тогдашних долларов. Зато каждое такое устройство могло общаться (по ИК-каналам) с пятью себе подобными, что, естественно, было принципиально важным. Скалли решение команды понравилось, он повелел продолжить работу. Кстати, о хоббитах… «Компьютерра» много лет назад обозвала эти процессоры “чебурашками” и уточнила их происхождение: эти хоббиты были родом не из Средиземья, а из исследовательского центра AT&T Bell Labs. Но, кроме шуток, процессоры действительно были уникальны. Они были воплощением в железе абстрактной С-машины с архитектурой CRISP (C-language Reduced Instruction Set Computing). C-машина – это теоретическая разработка Bell Labs, гипотетическая безрегистровая процессорная архитектура, оптимизированная для выполнения С-программ со множеством процедур и стековой организацией хранения данных. Устранявшая именно те недостатки обычных процессоров, которые мешали программам, скомпилированным из C, работать с максимальной эффективностью. Железное воплощение привлекательной абстракции заинтересовало Apple Computer, что привело Bell Labs в замешательство. Это были экспериментальные процессоры, проверка концепций и теоретических выводов. Они не предназначались для коммерческих целей, при их разработке и производстве не соблюдались формальности, необходимые при выпуске продукта. Их почти не тестировали, не тратили времени на точную отладку и доводку. Представителю Apple об этом сказали. Тот согласился и обещал сообщить, кому следует. AT&T взяла с Apple Computer сколько-то долларов (миллиона два с половиной, это оценка, точная сумма неизвестна). Хоббиты оказались переполнены ошибками и почти не работали. В ответ на претензии Apple AT&T Bell Labs согласилась довести процессоры до промышленного качества за лишние несколько миллионов долларов (обычная стоимость процесса доводки, ничего личного). Apple отказалась и решила использовать ARM-процессоры. AT&T Bell Labs довела хоббитов до промышленного уровня качества, уже за свой счет, и они использовались в интересном коммуникационном планшете EO Personal Communicator британской компании Go, который не имел рыночного успеха, потому что его время еще не пришло. И еще где-то, показав более чем впечатляющие результаты, но история хоббитов завершилась бесславно. Это было несправедливо, но такова жизнь. Программное обеспечение Newton Перед разработчиками стояло несколько задач, некоторые из которых по сложности и уникальности превосходили самые смелые их мечты. Ребята собрались талантливые, а условия им создали просто фантастические. Их никто не подгонял. К их усилиям относились с пониманием. Они в течение нескольких месяцев проводили дни в изысканиях и приятных дискуссиях. В романе Льва Кассиля “Вратарь”, по которому в 1936 году был снят одноименный фильм, один из персонажей, инженер Карасик, занимался разработкой проектов, никак не связанных с актуальными проблемами, всем, чем хотел, – как и была записано у него в должностной инструкции. В фильме этот момент почти не отражен, но в романе описано очень подробно, и меня это “зацепило” больше всего. В СССР такого не было, особенно в 30-е. А вот на Apple Computer в конце 80-х целая группа высокооплачиваемых сотрудников жила примерно так же. Разработанный в то время NewtonScript, основанный на SELF и нескольких других языках, “брат” JavaScript и нескольких других Script’ов, был замечателен. Скорее всего, я люблю Apple именно за такие вот нередкие (как ни удивительно) жемчужины. В рамках обеспечения Newton программным обеспечением в Apple разработали еще один язык, Dylan, поддерживающий “нескольких парадигм программирования”, на самом деле их целых две – объектно-ориентированное программирование и функциональное. Язык объединял в себе особенности LISP, SELF и нескольких других языков, он никогда (в яблочную эпоху своего существования) не был закончен, но и не умер после прекращения его поддержки Apple, скорее наоборот. На портале языка сообщается, что им пользуются до сих пор, только вот последнее обновление (2014.1) датировано 2015-м. Релизное ядро ньютонов было написано на рабоче-крестьянском C++, на нем же были написаны низкоуровневые сервисы и библиотеки. Значительный объем кода содержался в ROM, но вовсе не для сокрытия его – для снижения нагрузки на процессор и оперативную память. Примерно за год-два до выхода первого Newton на Dylan-языке была, по непонятной причине, переписана операционная система. Никто не собирался поддерживать две системы, а вариант, написанный на C++, был реально лучше. Я читал воспоминания того, кто переписывал систему на Dylan’е, который так и не понял зачем. Все задачи были более или менее решены, кроме распознания рукописных текстов. С этим было даже не плохо, а ужасно плохо. Это одна из задач, качественное решение которых не болеющими именно ими практически нереально. В таких случаях приобретаются готовые сторонние библиотеки, но это в наши дни, когда есть из чего выбирать. В конце 80-х выбирать было не из чего. Рукописный текст распознавался, но неуверенно, неточно, остро реагируя на малейшие отклонения в написании (изменение размера, наклона, недописанные или лишние линии) – это был провал. Выпускать наладонный компьютер, в котором именно эта функция – основной способ ввода данных – была нерабочей, было нельзя. И проект был бы закрыт, но произошла совершенно невероятная, достойная шпионских триллеров история. В Москве, в столице СССР. Продолжение следует