Ошибка NeXT

Раз за разом, представляя журналистам, экспертам и прочим случайным людям NeXTSTEP, Стив Джобс внушал слушателям мысль о том, что программировать в этой системе легко и просто – он даже показывал, сев за клавиши, как это легко. И очень многие ему верили.

Дружелюбные к пользователю операционные системы были враждебны и жестоки к тем, кто пишет для них программы. Об удобстве для работников “машинного отделения” никто не думал. На это не было ни времени, ни ресурсов. К тому же, “инженер должен стойко переносить лишения и трудности своего ремесла”.

Считалось, что именно так все и должно быть. Кто-то должен платить за всё. Но NeXT, не то из любви к людям нелегкой профессии, не то в поисках собственной идентичности, не побоялась покуситься на устои мира. В данном случае NeXT – это Стив Джобс.

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

Естественно, техническое задание было выполнено в точности. Им удалось создать самый дружелюбный и эффективный в мире (как минимум, на тот момент) набор для разработчика. Тем более, что проблемы себе подобных были им до боли знакомы.

И, что тоже естественно, Стив Джобс не мог не использовать этот козырь в своих целях. В конце концов, именно он все это задумал и оплатил. И все, даже осветители и официанты, работавшие на презентации, поверили: программировать в NeXTSTEP легко и просто, это может не просто любой дурак, но даже глава компании…

Начало здесь, продолжения здесь, здесь, здесь, apple-v-licax/next-na-belom-zheleze.html">здесь и здесь.

Реакции

Стив ошибался, в очередной раз считая слушателей более умными, чем они были на самом деле. От этой дурацкой привычки его очень скоро отучит жизнь – но даже в 1997 году, уже имея представление о природе людей, он продемонстрировал поклонникам Apple умение пользоваться InterfaceBuilder и красоту ProjectBuilder, с тем же самым результатом.

Зная, к чему повторение этих заклинаний привело, проанализируем реакции слушателей с разным уровнем интеллекта.

Первые поверили, и едва добравшись до компьютера (дома или в офисе, а то и прямо на демонстрационной площадке), принялись пробовать себя в роли программиста. Те из них, кто поумнее, нашли Tutorial’ы, и, хоть и не с первой попытки, но смогли сотворить нечто работающее. Но любая попытка отклониться в сторону хотя бы на шаг, оканчивалась ничем.

Жулики – решал умный товарищ, и шел в редакцию (или в прокуратуру) писать об этом.

Другой приходил к выводу, что здесь есть какие-то правила, как в покере или в шахматах, и пытался прочитать документацию. Она была под рукой, но её было слишком много. И в ней почти все было непонятно – не покер. Не то жулики, не то “я_чего-то_не_понимаю”.

Другие даже не стали ничего пробовать, просто поверили – и задумались о том, что очень сильно переплачивают работающим у них разработчикам. Можете представить себе, как таким людям надоели непонятные проблемы, баги, отставание от сроков…

К счастью для программистов, мало кто из прозревших решился на покупку NeXT, но с этого момента подозрительность и нежелание идти на компромиссы у очень многих деятелей усилились.

Другие просто приняли сказанное за правду, и понесли благую весть по миру. Вреда от них было немного: небылицы, рассказанные с самыми благими помыслами в душе, остаются небылицами.

Другие (опытные программисты) либо просто и навсегда не поверили показанному, либо сразу просекли фишку: система сложная и мощная, на её изучение уйдет много времени, но попробовать стоит.

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

Козырь был многократно бит.

Противоречия

И чего только мне не приходилось читать про программирование в NeXTSTEP/OPENSTEP и в Cocoa/Mac OS X. Критические мнения кажутся (инстинктивно?) более правдоподобными, поэтому их с удовольствием цитируют и приводят в качестве аргументов в споре.

С одной стороны (данные статистики), число тех, кто мог считать себя NeXT’овским программистом и регулярно писал в его среде разработки программы, было необычно большим для столь малочисленной платформы. На 100-150 тысяч пользователей, только зарегистрированных на NeXT программистов было около 70 тысяч.

С другой, в том числе и на страницах NeXTWorld, унылое нытье о том, что никто не хочет программировать для NeXT, вот никак не напишут для неё хороший текстовый процессор, и вообще все плохо.

Судя по всему, люди не имеют представления о том, как пишутся большие программы для широкого круга пользователей. Одного желания тут мало. Элементарный текстовый процессор, и в NeXTSTEP, и в Mac OS X, писался в “полпинка”. Он позволял вводить текст, использовать все доступные шрифты и стили, вставлять графику и видео, и даже смотреть эти видео. В 1984 году его можно было бы продавать. В 1989 текстовый процессор должен был уметь делать много других вещей.

Создание программ для широкого круга пользователей – целый технологический процесс, требующий участия разных специалистов: дизайнеров, инженеров по UX/UI, аналитиков, тестировщиков и даже менеджеров. Бывают исключения: люди умудряются писать, без всей этой банды прожорливых и непонятливых людей, замечательные программы. Но, как правило, это относительно небольшие программы с четко очерченным кругом задач.

А любой организованный и регулярный труд должен кем-то организовываться, и, опять же регулярно, должен “компенсироваться”.

Еще ругали оторванные от жизни примеры программ из документации. Обвинения те же, что и в начале статьи: “шаг в сторону – и всё разваливается, перестает работать”. О чем не читал, но догадываюсь – “в документации много букв, и всяких непонятных слов”. Ага.

Никаких противоречий, на самом деле, никогда не было. Я много раз был свидетелем того, как профессионалы, независимо от их отношения к Apple, а до меня – к NeXT, достаточно быстро справлялись с изучением очень непростых и требующих усилий для понимания “правил” в Cocoa (если кто не в курсе, это прямой потомок объектно-ориентированной среды разработки NeXTSTEP/OPENSTEP).

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

Реальность

Среда разработки в NeXTSTEP и тщательно продуманные объектно-ориентированные библиотеки, вместе с уникальным инструментарием (это я про InterfaceBuilder), и в самом деле облегчали (и облегчают) труд программистов. Но все это написано людьми, и нив коем случае не идеально.

Это очень сложная система, с непростыми, иногда не самыми удачными, правилами. Её освоение требует времени, проб и ошибок.

Она не гарантирует от ошибок, а иногда просто провоцирует на их совершение.

Но, тем не менее, в 90-х это была лучшая в мире среда разработки – и одна из лучших до сих пор, несмотря на глюки в Xcode (потомок ProjectBuilder) и медлительность симулятора iOS и других систем.

Хорошо бы все это встряхнули и почистили, и еще раз попробовали бы посмотреть на все со стороны… Надеюсь, это не нытье?

Солнце выбрало…NeXT

Солнце – это Sun Microsystems. В 90-е между Sun Microsystems и NeXT Software отношений не могло быть в принципе, они были в разных весовых категориях. Люди из Sun упоминали NeXT в публичных выступлениях, изредка и презрительно. И вдруг, в начале 1994…

В начале 1994 года Sun Microsystems объявила о важных изменениях в стратегии развития Sun DOE (Distributed Objects Everywhere).

Вице-президент Sun Microsystems по объектно-ориентированным продуктам (вообще-то его титул звучал еще более странно: VP Object Products) рассказал о созданной в Sun DOE инфраструктуре – это не было сенсацией, журналисты и эксперты были уже в курсе, хотя достижения компании не могли не впечатлить – и о важном элементе проекта, который до сих пор не реализован.

Этим элементом была среда для разработки приложений. По словам VP Object Products, у Sun Microsystems было несколько путей решения вопроса. Недостающее звено комплекса можно было разработать самим, дождаться выхода в свет операционной системы Taligent и использовать её, или использовать наработки NeXT.

На вопрос об объектно-ориентированном проекте Microsoft (Cairo), докладчик на секунду смешался, но кивнул: “да, и Cairo тоже”. Похоже, эта альтернатива не рассматривалась, во всяком случае, не рассматривалась всерьез – но вице-президенты не имеют права быть невежливыми.

