WebObjects, чуть подробнее

В 1996 году, Стив Джобс создал еще одну компьютерную платформу, потенциал которой превосходил суммарный потенциал всех остальных компьютерных платформ, и этот потенциал был очевиден, хотя ни у кого не хватило бы воображения представить себе его настоящую мощь. Если бы не Pixar, и если бы не Apple, несложно догадаться, какой была бы история “в стиле NeXT”.

WebObjects, чуть подробнее. Фото.

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

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

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

Злоключения волшебной палочки

За NeXT предложили 429 миллионов долларов (1996 года), более чем приличные деньги за компанию зарабатывавшую 3-4 миллиона долларов в год. За полторы сотни сотрудников, и за потенциал, которым тогдашняя Apple просто не могла воспользоваться. Дни Apple были сочтены, она была при смерти, и обречена.

Почти наверняка, если бы Apple пошла с молотка, кто-то приобрел бы бывшую NeXT, уже за смешные деньги, и WebObjects имели бы продолжение. Желающих было больше, чем достаточно. Пока же WebObjects “поставили на паузу”. Все должно было случиться очень быстро.

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

И инструменты для создания веб-приложений (пусть далеко не самые-самые) не могли не появиться. Мир пошел другим путем.

Разразился dot-com boom, сотни стартапов создавали веб-приложения, запускали он-лайн бизнесы и, за пару месяцев зарабатывали миллионы, а то и десятки миллионов долларов. Естественно, они не использовали WebObjects. Дорого. Ни NeXT, ни Джобса, ни WebObjects никто не вспоминал – отвлекаться некогда, надо зарабатывать пока получается.

Apple выжила. Стив согласился стать “советником” Гила Амелио для того, чтобы пройтись по коридорам не чужой для него компании, ощутить её дух – чтобы увидеть и запомнить то, чего очень скоро уже не будет. Продолжение вам известно, да еще и я расскажу об этом, но в другой раз. WebObjects вернулись к Стиву Джобсу…

Которому теперь было не до них. Пауза затянулась на несколько лет.

Что такое WebObjects

Эта технология вполне могла бы существовать и в наши дни, если бы не обстоятельства.

Но не сложилось, и с вероятностью в 99,999% вам не потребуется, срочно и кровь из носа, изучать её для практических целей. В течении нескольких лет она была лучшей, но до неё не доходили руки, ей занималась команда из двух-трех человек, постоянно привлекаемая руководством для решения других задач.

WebObjects – это объекты и набор инструментов для превращения этих объектов в веб-приложения.

Фактически, это тот же самый OPENSTEP, только роль пользовательского интерфейса в WebObjects играли страницы HTML. В WebObjects тоже водились “киты” и фреймворки – Foundation Kit, EOF, WOF и другие. Основой WebObjects были наработки NeXT, все что компания создала за 10 лет своего существования.

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

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

WOF (WebObjects Framework) изолировал бизнес-логику от особенностей и сложностей веб-интерфейса.

WebObjects, чуть подробнее. Что такое WebObjects. Фото.

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

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

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

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

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

Профессиональная версия WebObjects и версия для предприятий позволяли настраивать объекты встроенных классов и несущие конструкции прототипов, при необходимости.

WebScript

В 1995 и 1996 году Стив ни разу не упомянул про WebScript, интерпретируемый вариант Objective-C. Язык для написания сценариев.

Пользователи базовой версии WebObjects не могли использовать “настоящие” языки программирования при превращении прототипов и стандартных наборов классов в веб-приложения. Для этого нужно было приобрести, хотя бы, профессиональную версию, за 3000 долларов (без учета налога на добавленную стоимость, разную в разных штатах).

Этого было достаточно для создания несложных веб-приложений, достаточно быстро (но не в течении двух-трех дней, как обещал Стив). С помощью D’OLE, веб-приложения можно было писать на Visual Basic или JavaScript даже не зная Objective-C.

Почему-то на NeXT чуть ли не стеснялись этого языка. Напрасно! С непривычки он в самом деле выглядит странно, но… Программисты – особая каста. Им на роду написано влезать в такие непролазные дебри, которые обычному пользователю не приснятся в страшном сне. И все, даже те кто поначалу плевался и крыл основы мироздания, через несколько недель меняли гнев на милость. Ну, почти все. Люди все-таки очень разные. Некоторые в восторге от Visual Basic!

Но не станем затевать флейм-войны. Objective-C, постепенно, уходит с главной роли в операционных системах Apple. Я встретил Swift в штыки, опасаясь двуязычия и утраты определенности в документации. Но, почти во всех отношениях, Swift лучше.

Кстати, в бесплатной версии WebObjects, помимо доступа к созданию классов и внесения изменений в опорные объекты прототипов, отсутствовала еще и поддержка D’OLE. Но я не видел ни одного разработчика WebObjects, пользовавшегося базовой версий.

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

Метод, добавленный с помощью категории, становится доступен не только в объектах класса, к которому относится категория, но и в объектах всех его подклассов.

Objective-C и WebScript, с редкими вкраплениями Java (только на NT) были идеальными средствами разработки WebObjects, но…

Продолжение следует… после небольшого перерыва. Apple и NeXT станут одной и той же компанией. Перед этим нужно вспомнить про еще одну компанию…

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