Как бы появление новой виртуальной машины ни отразилось на положении Sun, можно утверждать, что оно пойдет на пользу языку Javа

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

Дискуссия вокруг новинки HP наглядно продемонстрировала способы, которыми Sun пытается контролировать развитие Java. Судя по реакции прессы, воздействие на участников конференции JavaOne известия о выпуске компанией Hewlett-Packard собственной виртуальной машины Java для встроенных систем и о решении Microsoft использовать ее в операционной системе Windows CE можно сравнить разве что со взрывом в курятнике ручной гранаты. На анализ сообщения о выпуске новой виртуальной машины у журналистов ушло гораздо больше чернил, чем на освещение всех остальных событий, случившихся за неделю JavaOne. Эта новость заставила всех нас поломать голову над вопросом: "Что все это значит?"

Я считаю, что из случившегося можно сделать два вывода.

  • Java взрослеет.
  • Что хорошо для Java, может быть невыгодно для Sun.

Почему компания HP создала собственную виртуальную машину Java? Тому есть четыре причины.

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

По словам представителей HP, решение о создании собственной виртуальной машины, "совместимой со спецификацией виртуальной машины Java" (эту туманную формулировку весьма удобно употребить иной раз вместо более простого словосочетания "виртуальная машина Java", дабы избежать обвинений в незаконном использовании торговой марки Java), было принято исходя из нескольких факторов.

Первый из них - это наличие необходимого опыта. Представители HP не без основания полагают, что с созданием виртуальной машины Java для встроенных платформ их компания может справиться лучше, чем Sun. У Hewlett-Packard опыта в создании разнообразных устройств - от карманных компьютеров до встроенных систем - больше, чем у любой другой крупной компьютерной компании. Нужно отметить, что HP добилась успеха на рынке карманных компьютеров, где многие потерпели неудачу. Несмотря на то что HP - это крупнейший производитель принтеров, а также средств тестирования и измерений, она имеет опыт и в создании встроенных вычислительных систем. (Не случайно, что один из наиболее распространенных интерфейсов для калькуляторов и других электронных средств назван в честь HP.) К тому же, в отличие от Sun и Microsoft, в этой компании прекрасно знают, что именно необходимо для разработки удачного встроенного приложения.

Директор HP по проектированию Уильям Ву считает, что одним из необходимых качеств любой встроенной системы является гибкость.

"При создании встроенных систем для какого-нибудь инструмента мы обязательно должны подумать о том, каким специфическим для него требованиям они должны отвечать. Если же встроенная система предназначена для принтера, требования будут несколько другими, - сказал Ву. - Создание встроенных систем связано со множеством ограничений. Для того чтобы их считывать, нужно обладать определенной гибкостью, которой политика Sun не отличается. Вы должны выпускать лишь то, что они вам скажут".

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

Сборка мусора - это процесс, предотвращающий заполнение памяти данными, которые больше не используются. В отличие от альтернативного варианта управления памятью, при котором заботы о ее состоянии перекладываются на плечи самих программистов, автоматическая сборка мусора значительно облегчает жизнь разработчикам программного обеспечения. Однако использование этого метода приводит к тому, что система то и дело переключается на сборку мусора и прекращает работу на неопределенное время. В виртуальной машине Hewlett-Packard используется так называемая "пошаговая сборка мусора", которая предусматривает высвобождение памяти по мере выполнения работы. В результате виртуальная машина, по выражению Ву, работает в режиме "мягкого реального времени". Такой подход - ни в коем случае не панацея, но отличается гораздо большей определенностью, чем метод Sun. Ву дал понять, что при создании новых версий виртуальной машины HP намерена пойти еще дальше. Возможно, компания разработает виртуальную машину, которая действительно будет работать в режиме реального времени.

Другое серьезное ограничение - объем памяти, необходимой встроенной системе. Как правило, пользователь стремится к тому, чтобы при работе программное обеспечение использовало как можно меньше памяти. Это объясняется физическими ограничениями, присущими встроенной системе, и необходимостью снизить расходы. При покупке крупных партий в сотни или тысячи тех или иных устройств, например недорогих принтеров, значение имеет каждый лишний мегабайт оперативной памяти системы. Чем ее меньше, тем проще приспособить встроенное программное обеспечение для каждого приложения.

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

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

При разработке компьютерных и сетевых приложений, а также приложений системного уровня политика Sun вполне оправданна. В то же время позиция Hewlett-Packard отвечает порядку вещей, присущему миру встроенных систем. В сфере встроенных систем принцип "написано однажды, выполняется везде" не так уж важен. Функциональные возможности продуктов в этой сфере тщательно определяются еще в период проектирования, возможность программирования пользователем строго ограниченна или вообще отсутствует, написание программ полностью зависит от производителей, а процесс изменений в программном обеспечении сводится к устранению ошибок и модернизации старых приложений, но не предусматривает создания новых.

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

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

Следующий фактор - это фактор готовности. По словам Ву, год назад, когда HP приступила к реализации своего проекта, Sun еще не имела встроенной версии виртуальной машины Java. Более того, Sun до сих пор не имеет встроенной виртуальной машины Java. Дело в том, что EmbeddedJava все еще нельзя назвать продуктом, готовым к выпуску. Это не более чем спецификация. С точки зрения Sun такой график, возможно, имеет смысл. В конце концов, пока она целиком поглощена разработкой различных версий Java. Однако Hewlett-Packard и другие компании хотят использовать Java для встроенных систем уже сегодня. У компании HP имелись все ресурсы, требуемые для разработки своей собственной виртуальной машины, и необходимость в такой машине. Именно поэтому она ее и создала.

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