Пауза. При умелом использовании, непревзойденный способ приведения слушателей в состояние напряженного внимания. Кажется, даже воздух в зале замер, и ждет. Только где-то за окнами – негромко, но невыносимо отчетливо в напряженной тишине – заходит на посадку самолет. Аэропорт в десятке кварталов от конференц-зала.

– Мы выбрали… NeXT.

Бесконечная пауза длилась всего две или три секунды – пресс-конференцию одного из топ-менеджеров гигантской влиятельной компании снимали для новостей.

Начало здесь, продолжения здесь, здесь, здесь и здесь.

Бад Трибл

Иногда важнее не то, что сказано или сделано, а кем. Вице-президентом Sun Microsystems по объектно-ориентированным продуктам был Бад Трибл. Один из создателей Macintosh, один из соучредителей NeXT, Inc, главный разработчик объектно-ориентированной модели NeXTSTEP.

Об этом человеке следовало бы написать книгу для серии “Жизнь замечательных людей”, в справке “на полях” не уместилось бы все, о чем нельзя не сказать, приведу только пару-другую несвязанных фактов: Бад придумал аксессуары рабочего стола в системе первого Mac’а, он доктор медицины (по нашей табели о рангах – кандидат медицинских наук), он…

В 1992 году Sun Microsystems предложила Баду пост вице-президента по объектно-ориентированным продуктам. Вместо 75 тысяч долларов в год, ему обещали 300, хотя едва ли именно это побудило Бада покинуть NeXT.

Уж не для того ли он “предал” Стива и компанию, чтобы внедрившись в вражеский стан выбрать из очень неплохих (как казалось) альтернатив разработку именно этой компании?

Человек пришедший из NeXT выбирает NeXT – согласитесь, это как-то… Подозрительно? В социуме где репутация далеко не пустой звук, это почти самоубийство.

Но Бад дождался, пока зал успокоится, и объяснил причины этого выбора.

Sun очень серьезно и ответственно подходит к разработке DOE, а среда для разработки в объектно-ориентированном комплексе – едва ли не самый важный фрагмент мозаики. Это, для тех кто будет создавать практические решения для бизнеса, науки и других жизненно-важных отраслей человеческой деятельности, лицо комплекса. Практически, это комплекс в восприятии тех, кто с ним работает.

Отсюда требования к кандидатам: кандидат должен быть продуктом, прошедшим проверку на пользователях, и выдержавшим её. По результатам исследования, в рамках которого были изучены сотни успешных продуктов в разных сегментах индустрии программного обеспечения, был выведен эмпирический закон “3.1”. Практически всегда, с очень редкими исключениями, программные продукты достигают зрелости к версии 3.1.

Собственная разработка не была бы не только “зрелым программным продуктом”, но и “продуктом” вообще. Taligent и Cairo – еще не продукты. Может быть, достигнув версии 3.1, среды разработки в этих операционных системах превзойдут NeXT – но на это уйдут годы, а решение нужно сейчас.

Преимущества конкурирующих систем ВСЕГДА можно парировать – добавил Бад.

В NeXT – единственная зрелая объектно-ориентированная среда разработки, проверенная рынком, переболевшая неизбежными детскими болезнями и очищенная от неудачных решений.

Принять такое решение Баду Триблу было труднее, чем любому другому в нашем мире, это шаг требующий мужества. Работа для каскадера, смертельно опасный трюк.

Тем же вечером, в интервью журналу NeXTWorld, Бад рассказал о том, как нелегко было прийти к этому решению, и как принял неизбежное.

А кроме того, он рассказал о подготовленном в Sun Microsystems предложении в комитет по стандартизации. Основой отраслевого стандарта объектно-ориентированных систем должна была стать OPENSTEP. Продолжение NEXTSTEP, совместная разработка NeXT и Sun Microsystems, система в создании которой Бад Трибл также принимал участие.

У Sun Microsystems уже есть опыт участия в разработке стандартов, и перспективы у этого предложения “более чем”.

Не сложилось? И да, и нет. Случилось “затмение солнца”, один из проектов, который уже рождался в недрах Sun Microsystems, затмил в глазах руководства компании все другие проекты.

Альянс Sun + NeXT

Реакция общественности на альянс между недавними врагами, гигантом Sun Microsystems и отчаянно цепляющейся за край пропасти NeXT Software, была бурной.

Особенно когда выяснилось, что речь идет не только и не столько о внедрении крохотной частицы NEXTSTEP в Sun Solaris, а о полномасштабном вторжении на чужую территорию.

Дискуссии разгорались нешуточные – но очень быстро скатывались на обсуждение преимуществ и недостатков Intel, SPARC и PowerPC, “белого” и “черного” железа, и на лексику из учебников по гинекологии. Как это обычно и бывает.

Инженеры обеих компаний, совместно, разработали спецификацию OPENSTEP, включив в неё все самое важное из NEXTSTEP.

Sun инвестировала в NeXT 10 миллионов долларов. OPENSTEP, пока еще в ранних бета-версиях, уже показывала признаки жизни на рабочих станциях от Sun с процессорами Intel и SPARC. Альянс объявил о поддержке OPENSTEP на рабочих станциях использующих процессоры PowerPC, выход которых был запланирован в 1995 году.

Проблем было очень много, но нормальных, решаемых и рабочих. Например, OPENSTEP не мог работать на многопроцессорных станциях от Sun. Для скрещивания ежа и ужа нужны были время и ресурсы – решили сначала выпустить первый релиз, а потом уже заняться решением этой проблемы.

Кроме обнародованных подробностей, альянс подписал какой-то секретный протокол, о нем кто-то проболтался – но до сих пор о подробностях этого протокола никто ничего не знает. Известно только, что он был.

Перед OPENSTEP (и перед двумя сотнями сотрудников NeXT) открывался путь на миллион рабочих станций от Sun Microsystems. От пользователей этих рабочих станций никто не требовал выбирать между Solaris и OPENSTEP – по замыслу разработчиков эти системы должны были мирно уживаться друг с другом, Copy/Paste – работать между системами без каких-либо проблем (то есть, скопированное из приложения Sun Solaris было обязано вставляться в приложения OPENSTEP, и наоборот).

Единственное, о чем никто не догадался – Sun Microsystems ждал невероятный успех, из тех которые выпадают не всем компаниям, медные трубы и…

А NeXT Software ожидали еще несколько очень трудных лет на краю пропасти.

Apple закроет свой самый первый App Store. На реновацию

Tysons Corner Mall Apple Store был самым первым розничным магазином корпорации. Его открывал сам Стив Джобс. Однако настала пора обновить и это легендарное пространство. Первая торговая точка Apple была открыта в городе Маклин, штат Вирджиния,...

NeXT на “белом” железе

Когда Стив объявил приговор “черному” железу, зал ошеломленно молчал. Представьте: Тим Кук, на Apple Event с красивым названием, жизнерадостно сообщает о прекращении разработки и производства Mac’ов. Мол, поставщики прекратили выпуск хитрых винтов для крепления батарей к корпусу, и другого выхода у нас нет. Зато теперь macOS (за 500 долларов, в США и без налогов) можно приобрести и установить на любой PC, вместо Windows или вместе с ней. Каково?

Для тех, кто успел полюбить “черное” железо (а таких было много, в нем что-то такое было, что привораживало), случилось именно это. Не они первые, но им от этого было не легче.

К счастью, бессмертная душа платформы переселилась в “белое” железо, и, со временем, превратила его в NeXT на Intel. А потом и не только на Intel…

Я уже писал про NEXTSTEP 3.2, самое важное событие в истории “белого” железа, но не могу не рассказать про неё еще кое-что. Про стороннюю программу, и про технологию от NeXT. Из множества программ и технологий, именно они, по моему, лучше всего отражают суть и природу “взрыва сверхновой”.

Индустрия, объединившись для борьбы с Microsoft, безжалостно растоптала небольшой и уютный уголок компьютерной индустрии. Порожденные этой борьбой стихийные явления разнесли вдребезги её зачинщиков, едва не погубив Apple Computer и выкинув Motorola из числа производителей процессоров, и почти не затронули ни Microsoft, ни Intel.

