Время Интернет-приложений пришло
В начале 90-х Стив Джобс был главной достопримечательностью ежегодных конференций Object World. Его выступления всегда были особенными, а NeXT лидировала в объектно-ориентированных технологиях - но в 1995 Стив и NeXT превзошли себя.
Неизвестно, какие мысли возникли у участников конференции Object World 1995 года после выступления Стива Джобса. То, о чем он говорил, было еще в будущем. Сегодня все, что он предсказал, сбылось. Клондайк оказался именно там, где он был предсказан.
Не сбылось только одно: выгоду от эксплуатации этого Клондайка получили другие. NeXT стала частью Apple, и, фактически, сошла с дистанции. Мы теперь точно знаем: этот путь сулил первопроходцам больше, чем им представлялось в начале пути. Возникает вопрос: "а зачем Стиву вообще понадобилась Apple?"
Принято считать, что проект NeXT был совершенно безнадежен, Стив обманом получил от Амелио и совета директоров Apple 429 миллионов долларов за погибающую компанию. Не складывается.
Путь NeXT из прошлого в будущее выглядел настолько многообещающим, что захватывало дух. Поле искажение реальности, действующее даже сквозь время? Или и в самом деле им удалось найти путь к вершине, и оставалось не сбиться с этого пути?
В 1994 NeXT перестала быть убыточной. Деятельность компании принесла на ее счета 50 миллионов долларов, что, впервые за всю историю компании, превысило ее расходы. На один миллион долларов.
В 1994 NeXT вошла в первую сотню компаний-разработчиков программного обеспечения, заняв в ней 67-е место. Стив Джобс назвал свою компанию "самой быстро растущей" в этой сотне.
Единственное, что можно было проверить - это самое 67-е место, все остальное, что Стив сообщил о положении NeXT, проверить мог только он сам.
Но, за исключением критических ситуаций, Джобс никогда не опускался до прямой лжи, а в 1995 году существованию NeXT ничто не угрожало. Кроме, разве что, успеха Pixar.
О чем же говорил Стив Джобс на конференции Object World в 1995 году?
О главный направлениях развития NeXT Software на ближайшие годы. Таких направлений оказалось три.
OPENSTEP для Windows
В 1995 OPENSTEP (объектно-ориентированный слой NeXTSTEP) использовался в Unix’ах от HP, Sun и Digital, его успех был очевиден. OPENSTEP был лучшим в своем классе, и чуть ли не единственным: остальные многообещающие объектно-ориентированные платформы в 1995 либо оставались обещаниями, либо были отменены.
Реальные конкуренты не могли не появиться, NeXT следовало ловить момент и расширять плацдарм. Unix’ы это важно и престижно, но самой массовой платформой была Microsoft Windows.
Оказалось, что NeXT уже работает над OPENSTEP для Windows NT и Windows 95, и вот-вот выпустит эту разработку на рынок. NeXT получает новый источник доходов, пользователи Windows - новые возможности. Среда разработки, технологии упрощающие применение архитектуры клиент-сервер, EOF и много чего еще.
В OPENSTEP для Windows использовался пользовательский интерфейс Windows, решение об этом было принято на ранней стадии разработки. Среда OPENSTEP должна была стать своей в Windiows 95 и Windows NT, для этого она должна была выглядеть вести себя как Windows.
Это первое направление из трех.
D’OLE
Это распределенная реализация Object Linking and Embedding, то что Microsoft обещала к 1997 - NeXT выпускает реализацию этой технологии на рынок на два года раньше, чем Microsoft.
Более того, D’OLE реализована по правилам NeXT, главное из которых "делать простое простым, а сложное возможным". Технология D’OLE в OPENSTEP будет доступна на NT и в Windows 95, а также во всех реализациях для Unix’ов.
Благодаря D’OLE, взаимодействие с сервисом на удаленном сервере сведется к отправке на сервер сообщений и получению от него результатов, независимо от реальной природы сервиса и от особенностей его реализации.
Очень хотелось назвать эту технологию Distributed OLE, но в этом случае у Microsoft был бы повод обратиться в суд. DOLE (по английски "горе", "подачка", "скорбь") тоже не было удачным выбором. Перепробовали много вариантов, остановились на D’OLE. Выглядит аристократично и загадочно.
Поскольку D’OLE реализуются в OPENSTEP и в следующей версии PDO, вариантов их применения много - они могут связывать мощную рабочую станцию с Unix c Windows-клиентом, несколько Unix-станций между собой, несколько Windows-машин, и даже целые сети состоящие из компьютеров разных платформ.
Но OPENSTEP для Windows и D’OLE - не более чем разогрев публики для основного и действительно важного сообщения. О третьем направлении.
WebObjects
В 1995 году 99,9% веб-страниц были статичными. Глобальная паутина использовались исключительно для Интернет-паблишинга. Поначалу и это было чудом, но пришло время для следующего шага.
NeXT связывают с веб родственные узы. На одном из черных магниевых кубов самого первого их типа, NeXT Computer с 68030 внутри, Тим Бернерс-Ли написало в 1989 году самый первый браузер. В 1991 году этот браузер работал в NeXTSTEP, следы которой сохранились в названиях тэгов HTML.
Но сервер может не только публиковать заранее подготовленные страницы. Это ведь компьютер, способный на большее.
Потребность в большем была огромна, и первые веб-приложения уже появились.
Например, на сайте FedEx можно получить информацию о состоянии и местонахождении посылки в текущую единицу времени. Клиент открывает форму запроса, вводит номер его доставки, и, через некоторое время, получает отчет - страницу, сгенерированную для него, которой еще мгновение назад не существовало.
Приложение на сервере запрашивает базу данных (или базы данных), и генерирует ответ, который представляется в виде html и отправляется на браузер пользователя. Б? льшая часть работы происходит за пределами Интернета - все что касается взаимодействия пользователя с сервером достаточно примитивно (на наш нынешний взгляд).
Но состояние инструментальных средств таково, что разработка этой системы заняла четыре месяца квалифицированного труда.
Еще одно направление - электронная коммерция. Пользователь выбирает в каталоге товар, оплачивает его банковской картой, и получает с доставкой на дом. Подобные системы в 1995 году были большой редкостью, их разработка стоила огромных денег и требовала нереальных затрат времени.
О веб-приложениях для других, более сложных и разнообразных задач, в 1995 году только мечтали.
Тот, кто подарит (за разумную компенсацию) страждущим инструмент, который превратит эти мечты в реальность, может расчитывать не только на благодарность человечества, но и на очень неплохой куш.
Среда разработки веб-приложений, она же - набор объектов-кубиков, превращавших решение типовых задач в детскую игру, называлась WebObjects. В четвертом квартале 1995 года была обещана ее бета-версия, в первом квартале 1996 - релиз. Сроки были выдержаны.
О том, как была устроена WebObjects (или "были устроены"?), расскажу в продолжении.
О ценах на WebObjects
Считается, что невероятно высокая цена, назначенная Стивом Джобсом за WebObjects, сыграла роковую роль в судьбе этого очень неплохого, для своего времени, комплекса программного обеспечения.
Про лицензии для размещения в сети (deployment) Стив ничего не сказал. Возможно, в тот момент он еще не решил, сколько за это брать.
Лицензии на разработку, в зависимости от уровня, стоили по разному.
Базовая версия (с очень серьезными ограничениями: пользователь не мог, например, создавать собственные подклассы "фабричных" классов, и т. п.) - стоила 0 долларов и 0 центов. Будто бы, с ее помощью можно было воссоздать приложение FedEx, за неделю, но поскольку доказательств я не виде, позволю себе поставить это под сомнение.
Профессиональная версия стоила 2 999 долларов.
Версия Enterprise, с огромным набором классов и предопределенных объектов для задач уровня большого предприятия, стоила 24 999 долларов.
Лицензии на deployment тоже были нескольких уровней, и самая дорогая из них стоила 24 999 долларов. При этом, лицензия давала право на размещение ОДНОГО приложения.
Из чего можно сделать два вывода:
информация в википедии (англоязычной) о том, что WenObjects предлагали за 50 тысяч долларов, неточна. Правильнее было бы "до 50 тысяч";
цены на WebObjects были неподъемные для подавляющего большинства потенциальных клиентов.
Но в 1996/97 годах у WebObjects конкурентов не было...