Представители Sun, как правило, отвергают этот аргумент, указывая на то, что компания подписала соглашения о партнерстве с рядом производителей встроенного оборудования, в частности с Motorola и Nokia. Это действительно так. Однако, в отличие от Motorola и Nokia, компания HP производит самые разнообразные встроенные продукты. Если Motorola и Nokia занимаются производством высокопроизводительных продуктов, прежде всего сотовых телефонов, то HP выпускает целый набор различных устройств - от недорогих принтеров до оборудования для тестирования и измерений.

Помимо конкретных возражений акция Hewlett-Packard породила и другие результаты. Она высветила несколько ключевых аспектов политики Sun в отношении Java. Первый из них состоит в том, что Sun просто не имеет ресурсов для удовлетворения нужд всех клиентов. С точки зрения общей стратегии Sun по совершенствованию Java ее приоритеты в отношении EmbeddedJava имеют смысл. Но компаниям, которые уже сейчас хотят использовать встроенную версию Java для создания следующего поколения продуктов, от этого не легче.

В своем недовольстве по поводу условий лицензирования, выдвигаемых Sun, компания HP не одинока. "Я знаком с парой проектов, подготовленных разработчиками встроенных систем, которые пытались заняться Java, - сказал аналитик Dataquest Ларри Перлстейн, следящий за ходом разработки Java и встроенных систем. - Работы над этими проектами закончились тем, что их разработчики пошли своим путем, считая, что Sun уделяет созданию встроенных систем недостаточное внимание". Свою собственную виртуальную машину построила и компания Rockwell, которой также не понравились условия Sun. Эта виртуальная машина предназначена для Java-процессора JEM-1.

Компания NewMonics также использует оригинальную виртуальную машину на базе Java с расширениями для поддержки ее собственной версии Java, работающей в режиме реального времени. Однако, во-первых, обе эти компании не могут сравниться по величине с Hewlett-Packard, а во-вторых, они не заключали лицензионных сделок с Microsoft.

Результатом продолжения войн вокруг Java и настойчивых попыток Microsoft разработать такую версию Java, которая отвечала бы ее представлениям (то есть Wintel-ориентированную), стала тенденция рассматривать любую заметную версию Java, разработанную не Sun, как атаку на само существо Java. Поэтому для описания самого соглашения и роли HP в его заключении чаще всего использовались выражения типа "раскол Java" и "подыгрывание Microsoft".

Судя по всему, подобные высказывания отражают не столько действительную важность сделки между HP и Microsoft, сколько широко распространенную тенденцию увязывать Java с судьбой компании Sun. Такая увязка не вполне правомерна, и по мере роста популярности самого языка Java она становится все менее обоснованной.

Хотя соглашение HP и Microsoft и служит для Hewlett-Packard предметом особой гордости, некоторые специалисты, пожалуй, преувеличивают его значение.

Прежде всего, сами представители HP утверждают, что у компании нет планов выходить со своей собственной виртуальной машиной за пределы рынка встроенных систем. Целый ряд продуктов HP (в том числе корпоративные системы HP-9000) на базе Java используют технологию, лицензию на которую компания приобрела у Sun.

Кроме того, соглашение между HP и Microsoft не означает, что Hewlett-Packard вынашивает вероломные планы по принятию политики Microsoft в отношении Java. В отличие от стратегии Microsoft, которая явно стремится поглощать лишь те новые идеи, которые могут быть выгодны при разработке Windows, акция HP призвана удовлетворить реальные нужды участников рынка, которые важны для его успешного развития. Решение Microsoft об использовании виртуальной машины Hewlett-Packard вполне объяснимо. Корпорации была необходима хорошая виртуальная машина для Windows CE, и, купив лицензию на продукт HP, она получила желаемое, практически не связывая себя какими-либо обязательствами перед Sun.

Если Sun хочет сохранить контроль над разработкой Java, ей следует "ослабить поводья". Хотя Sun стремится стать единственным хозяином судьбы Java и заметно продвинулась к достижению этой цели, до тех пор, пока Java остается "открытым" языком, возможности компании ограниченны. Чем строже Sun пытается контролировать разработку Java, тем больше вероятность того, что такие компании, как HP, будут создавать свои собственные версии Java или продуктов, аналогичных Java. Несмотря на то что с юридической точки зрения Sun имеет полное право в одиночку определять будущее Java, на практике она должна придерживаться "открытого" стиля управления разработкой Java, который предусматривал бы, в частности, консультации с ведущими участниками рынка по поводу беспокоящих их вопросов.

Ларри Перлстейн считает, что "Hewlett-Packard контролирует достаточно большую долю рынка встроенных систем и в какой-то степени считает себя производителем программного обеспечения. Поэтому ее руководители не намерены ставить свою стратегию разработки программного обеспечения в зависимость от Sun. Благодаря этому их судьба - в их руках".

И наконец, хотелось бы сделать замечание, которое должно обнадежить всех сторонников Java: акция Hewlett-Packard по созданию и лицензированию своей виртуальной машины доказывает, что Java взрослеет. Этот язык больше не является целиком и полностью идеей специалистов Sun. Постепенно эта технология вносит в развитие отрасли все более весомый вклад. u

Рик Кук уже более 20 лет занимается анализом компьютерной индустрии. Последние десять лет он посвятил освещению разработок автоматизированных и встроенных систем. В свободное время пишет фантастические и приключенческие романы - например, в стиле "фэнтази", содержащие массу первоклассных компьютерных шуток. Его адрес - rick.cook@javaworld.com.


Источники

  1. Сообщение HP, посвященное ее стратегии в отношении Java в целом http://www.hp.com/pressrel/mar98/23mar98f.htm
  2. Сообщение HP о выпуске собственной виртуальной машины http://www.hp.com/pressrel/mar98/20mar98b.htm