Растоптанный уютный уголок выжил, и начал отвоевывать себе жизненное пространство взамен утраченного, делая это все лучше и лучше…

SoftPC 3.1

Insignia Solutions, с середины 80-х, в течении десяти лет, безраздельно царствовала на рынке эмуляторов Intel и MS DOS. Начав с эмуляторов для Unix’ов, в том числе и для A/UX, Insignia пришла и на Mac’и с обычной операционной системой (в 1987 году). Естественно, SoftPC появился и в NeXTSTEP.

По состоянию на октябрь 1993 года, по данным Insignia Solutions, SoftPC был установлен в каждой шестой копии NeXTSTEP и NEXTSTEP в мире. Для программы, на ценнике которой 549 долларов, это очень неплохой результат.

В дистрибутив программы, с разрешения Microsoft, включалась полная копия MS DOS, да еще и в особо извращенной форме: скомпилированная из исходников Microsoft и глубоко оптимизированная для улучшения взаимодействия с эмулятором. В руководстве Insignia явно был собственный засекреченный Стив Джобс – вряд ли кто-то еще смог бы убедить Гейтса согласиться на такое.

Замечательная компания и продукт с уникальными потребительскими свойствами.

Но SoftPC 3.1, предназначенная для NEXTSTEP 3.2 и только на “белого” железа, на фоне предыдущих версий этой программы на всех платформах была настоящим шедевром. Не иначе на Insignia Solutions приняли NeXT’овскую веру.

SoftPC 3.1 эмулировала MS DOS 5.0 и… Windows 3.1. Впервые. Позже, Insignia Solutions выпустит отдельный продукт, SoftWindows, и адаптирует его для всех поддерживаемых компанией платформ, но в SoftPC этого больше никогда и нигде не будет. Насколько мне известно.

MS DOS и Windows 3.1 были разобраны до последнего винтика и скомпилированы заново, в фирменном стиле Insignia. В 3.1 отсутствовал эмулятор Intel, съедавший на “черном” железе, на Mac’ах и RISC-станциях на Unix, 2/3 циклов процессора. Он был не нужен, так как в “белом” железе использовались родные для обеих систем Intel-процессоры.

Эмулятор работал в двух режимах, в полноэкранном и в окне NEXTSTEP. Переключением между режимами управляли специальные комбинации клавиатуры.

Между MS DOS и Windows в эмуляторе и NEXTSTEP поддерживался Copy/Paste. Легко и просто для текста, чуть сложнее для графики (но это тоже было возможно, просто нужно было уметь пользоваться программой Grab для получения скриншотов во всех системах).

В полноэкранном режиме, особенно в MS DOS, Copy/Paste работал не всегда. Зато DOS и Windows занимали весь экран, и ни один шпион не догадался бы, что под ними спрятана NEXTSTEP. Шпионы всегда интересуются такими вещами – а тут их провели.

В эмуляторе поддерживались козырные технологии связывания данных от Microsoft, DDE и OLE – но за пределами эмулятора они были недоступны, даже если в программе для NeXT была реализована их поддержка.

Менеджер продукта, отвечавший на Insignia Solutions за SoftPC, Марк Манфорд, обещал подумать над устранением этого ограничения – его компании было бы выгодно убрать все препятствия с пути клиентов – но, видимо, вмешалась какая-то третья сила.

Были еще кое-какие недостатки, но продукт был премиального класса. На одном из дисков (CD/ROM?) в дистрибутиве NEXTSTEP 3.2 был установщик демо-версии (без ограничений по сравнению с реальной версией, кроме срока действия, через 30 суток после первого включения, секунда в секунду, она переставала работать; по словам одного немецкого NeXT’овода, обмануть её было очень легко – отодвинув текущую дату в прошлое). В установщике были кнопки “Купить”, “Установить” и “Купить и установить”. И копирайт Paget Press.

Покупка “через NeXT AppStore”!

Стоила SoftPC 3.1 249 долларов. Еще и дешевле, более чем в два раза, чем предыдущие версии.

Portable Distributed Objects (PDO)

PDO – это небольшой фрагмент NEXTSTEP, переносимый на другие платформы. Лично я использовал её для взаимодействия клиента с сервером, оба из которых работали под управлением Mac’овской системы – и кажется, вся эта подсистема до сих пор лежит в глубине macOS (я не слышал чтобы её объявляли устаревшей), но уже очень давно мало кто ей пользуется. Ей 26 лет, для программного обеспечения это более чем почтенный возраст.

В чужие системы переносились основные классы NEXTSTEP, библиотека NXStream, программа nmserver (Unix’овая), и самый главный рабочий механизм PDO, классы NXProxy и NXConnection. В эпоху Cocoa они назывались NSProxy и NSConnection, но были они почти такими же, как в начале 90-х.

На другую платформу переносили Objective-C (из GCC 2.4), отладчик GDB и Portable Build Server. И много-много чего еще. NEXTSTEP очень большая система.

В программы на чужой платформе, с которыми планировалось организовать совместную работу, встраивались объекты подклассов NXProxy и NXConnection, а от экземпляра nmserver на NeXT-станции к экземпляру nmserver на Unix-станции, с помощью TCP/IP, отправлялся запрос с указанием имён сервера и искомого объекта.

Найдя искомое (если программа на сервере не была запущена, она запускалась), nmserver уходили в тень, а на NEXTSTEP появлялась полноценная рабочая ссылка на объект в чужой системе, с которым можно было делать все что угодно, как если бы он был на NeXT-станции. Отправлять ему сообщения, на которые он умел реагировать, получать от него результаты вычислений.

Вообще-то, в тот момент это была единственная коммерческая реализация подобного взаимодействия в индустрии, возможно единственная вообще. О подобном писали умные статьи, чуть ли не мечтали.

Использовать PDO предполагалось разными способами. Например, непосредственно из программы на NEXNSTEP-станции запускать трудоемкие вычисления на мощных рабочих станциях, или использовать на сотнях NeXT-клиентов общие программы на очень мощном сервере.

Например, в компании которой приходится проводить транзакции в разных валютах, на сервере можно было разместить программу возвращающую актуальное соотношение валютных пар, с которой одновременно могли работать сотни и тысячи клиентов. При изменении соотношений курсов новые значения становились доступны всем клиентам.

В октябре 1993, во время презентации NEXTSTEP 3.2, представили первую реализацию PDO, для HP-UX. На Data General и Sun уже шла работа по переносу PDO на DG-UX и Sun Solaris, которые должны были выйти в свет в январе и в марте 1994 года.

NeXT AppStore

NeXT AppStore был создан в начале 90-х. Назывался он Electronic AppWrapper (EAW).

Причастные к созданию NeXT AppStore считают, что они его изобрели. Ничего подобного в начале 90-х действительно не было, идея принадлежала им – правда, запатентовать своё изобретение и юридически оформить права на него они не догадались. Скорее всего, они не могли даже представить себе, насколько ценную и мощную штуку они придумали.

Компания Paget Press, которую соседи по офисному центру в Треугольном здании на Западной авеню Сиэтла, напротив самого большого “общественного” рынка, считали издательством, на самом деле была розничным дилером NeXT Computer.

Компания принадлежала супружеской чете Томпсонов, Гэри и Пегги, и не приносила существенных доходов. Гэри занимал высокий пост на Боинге, и в деятельности Педжет Пресс не участвовал. Только деньгами.

Дилеры NeXT были больше похожи на религиозные сообщества, чем на бизнес. Затянув пояса, в надежде на неминуемый успех “черного” железа, они верили в NeXT и любили эту платформу, а от любви до вдохновения один шаг. Люди жертвовали собой во имя идеи, это глупо и непрактично – но не глупее ли тратить десятки лет на работу, от которой тошнит?

В 1991 году Педжет Пресс опубликовала каталог программного обеспечения для NeXT, из-за революции в издательском деле теперь это было возможно, и даже стоило не слишком дорого.

В первый каталог вошла информация о паре сотен программных продуктов, это оказалось куда более прибыльным занятием чем нечастые продажи “черного” железа. Кроме того, каталог выделялся на фоне себе подобных: в увлекающихся людях почти обязательно скрываются самые неожиданные таланты. Первый тираж каталога был распродан почти моментально.

Это был обычный “бумажный” каталог. Первый шаг к NeXT AppStore.

Ричард Кэри

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

Альманах (каталог – это как-то слишком обычно, не правда ли?) теперь выходил один раз в квартал. Педжет Пресс продавала NeXT’ы, но все больше была похожа на издательство.

В компанию зачастили посетители, желавшие заказать рекламные каталоги (принтеров, сеялок, IBM PC). Посетителей вообще стало очень много – пришло время подумать о расширении штата.

Неизвестно, чем бы закончилась история AppWrapper и Paget Press, если бы в один из морозных дней 1992 года в Треугольном здании напротив главного городского рынка не появился Ричард Кэри. Ричард искал работу, и откликнулся на предложение Paget Press.

В наши дни он преуспевающий писатель и философ, известный и популярный. Видимо, в узких кругах – мало ли в мире философов и писателей. Но в начале 90-х Ричард оказался в трудной ситуации. Сколько он себя помнил, он писал рассказы и мечтал стать писателем. С детства.

Вместо этого, закончив университет, он женился. И семь лет занимался маркетингом в какой-то большой и богатой компании. На писательство времени не оставалось совсем, но мечта не хотела умирать и терзала душу – нормальный и ответственный человек стойко переносил бы эти терзания сколько угодно лет, до выхода на пенсию (простите), или до “морковкиного заговенья”. Жена, дочь двух лет от роду, кредиты-ипотеки…

Но он решился. Жена, видимо не сразу, согласилась потерпеть год. Двухлетняя дочь тоже не возражала (но исключительно по причине малолетства, позже она неизменно вставала на сторону матери). Написав два романа, Ричард безуспешно пытался их опубликовать. Время шло, год растянулся на два, от сбережений почти ничего не оставалось.

Педжет Пресс была первой компанией на пути Ричарда. Издательству (он был уверен что это издательство) требовался менеджер по маркетингу. Ричард был первым, кто пришел по этому объявлению: сумма компенсации не вдохновляла соискателей. Судьба первого в мире AppStore висела на тоненькой ниточке в течении нескольких недель.

На интервью он ни в чем не признался, даже когда узнал что компания продает NeXT’ы. Ни в том, что о компьютерах не имеет представления (хотя компьютер у него был, Gateway без жесткого диска), ни в том, что про CD/ROM он слышит в первый раз в жизни и не знает что это такое. Он был согласен. Его приняли.

Компенсация была не слишком большой, жена была в ярости, а вместо маркетинга Ричард занимался общением с посетителями, отвечал на телефонные звонки, правил тексты для AppWrapper, и тысячей подобных дел.

Джесс Тейлер

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

Когда в Paget Press полноводным ручейком потекли деньги от AppWrapper, Джесс стал начальником отдела, и у него появилась небольшая, но очень талантливая команда, “для работы с CD/ROM”. Пегги была уверена что это невообразимо сложное дело.

Рабочее место Ричарда было в предбаннике компании, Джесс и его команда занимали комнату в глубине офиса – они почти не пересекались. Когда посетителю требовалась техническая консультация, Ричард звонил Джессу.

В небольших компаниях секретов не бывает. Джесс с командой “занимались CD/ROM”. Три или четыре программиста. Сколько нужно программистов для того, чтобы ввинтить лампочку или разместить на CD/ROM сотни две или три демо-версий?

Ввинчивая лампочку или размещая что-либо на CD, лучше обходиться без программистов.

Команда написала две программы, назову их EnCrypt и DeCrypt (история не сохранила их настоящие имена).

Первая шифровала установочный пакет программы, вторая расшифровывала этот пакет и устанавливала продукт на жесткий диск компьютера. DeCrypt запускался двойным кликом по зашифрованному архиву, и предлагал ввести ключевое слово или связаться с владельцем прав на программу, купить её, получить заветное слово и… пользоваться.

DeCrypt генерировала почтовое сообщение на адрес поставщика программы, клиенту оставалось только просмотреть её, добавить несколько слов от себя – и вуаля.

Все это было бы здорово, если бы процесс не требовал человеческого вмешательства, но поставщик должен был прочитать письмо от потенциального клиента, организовать процесс оплаты и получить подтверждение, сгенерировать кодовое слово для клиента, отправить его клиенту… И нигде не ошибиться при этом.

Ричард был в курсе подпольного проекта, как и все сотрудники Педжет Пресс, и в курсе его проблем. Его мучила эта досадная нестыковка. Программный продукт, который купит один или два клиента – не продукт. С такими продуктами ни проблем не будет, ни прибыли.

А вот если разработчику удалось поймать “птицу удачи”, и тысячи пользователей захотят её приобрести, почтовый клиент разработчика будет завален сообщениями, на которые нужно ответить, затем – получить подтверждение оплаты, затеи сгенерировать кодовое слово и отправить его покупателю.

Electronic AppWrapper (EAW)

Ричард доработал схему, и, преодолев немалые трудности, то работая круглые сутки вместе с командой Джесса, то ведя непростые переговоры с представителями банков, замкнул цепь.

Цепочку испытывали как оружие массового поражения. А она им и была: её создатели знали, что покупатели будут поражены. Представители банков, не склонные к восторгам и очень осторожные люди, были поражены первыми. Поэтому они придирчиво проверяли все возможные и невозможные сценарии, пытаясь исключить малейшую возможность ошибки или мошенничества.

Их педантизм доводил разработчиков до нервных срывов, но справившись с бешенством, они снова и снова отрабатывали сценарии, в которых банкиры углядели что-то понятное только им – все понимали, насколько это важно.

Наконец, банкиры дали добро, и система заработала.

Теперь процесс приобретения выглядел так: двойной клик выводил на экран страницу с информацией о зашифрованной программе, и кнопки для установки демо-версии (срок и условия работы демо-версии определял поставщик программы), для её приобретения и для установки приобретенной программы (с вводом ключевого слова).

На процесс, запускаемый нажатием одной кнопки, ушло 99% времени разработчиков, тестировщиков и банкиров. Покупатель вводил номер банковской карты, программа генерировала платежное поручение и, в зашифрованном виде, вместе с информацией о плательщике, передавала её банку. Банк проверял запрос (валидность карты, остаток на ней и что-то еще), блокировал требуемую сумму, и отправлял зашифрованный запрос с подтверждением оплаты Electronic AppWrapper, который генерировал ключевое слово и сообщал это слово покупателю и выводил диалог с предложением установить программу (без ввода ключа, AppWrapper’у ключ был уже известен).

Волшебные CD/ROM доставлялись по подписке, за 48 долларов в год. С каждым автором оговаривался процент от стоимости копии, перечисляемый Paget Press – от 15 до 40.

Доходы Paget Press выросли на порядок. Компания выпустила пять “умных” CD/ROM, и перенесла систему в Интернет. Доходы снова выросли, но Пегги превратила EAW в магазин нетрадиционной джазовой музыки, и все закончилось.

EAW и Стив Джобс

На конференции NeXT’овских разработчиков в конце 1992 года, Джесс Тейлер показал Стиву Electronic AppWrapper, и предложил включать программу в дистрибутив системы, за небольшие отчисления с каждой копии.

Идея Стиву понравилась, но…

– Включать AppWrapper в дистрибутив было бы здорово, но денег на отчисления нет.

Пообещать бесплатное включение Electronic AppWrapper в дистрибутив у Джесса не было полномочий. Жаль.

Белое и черное

Со стороны это казалось капитуляцией: когда компания увольняет половину своего штата и закрывает самую заметную часть своего бизнеса, что еще можно подумать? На самом деле все было еще хуже – но сдаваться они не собирались.

Общественное мнение вынесло вердикт: “черное” железо, как окрестили компьютеры от NeXT в индустрии за их необычный трагический цвет, было слишком медленным и никуда не годилось. Компания перешла на Intel, и правильно сделала.

Общественное мнение явно симпатизировало компании, редкий случай в истории. И ждало от NeXT Software чего-то особенного. В основном симпатизировало. Оно очень разное, это мнение. Компания так и не стала “публичной”, она на была представлена на бирже, и на её действия не реагировали толпы впавших в панику акционеров.

В 1991-92, производительность “черного железа” от NeXT не уступала конкурентам, и само оно очень даже подходило для выполняемых им задач, но в общественном мнении жил его мифический образ – безумно прекрасные черные кубы, загадочные и необычные.

Правильно ли поступил Джобс, превративший NeXT Computer в NeXT Software? Ответить на этот вопрос сложнее, чем кажется. Недостаточно данных. О финансовом положении NeXT можно только догадываться: это была частная компания, принадлежащая Джобсу.

Скорее всего, с доходностью у неё были серьезные проблемы. Кроме Стива и бухгалтера компании о реальном положении дел никто не знал.

RISC-революция была неизбежна. Вот-вот должно было начаться массовое производство процессоров, “таких же как на мощных рабочих станциях”, “невероятно мощных”, которые сметут нынешнее “старьё” с рынка… Она была очень близка, но все-таки еще не началась.

Массовое производство первых серийных PowerPC должно было начаться примерно через год. Естественно, первыми получили бы их, в промышленных объемах, “члены профсоюза”. В смысле, консорциума. Apple. Но для Apple у консорциума с её участием в любом случае были бы особые цены и преференции.

Задержка с выходом NeXT RISC Workstation на рынок на год, или даже на два года, мало что изменила бы. Хуже точно не стало бы. Прототип NRW в компании уже был, его можно было довести до неземного совершенства. Пока же, 68040 с тактовой частотой в 33 МГц был одним из лучших массово выпускаемых процессоров…

Продолжение, начало здесь, и здесь.

История игрушек Стива Джобса

Период между изгнанием Стива Джобса из Apple Computer и его возвращением делится на две неравные по длительности части. На периоды NeXT и Pixar.

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

Но вкладывать душу сразу в несколько дел – это другое. Ни NeXT, ни Pixar, с точки зрения любого члена советов директоров двузначного числа компаний, считать “бизнесами” было бы некорректно. Вместо того чтобы приносить доход, оба предприятия опустошали счета Стива Джобса. Они были его игрушками.

Некоторые играют в Робизонов Крузо, некоторые крутят высший пилотаж, почему бы нет?

В эпоху NeXT, Стив непосредственно “рулил” этой компанией. Принимал решения, общался с кандидатами на замещение вакантных должностей, совершал ошибки и исправлял их. Он был главой компании и её владельцем.

Скорее всего, за исключением 1992 года, NeXT была безнадежно убыточной. 1992 принес или небольшую прибыль, или намного меньшие убытки чем обычно. Точных данных нет.

Казалось, еще усилие или два – и компания займет в индустрии достойное её потенциала место. В мире сотни тысяч компаний, большинство из них успешно и выгодно продает свои изделия, продукция сотен из них широко известна и популярна, но только единицам из них удается превратить свои изделия в культ.

NeXT это удалось – но любовь никому ничего не гарантирует. Зато на Pixar, прошедшей свои круги ада, точно также внушавшей любовь и балансировавшей на грани, появилась надежда – бесплотная и почти нереальная.

Стив не мог её не ощутить, но затянувшийся период неудач превратил его в скептика, и он то верил в неё, то нет – а надежда не уходила, несмотря на неудачи и провалы.

До этого Стив, время от времени, заезжал на Pixar, решал накопившиеся вопросы, и снова погружался в NeXT. Теперь он разрывался между обеими компаниями, все больше уходя в “мультики”.

А с деньгами у него уже было не очень. “Промотал”.

Чехарда с RISC-процессорами произошла на границе между этими периодами. Ставку на RISC Стив был готов сделать одним из первых в индустрии. За год до выхода SPARC и MIPS. Из работ по созданию 88000 Motorola не делала секрета, а если бы в самом первом кубе от NeXT в истории человечества был MC88100, могло бы все сложиться иначе?

На границе между эпохой NeXT и эпохой Pixar в его жизни, все опять было на грани.

У NeXT был шанс. Уникальный. На самом деле его уже не было, но об этом еще никто не знал. Рабочая станция с RISC-процессором, с тактовой частотой в 50-66 МГц, появись она за год или два до начала RISC-революции, имела шанс “порвать” рынок. Очень многие хотели связать свою жизнь с NeXT, у компании была мощная группа поддержки, несмотря на скромные объемы продаж и более чем скромную пользовательскую базу…

Эту рабочую станцию ждали, о готовности покупать её сотнями и тысячами Стиву писали очень серьезные люди – отвечающие за свои слова. Они могли подождать пару-другую месяцев. Дольше – нет.

Инженеры NeXT успели. Успели дважды. И прототип на одном 88110, и прототип на двух PPC-601 (50 МГц), работали. Последний из них можно было довести до товарного уровня за месяц или два. Но…

Не успела Motorola.

NEXTSTEP 3.2

Вторжение NeXT на земли “белого” железа началось 25 мая 1993 года, с версии NEXTSTEP 3.1. Её задачей были захват и удержание плацдарма, и разведка. Это было столкновение с иной цивилизацией, очень разнообразной, массовой и жестокой. Разведка боем.

Плацдарм был захвачен и удерживался, но ценой огромных потерь. Репутационных. Силы были неравными. Меня поражает близорукость обозревателей, мешающих коммандос на чужой и незнакомой территории из-за их малочисленности и неспособности победить всех тут же и сразу, могучим ударом.

Недостатки NEXTSTEP 3.1 расписывали с упоением и восторгом, не обращая внимание на “3.1” в конце названия новой системы. Это был номер версии. Номер версии, с приличной долей вероятности, подразумевает продолжение. Следующую версию.

Претензии были: поддерживаются только избранные варианты IBM PC, и редкие платы расширений; отсутствует совместимость с Windows; огромное число багов и глюков. Вот он какой, NeXT!

NEXTSTEP 3.2 была представлена публике в октябре 1993, её продажи начались в ноябре. Представлял систему Рик Джексон, директор NeXT Software по маркетингу. Уже не Стив. Времена изменились.

Рик сделал небольшой экскурс в историю, и посмеялся (вместе с аудиторией) над самыми известными и неприятными багами в 3.1. Эти баги исправлены. В 3.2 исправлено более 500 багов. Но не это главное.

Теперь пользователям PC доступны высококачественный звук, графика и видео. То, что в течении нескольких лет было доступно пользователям “черного” железа. Но и это не самое главное.

Расширена поддержка конфигураций (перечисление, заканчивающееся фразой “и другие”). Поддерживаются не все конфигурации, но все достойные внимания. NEXTSTEP 3.2 просто нет смысла устанавливать на дешевые бюджетные PC, это серьезная система, которой нужны серьезные ресурсы.

В составе системы SoftPC 3.1, благодаря которой пользователь сможет пользоваться программами для DOS и для Windows.

PDO (Portable Distributed Objects) для HP – это отдельный программный продукт, который упрощает взаимодействие сервера с NEXTSTEP с клиентом на HP, и наоборот. В чуждой NEXTSTEP системе появляется его полномочное представительство, берущее на себя заботы по передаче данных, запросов и управлению.

Число конфигураций “белого” железа почти бесконечно. Количество типов периферии поражает воображение. Потребность индустрии в драйверах для всех этих устройств огромна.

И в NEXTSTEP 3.2 есть отличный ответ на эту потребность. Называется он DriverKit. Это объектно-ориентированная библиотека (фреймворк) для разработки драйверов.

В наборе – базовые драйверы для различных категорий периферийных устройств, и их подклассы с добавленными свойствами, часто нетривиальными. Например, драйверы с поддержкой 32-битного “настоящего цвета”, для SCSI, графики и работы с сетью.

Новые драйверы создаются на основе драйверов из набора, как подклассы. В библиотеке иерархия из десятков объектов, которые можно использовать и в учебных целях. Весь их исходный код открыт.

На сцену был приглашен Брент Терри, главный менеджер по интеграции технологий из компании Pencom, для рассказа о своих впечатлениях от DriverKit. Снижает трудозатраты на треть. Типичный Unix’овый драйвер, написанный стандартными средствами – это 6000 строк кода. Драйверы написанные с помощью DriverKit, в среднем, занимают всего 1000 строк.

Как оказалось, “война” только начиналась. Она была долгой и кровопролитной, но теперь уже никто не мог упрекнуть провинциалов из маленькой удаленной от бушующего мира компании в неадекватности.

Продолжение следует

Лучший год NeXT

В 1992 году продажи NeXT’ов медленно, но уверенно, росли. Слухи о невероятной мощи NeXT RISC Workststation (NRW) достигали ушей тех, кто принимает решения о закупке оборудования, и если бы этот проект не пришлось останавливать, история вполне могла бы пойти другим путем.

Продолжение, начало здесь.

Во многих публикациях посвященных истории NeXT, решение Стива Джобса прекратить разработку компьютеров и другого “железа”, уволить половину сотрудников (270 из 530!) и превратить NeXT Computer в NeXT Software, конкурирующую с Microsoft, объясняется двумя причинами: компьютеры от NeXT очень плохо продавались и у них не было никаких перспектив, и Джобс – авторитарный самодур.

Все было немного не так.

В апреле 1992 года NeXT выпустила “турбированные” версии своих компьютеров, в них на месте 68040 с тактовой частотой 25 МГц был тот же самый 68040 с частотой в 33 МГц.

Рост производительности был заметным, но 68040 быстро устаревал, индустрия начинала новый технологический прорыв, и отставать было нельзя. Отстать – скомпрометировать всю идею!

Про NeXT RISC Workststation, несмотря на строжайшую секретность, знали в мельчайших подробностях, её с нетерпением ждали. Серийный выпуск процессоров MC88110 задерживался.

Потом его и вовсе отменили. Инженеры NeXT предвидели такой вариант, и были к нему готовы (Стиву об этом не говорили), просчитав и продумав заранее двухпроцессорный вариант. PPC-601 был намного слабее чем MC88110.

Стив связался с Motorola – надо было начинать продажи NRW, в течении месяца-двух или никогда. Оказалось, что сколько-нибудь массовые поставки PPC-601 начнутся не раньше, чем через год.

Значит, никогда. В 1992 NeXT продала, по неофициальным данным, не менее 25 тысяч NeXT’ов. Официальных данных нет.

Как частная компания, NeXT не обязана была публиковать отчеты об объемах продаж, и не делала этого. Считается, что всего было продано 50 тысяч NeXT’ов, за четыре года.

По другим данным – 70 тысяч. Принципиальной разницы никакой.

Социальные последствия

В 1991-1992, когда продажи NeXT’ов пошли повеселей, в нескольких странах мира были открыты представительства компании. Например, в Российской Федерации, где были приобретены целых 6 (шесть) экземпляров NeXTstation, на основе которых в одном из министерств построили какую-то систему, о которой мало что известно.

В Японии представительством NeXT занималась Canon, продававшая NeXT-станции своего собственного производства. Canon купила завод NeXT в Фремонте, и приняла на работу часть уволенного из NeXT персонала.

А вот в Канаде представительство NeXT закрылось. Пользователи платформы лишились технической поддержки (а среди клиентов NeXT была компания Trimax, использовавшая 130 NeXT’ов, и еще несколько компаний с несколькими десятками NeXT’ов).

Пользователи редких, но ярких и поражающих психику (в хорошем смысле этого слова) платформ – люди необычные. Взаимопомощь, братство…

Когда-то в подобной ситуации были мы, редкие пользователи Mac’ов в России, это было совершенно особенное сообщество людей. Кто еще в мире может потратить несколько дней своей жизни на решение компьютерных проблем совершенно незнакомого человека, за бесплатно, и при этом получать удовольствие от общения с… больными той же самой болезнью, что ли?

В Москве, в те самые недели и месяцы, повсюду, взгляд натыкался на рекламу Pepsi, с текстом “Поколение NEXT”. Только не “той NeXT”, увы. Почему-то от этого было больно.

В Канаде само-организовались. То же самое сделали в Австралии и Новой Зеландии. И в Германии. Отныне это были неформальные, крепко спаянные (и споенные) организации, писавшие иногда ругательные (или одобрительные) послания Стиву Джобсу, в которых они утверждали что теперь NeXTSTEP и OPENSTEP – это больше чем NeXT Software. Изредка их советы принимали к сведению, но Стив теперь жил проблемами Pixar.

NeXTstep на Intel

Столкновение с иной реальностью было жестоким. Маленькое сообщество “черного железа” было увлечено своей самобытностью, и отлично понимало что большинство шедевров программного обеспечения на их рабочих станциях написано людьми, которые делали это первый раз в жизни.

На мощных рабочих станциях на Intel им противостояла Windows NT, система написанная бывшими сотрудниками DEC, авторами VAX/VMS. Программы для Windows NT, пусть и не всегда элегантные и оригинальные, прошли жесточайший эволюционный фильтр, и, как минимум, были очень профессиональны.

Потребовалось немало времени для того, чтобы силы сравнялись. Про среду разработки расскажу чуть ниже.

Система NeXT переносили на самые разные платформы – в содружестве с Sun затевались большие дела, ради которых была разработана открытая спецификация системы, которую назвали OPENSTEP, но Sun охладела к этому проекту, из-за Java.

Кстати, в разработке Java принимали участие бывшие инженеры NeXT, конструировавшие NRW. Они хоть и считались специалистами по аппаратному обеспечению, но на Objective-C программировали профессионально.

Считается даже, что это именно они оказали влияние на язык Java, в котором и в самом деле гораздо больше общего с Objective-C, чем с C++ или Modula-3.

Красивая сказка, но не подтверждается. Основные принципы языка Oak (такое имя в раннем детстве носила Java), к моменту притока бывших сотрудников NeXT в Sun, были уже четко определены и зафиксированы в техническом задании.

Один из авторов Objective-C, Брэдли Кокс, принимал участие в создании Java.

ProjectBuilder

Столкновение с Windows NT было жестоким, но тем приятнее были победы над ней и все то, что рождает чувство превосходства.

В 1997 или 1998, в самом начале яблочного возрождения, мы с коллегой наткнулись на каком-то Интернет-ресурсе на статью французского программиста (Windows NT), которого заставили работать в OPENSTEP, впечатления от которой у него были… разные – но как-то, в час досуга, из чистого любопытства, он заглянул в ProjectBuilder.

Это была ловушка: мужик попал в переплет. Теперь он задерживался после работы, читал документацию и пробовал. Его поразило, с какой простотой и легкостью решаются в ProjectBuilder проблемы, требующие в Visual C++ тысяч строк кода, в которых неминуемо делаются десятки ошибок, на поиск которых и борьбу с ними уходят часа адского труда.

Но написал он свою статью (блоги еще не назывались блогами, по моему) не из-за этого. Он решил доказать свою теорию на хорошо знакомом большинству программистов в NT примере из популярного учебника по программированию.

Те самые десятки тысяч строк нетривиального кода, необходимых для связывания данных из нескольких программ в цельный и осмысленный комплекс. OLE в Windows, D’OLE в OPENSTEP. D’OLE чуть старше, и умел работать через сеть.

Когда-то, следуя инструкциям в учебнике, он довел этот проект до рабочего состояния, чем очень гордился. Пригласив свидетеля, он засек время и…

Через 3 часа, с минутами, приложение написанное на Objective-C было готово. Свидетель, тоже NT-шный программист, и тоже намаявшийся в свое время с этим проектом, нашел в реализации с десяток неточностей. Всего 8-10 проблем. В реализации на Visual C++ в MFC их было бы в разы больше.

Исправления заняли еще пару часов.

Итого: в C++/MFC — тысяч 30 строк кода (не считая пустые и комментарии), в Objective-C/Foundation — полтысячи строк, на тех же условиях. В 60 раз меньше!

20 лет назад я мог бы показать все это в коде, но увы… NT c OPENSTEP у меня нет.

Француз призывал Apple (которая теперь была NeXT Apple) сконцентрироваться на самом денежном бизнесе из всех, которые только можно представить: продвигать ProjectBuilder как среду разработки для Windows NT. Немного рекламы, несколько мастер-классов – и про Visual C++ вместе с MFC можно будет забыть.

Так и поступили: способность Project Builder (в Mac OS X в названии появился пробел) строить программы для Windows была заблокирована. Потом её вообще вырезали.

Индустрия против NeXT

В конце 80-х появление новой компьютерной платформы на поделенном между гигантами индустрии рынке было невозможно, но “черное железо” NeXT, несмотря ни на что, как до этого Apple II и Mac’и, в 1991 превратилось в реальную угрозу устоявшимся порядкам.

Как это уже было с Apple II и Mac’ами, “черное железо” вызывало привыкание. Никто из тех, кому довелось близко познакомиться с NeXT’ами, не оставался равнодушным. Было в них что-то такое, почти магия. На первый взгляд, иррациональное и ненормальное.

На самом деле, кто-то точно угадал, о чем на самом деле мечтают IT-шники, сами даже не подозревая об этом. Стив Джобс, конечно, к этому не имел никакого отношения.

NeXT’ы вызывали привыкание, это факт. Сам по себе этот факт почти ничего не значит: это случается сплошь и рядом, но большая радость маленького человека не может поколебать основы мироздания.

NeXT Computer удалось заинтриговать публику, вызвать массовое любопытство, желание попробовать эту загадочную штуку – мол, я-то конечно не куплюсь ни на что такое, но ведь любопытно!

Первая попытка была неудачной: любопытство NeXT разожгла, вот только утолить его не было почти никакой возможности. NeXT’ов не было в свободной продаже, они стоили безумно дорого, они были медлительны и полны багов – и все-таки в них что-то было такое, чего не было ни у кого. Крошечный такой бунт, ничем и никому не грозящий.

Сколько их таких уже было… И все закончились ничем. За редким исключением. Чудес не бывает, если вам рассказывают о чудесах, внимательно следите за кошельком!

Но в 1990 ситуация изменилась.

IBM

Безумная затея NeXT заинтересовала IBM. Big Blue (прозвище IBM), которую Стив Джобс не раз обвинял в умышленном противодействии прогрессу, приобрела у его компании (по непроверенным данным, за 10 миллионов долларов) лицензию на использование NeXTstep на нескольких своих платформах.

Сумма не разглашалась. Журналисты, по своим каналам (за пять долларов машинистке?), узнали подробности сделки, но информация о сумме основана на их умозаключениях.

Реализовав свое лицензионное право на платформах RS/6000 и PS/2, IBM вдруг резко поменяла курс. Планы, о которых Big Blue объявляла во всеуслышанье, были отменены.

IBM и Apple создали альянс, в целях которого не было ни одного слова про NeXT, но зато намеков на этого возмутителя спокойствия было предостаточно. Одной из целей альянса была совместная разработка “объектно-ориентированной операционной системы”, для чего создавалось совместное предприятие (Taligent). Основой для Taligent был проект Pink.

Apple была заинтересована в переходе на RISC-архитектуру, IBM это было выгодно.

На Unix EXPO в 1991 году, президент отделения рабочих станций IBM Билл Филип заявил, что NeXTstep вовсе не объектно-ориентированная система. Многослойная система, такая же как OS/2 или System 7, и в ней нет ничего инновационного.

А вот на Apple разрабатывается чистая объектно-ориентированная система, на всю её глубину, с нуля – это Pink, и IBM готова эту систему поддержать.

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

Фанатичное поклонение любой идее убивает её эффективнее, чем её противники. Доводя её до абсурда и безумия. Объектно-ориентированное программирование вовсе не панацея от плохого кода. При разумном и грамотном использовании, она ничуть не хуже других. А десятки примеров, будто бы подтверждающих обратное, всего лишь сборник типичных ошибок, которых следует избегать.

Другой целью альянса Apple и IBM была совместная разработка рабочих станций, на RISC-процессорах “как в RS/6000”, то есть, POWER. Процессоры PowerPC, использовавшиеся в Mac’ах c 1994 по 2005, были разработаны на их основе.

Альянс Apple и IBM был направлен против NeXT, но был еще один пострадавший – Motorola, которая разрабатывала собственное семейство RISC-процессоров, 88000.

Motorola оказалась в очень неудобном положении, сулящем ей нешуточные беды. Но, не зная как сложится ситуация, держала партнеров в неведении…

Motorola и Стив Джобс

Несмотря на слухи о переговорах Motorola с IBM, и о её изменившихся планах, Стив вплоть до решения Motorola об отмене серийного выпуска MC88110, требовал продолжать работу над NeXT RISC Workstation (NRW) на этом процессоре. На все вопросы он отвечал, что ему дали слово. Он им поверил! Это вызывает недоумение: как он мог им поверить?

Это было ошибкой, но она характеризует Стива с совершенно неожиданной стороны. Сам он никогда не нарушал своего слова. За исключением случаев, когда его самого ввели в заблуждение. Верить в чье-то слово может только очень честный человек.

Стиву приходилось совершать некрасивые поступки, но только когда не было никакого другого выхода. Если бы он не подставил в 1997 сначала Гила Амелио, а потом – и совет директоров Apple, уже в сентябре или октябре компании пришлось бы объявить о своем банкротстве.

Через несколько лет он рассказал об этом – начав рассказ с “мне пришлось поступить некрасиво”.

MC88110

К разработке собственной RISC-архитектуры на Motorola приступили в первой половине 80-х. Инженеры на Motorola всегда отличались аристократической чистотой разработкой, и семейство 78000 не стало исключением.

Решение на разработку 78000 было принято, составлены графики, назначены менеджеры, но, по непонятным причинам, финансировался проект по остаточному принципу, и отставал от графика. И от конкурентов.

В 1985 году, Стиву был нужен амбициозно производительный процессор для его нового проекта, он знал что Motorola разрабатывает свой собственный RISC. Но момент для его встречи с руководством Motorola был не самым удачным. Проект 78000 был отменен, а 88000, использующий наработки предшественника, только начинался.

Ему показали новинки серии 68k, ранний прототип 68040, рассказали о супер-процессоре из этой “классической” серии 68060, и о том, каким замечательным процессором будет 88000, когда завершится его разработка. В ближайшие несколько лет, как оказалось, ни о каком массовом производстве RISC-процессора от Motorola речи не было.

MC88100, первый процессор семейства 88000, был выпущен в апреле 1988 года. Через два года после SPARC и MIPS. По мнению экспертов, в опоздании виноваты разброд и шатание в руководстве Motorola, которое никак не могло определиться с приоритетами.

В первом серийном процессоре MC88100 на чипе отсутствовал блок MMU, сделано это было из каких-то высоких соображений и с какой-то целью, но умные слова не помогли, и успеха процессор не имел.

Процессор второго поколения семейства, MC88110, исправлял эту ошибку, его выход был запланирован на 1991 год. Процессор был очень хорош, и мог конкурировать с PowerPC, но на Motorola своим инженерам не верили.

Apple, NeXT и Apollo Computer, подписали с Motorola протоколы о намерении использовать эти процессоры, представители Motorola уверили партнеров в незыблемости своих планов.

Было это в 1990. На NeXT успокоились (Стив поверил Motorola), и проект NRW (NeXT RISC Workstation) стартовал. Трое из разработчиков NRW, Питер Кинг, Майк Демони и Джон Симонс позже вспоминали, как все это было. Получался фантастический аппарат – в плоском корпусе (форм-фактор “коробка из-под пиццы”), несколько большей толщины чем NeXTstation, он легко обошел намеченные для него показатели производительности.

MC88110 был отличным процессором, по словам работавших с ним разработчиков. В NRW один-единственный MC88110 был раза в полтора эффективнее, чем два PowerPC 601.

Перепроектировать NRW пришлось срочно и неожиданно: в 1991 году Motorola объявила MC88110, но в серийное производство его не запускала, якобы из-за каких-то технических проблем.

Как позже выяснилось, Motorola вела интенсивные переговоры с IBM и Apple, результатом которых стал консорциум AIM (Apple+IBM+Motorola), RISC-процессоры PowerPC и полное прекращение проекта 88000.

Apple пережила эту катастрофу легко. Уже в течении нескольких месяцев там работали с прототипами PPC 601, и ни о каких MC88110 даже не помышляли. Просто молчали об этом.

Apollo Computers из Челмсфорда в штате Массачусетс, в 1989 году была приобретена HP за 476 миллиона долларов. По словам Билла Подуска, на это пришлось согласиться из-за неспособности Motorola наладить выпуск неудачных MC88100 в необходимых объемах.

На NeXT распаковали коробку с прототипами PPC-601, и, пока Джобс улаживал проблемы между Pixar и Walt Disney, приступили к переработке NRW.

Слухам о том, что команда на NeXT не справилась с переходом на сдвоенный PPC-601, не верьте. К возвращению Джобса двух-процессорная коробка из-под пиццы работала, пусть и не без проблем.

Но их ждал еще один сюрприз от Motorola.

Рожденный революцией (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 & 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 ([на выходе] получаем то, что видим) при этом гарантируется, времени на перевод не требуется.

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

Цветной NeXTcube

Знатоки возразят, и будут правы: такой модели не было. Это одна из конфигураций того же самого, обычного, NeXTcube. В цветной “куб” можно было превратить и NeXT Computer. Но сути это не меняет: результат был потрясающий.

Продолжение. Предыдущие серии здесь, здесь, здесь, здесь, здесь и здесь, здесь, здесьздесь.

В предыдущей части мы поговорили про NeXTstation Color, черный компьютер в корпусе чуть выше корпуса Macintosh Centris 610, впервые в истории предоставивший обычным “продвинутым” пользователям доступ к 16-битной настоящей цветности. Всего за 7 995 долларов, теоретически. (Диск в 105 мегабайт надо было либо заменить на диск большей емкости, либо приобрести внешний).

16-битный цвет, выглядящий на экране почти как 32-битный, был находкой для инженеров, медиков, конструкторов, ученых, рекламщиков. Но для тех, кому требовалась настоящая, бескомпромиссная цветная графика, этого было недостаточно.

Судя по косвенным данным, в 1987 году команда специалистов по компьютерному цвету занималась исключительно бескомпромиссным, 16-битным, решением. NeXTstation не было даже в проекте, и задача была из разряда “mission impossible”. Затем кто-то, достаточно сумасшедший чтобы прийти к такому решению, и обладающий достаточной властью чтобы превратить его в реальный проект, запустил в разработку цветной вариант NeXTstation.

Основной вариант был готов позже, чем второстепенный – но именно он породил бурю в компьютерной индустрии, толкнув конкурентов на подвиги и став для них чем-то вроде зайца, которого на большой скорости везут перед стаей беговых собак.

NeXTdimension

Название переводится как “следующее измерение”. Вот так, даже не другое: независимо от того, в какие иные измерения им удалось проникнуть, силой интеллекта, фантазии или других нематериальных явлений, клиентам предлагалось “следующее измерение”.

Это плата расширения, для шин расширения NuBus и NeXTbus, превращающая NeXTcube и его предшественника кубической формы в рабочую станцию с поддержкой цвета не хуже чем у более дорогих специализированных рабочих станций.

Построена она была вокруг Intel i860, 64-битного RISC-процессора, с производительностью в 60-80 MFLOPs. В те времена даже 10 MFLOPs были чудом. Это миллионы операций над числами с плавающей запятой. Процессор был создан в 1989 году, всего через четыре года после озвученной Стивом Джобсом мечты Пола Берга о компьютере “3М”, где одна из “эм” обозначала “один миллион мегафлоп”.

В NeXTdimension использовался Intel i860 с тактовой частотой в 33 МГц.

Плата включалась в один (любой) из слотов расширения куба (как в NeXTcube, так и в NeXT Computer), потребляла стандартные для расширений 25 ватта, и сама настраивала себя для работы с главной платой компьютера.

На плате размещались 8 мегабайт оперативной памяти расширения (расширяемые до 32 мегабайт), 4 мегабайта видеопамяти, контролеры для входа и выхода S-Video, вывода RGB, и много чего еще.

В “следующем измерении” была реализована неполная поддержка Mach, и самая полная поддержка PostScript.

У NeXT были грандиозные планы на это расширение, так и не сбывшиеся – в NeXTdimension так и не появилась реализация Display PostScript, работа над новой версией NeXTdimension была прекращена в 1993 году.

Хватит чисто технических подробностей, поговорим о результатах.

NeXTdimension работала с 32-битной графикой на дисплее с разрешением в 1120х832 быстрее, чем NeXTcub управлялся c 2-битной графикой на обычном MegaPixel.

18 сентября 1991 года, Стив продемонстрировал, фактически, дополненную реальность: его изображение подавалось на видеовход NeXTcube с бета-версией NeXTdimension, а на выходе и на экране он отображался в реальном времени, с волшебником страны Оз (или, как говорили в начале 90-х, “с волшебником страны ноль-три”, это номер вызова скорой помощи).

Стоило “следующее измерение” 7 115 долларов.

За NeXTcube с предустановленной платой NeXTdimension, брали примерно 15 тысяч. Но 105-мегабайтного диска для очень цветной рабочей станции было не просто мало, а мало катастрофически.

Все кубики NeXT – цветные

Подключение NeXTdimension в расширение любого из кубов от NeXT, без лишних действий со стороны обладателя куба и этой платы, превращало “персональную рабочую станцию” в компьютер в бескомпромиссными возможностями в управлении цветом.

Это уже была машинка для профессионалов в области компьютерной графики, анимации и много чего еще. Её продажи могли бы быть намного большими, если бы не Стив: насколько мне известно, Pixar не приобрела ни одного цветного NeXT.

Допускаю, что Стив уже просто не мог на них смотреть, и что рабочие станции от Silicon Graphics на порядок превосходили куб, но… Это было бы убедительно, даже если было бы не совсем правдой (и их использовали бы исключительно для деловой переписки).

Впрочем, не моя область, и судить не берусь.

Наилучший эффект достигался при установке NeXTdimension в NeXTcube. 68040 в три раза превосходил 68030 в первом кубе по производительности, а главный процессор комплекса участвовал в цветной магии.

Старый куб можно было проапгрейдить до NeXTcube, заменив главную плату на новую.

Старую плату нужно было предъявить при покупке апгрейда, и вернуть её на NeXT, но зато стоил апгрейд всего 1 495 долларов. В этом случае производительность комплекса почти не отличалась от NeXTcube+NeXTdimension.

Единственное ограничение, которое невозможно было обойти – NeXTdimension работала только под NeXTSTEP 2.1 или выше. Лучше в NeXTSTEP 2.2.

И, любой куб от NeXT, с установленным расширением NeXTdimension, мог работать с двумя мониторами (черно-белым и цветным) одновременно, при этом их экранные пространства становились объединялись в общее, в зависимости от желания пользователя соединяясь по горизонтали или по вертикали.

Intel RISC’ует и… проигрывает

RISC-процессор Intel i860 (он же — 80860) применялся не только в NeXTdimension, 60-80 мегафлоп в те годы были сильным аргументом, но, несмотря на успех, коммерческого успеха не имел.

По словам Энди Гроува, главы Intel, в 90-е клиенты не могли понять, каким путем пойдет Intel, и на какой из процессоров “ставить” – что использовать в своих разработках?

В тот момент компания продвигала, одновременно, 80486 и 80860.

Предыдущие попытки Intel перейти на новую архитектуру тоже закончились неудачей. На память приходят iAPX 432 в начале 80-х и RISC-процессоры семейства Intel i960 в конце 80-х и начале 90-х.

Все эти архитектуры были замечательны, но что-то пошло не так, и успеха они не имели.

Фред Поллак, главный инженер команды разработчиков iAPX 432 и главный архитектор i960, вплоть до выхода в свет разработанного им Pentium Pro (80686) ни разу не достиг успеха.

В конце концов, на Intel пришли к выводу, что практическая сторона важнее идеологии, и перестали тратить десятки миллионов на “грандиозные проекты”, и…

Продолжение следует, давно пора разобраться с Display PostScript…