Ставки сделаны: поможет ли компании JavaSoft ее инициатива "100% Pure Java" удержать интерес разработчиков к своей кросс-платформенной технологии, обеспечивающей удовлетворительную производительность, или разработчики все же предпочтут более высокую производительность, которую им предлагает Microsoft вместе с "родными" и при этом достаточно удобными функциями Windows.

На этой неделе JavaSoft подняла планку производительности своей виртуальной машины Java, выпустив Java Performance Runtime for Windows; в этом продукте реализованы более совершенный виртуальный процессор Java и разработанный компанией Symantec динамический компилятор just-in-time (JIT).

В будущем JavaSoft надеется устранить оставшиеся проблемы со скоростью выполнения приложений в кросс-платформенной среде Java с помощью технологии динамической компиляции HotSpot, владельцем которой она стала, купив в начале года компанию LongView Technologies. По словам Эрика Чу, менеджера по продуктам Java Development Kit (JDK) компании JavaSoft, технология HotSpot обещает достичь той производительности, которую обеспечивает язык С++ на своей родной платформе, благодаря так называемой адаптивной оптимизации, позволяющей сначала выполнять код Java в режиме интерпретации, а затем анализировать и оптимизировать его в соответствии с параметрами каждой платформы.

Между тем представители Microsoft на брифингах, посвященных стратегии Windows, раскритиковали идею кросс-платформенности как непрактичную и неэффективную. Пол Маритц, вице-президент компании, назвал бессмысленным размещение Java Foundation Classes (JFC) компании JavaSoft поверх платформы Windows, поскольку разработчики могут получить доступ к Windows непосредственно из Java.

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

Говоря об JFC и Windows, Маритц добавил: "Мы не намерены выпускать еще одну "раздутую" операционную систему и предлагать ее нашим пользователям".

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

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

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

Анне Томас, старший консультант компании Patricia Seybold Group, поясняет: "Некоторые части кода Java все равно не компилируются, а определенные приложения не исполняют многократно одни и те же инструкции, поэтому компилятор JIT не сильно повысит производительность".

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

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

"Для разработчиков, которым нужно писать приложения, выполняемые на сервере, неважно, какой язык обеспечивает более высокую скорость - Java или C++. Для них производительность стоит не на первом месте", - сказал Зак Урлокер, вице-президент по менеджменту продуктов компании Borland.

"На самом деле, независимо от того, когда технология HotSpot будет реализована в Java, компанию JavaSoft, в конечном счете, не сильно заботит повышение скорости, - сказал Джон Раймер, аналитик из Giga Information Group. - Все эти отвлекающие маневры с новой технологией говорят о том, что специалисты из JavaSoft в действительности не рассчитывают решить проблемы производительности".

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

"Большая часть наших серверных приложений пишется под Windows NT, и для нас не важно, чтобы код, исполняемый на сервере, был переносимым", - сказал Джим Флинн, генеральный менеджер компании @Work Technologies.

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

"В сущности, мы взвалили на себя тяжелую ношу, отказавшись от использования продуктов Microsoft, но обходиться без них все труднее, - сказал разработчик. - Вот когда мы утратим четкое представление о планах заказчиков - может, они захотят перейти на сетевые компьютеры или на другие платформы, или надумают вовсе "закрыть лавочку", - только тогда мы попытаемся "залатать прорехи" языка Java и возьмем долгосрочный курс на 100% Pure Java".


Борьба "классов"

Глядя на газетные заголовки, можно подумать, будто отказ Microsoft от поддержки Java Foundation Classes (JFC) в будущих версиях Windows и Internet Explorer является этаким "переходом Рубикона". Снова статьи пестрят предсказаниями гражданской войны и раскола Internet.

Не поддавайтесь на обман

Если быть точным, Microsoft и молодое сообщество Java рискуют многим. Microsoft совершенно оправданно воспринимает появление JFC и виртуальных машин Java как росток будущей конкурентной борьбы операционных систем. Зачем ей добровольно поддерживать среду противника в собственном программном обеспечении?

Наблюдая, как Netscape, Sun и IBM/Lotus, участники "союза" Java, целенаправленно наносят друг другу удар за ударом, Microsoft благоразумно занимает выжидательную позицию по отношению к JFC. Если же разработчикам действительно понадобятся возможности, предоставляемые этой технологией, Редмонд всегда успеет передумать.

Если бы JFC завоевала статус стандарта, Sun смогла бы существенно расширить контроль над средой Java. Однако прожекты компании пока еще очень далеки от реальности. Да, со временем Java увеличит число устройств, подключенных к Internet, но именно это и выставит напоказ ошибочность заклинания "написано однажды, работает везде" (write once, run anywhere).

Верит ли хоть кто-нибудь, что сложные приложения в самом деле будут работать на смарт-картах, пейджерах или сотовых телефонах? Есть ли хоть кому-то до этого дело? Случай JFC, по сути дела, доказывает, что даже стандартизованный язык не может гарантировать стопроцентной совместимости.

Internet останется цел

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

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

Частные решения для intranet и extranet, напротив, по-прежнему не дадут забыть о несовместимости, присущей традиционным бизнес-программам. Но в этом случае универсальная совместимость в общем менее важна, чем конкретные функции приложений. Именно эти функции зачастую и становятся причиной отказа от открытых технологий Internet.

Однако самая очевидная причина, по которой раскола Internet не произойдет, - это нехватка времени. Нынешняя главнейшая задача Sun Microsystems - заставить Java работать на всем множестве современных систем Windows (ну и Macintosh) и браузерах. Еще задолго до того, как начнет использоваться хотя бы отдаленно сравнимое количество Java-устройств, сетевых компьютеров или машин на основе Windows 98, разработчики поймут и выскажут без обиняков, чего они хотят от Microsoft.

На примере Windows и Internet мы знаем, что там, где есть четкие стандарты, информационные технологии развиваются быстрее. Признание Java следует рассматривать с той же точки зрения. Если Microsoft не поддержит JFC, развитие Internet может приостановиться, но его целостность не пострадает. Об этом позаботятся разработчики.

- Дэвид Мошелла,

Computerworld, США

Новая война: HTML против Java

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

Да-да, обычного HTML, ну разве что динамического и с разными полезными функциями - скриптами и вложенными стилевыми таблицами.

Microsoft утверждает, что совместимость Java не более чем миф и таковым останется. В качестве аргумента компания ссылается на 18-месячную задержку выхода Windows 95. Вооружившись опубликованными недавно докладами, которые подтверждают выполнение принципа кросс-платформенности Java лишь на 40%, Microsoft заявила, что для совместимости "с точностью до ошибки" необходима настолько серьезная доработка языка, что она вряд ли выполнима.

Продвигая HTML на роль основного интерфейса сетевых и локальных приложений, Microsoft вступает в клиент-серверную игру. Занятное зрелище - Microsoft, сколотившая весь свой капитал за счет пользовательских приложений, вдруг обращает внимание на серверные. Если HTML станет абсолютным стандартом, "сверхтонкий" клиент будет выглядеть как сетевой компьютер с браузером Web в постоянной памяти. Конечно, для хранения интегрируемых модулей "толщину" клиента придется увеличивать. Но уверенность в том, что любой браузер будет способен отображать страницы формата HTML, дает Microsoft возможность подавать его, как свой новый кросс-платформенный язык описания форм.

Заключив с Netscape перемирие в борьбе динамических HTML, Microsoft получает прерогативу продвижения языка, как признанного стандарта Internet (в отличие от Java, еще не получившего такого статуса).

Я еще не знаю официальной реакции "генерального штаба" Java, но думаю, что там смеются так же, как и я. В конце концов, Java - это полноценный язык программирования, а HTML до него - как до неба. Даже Microsoft признает, что Java - превосходный язык для корпоративных разработчиков (пригодный, видимо, для совместного применения с пользовательскими интерфейсами на HTML). Учитывая это, JavaSoft скорее всего не сочтет угрозу серьезной. А зря, между прочим.

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

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

Сможет ли Microsoft с успехом изолировать Java? Сложно сказать, но если за ее словами хоть что-то стоит, тогда победа ей обеспечена. Netscape - еще слишком молодая компания, а JavaSoft вообще делает вид, что ей все равно.

Выдвигая HTML в качестве альтернативы Java, Microsoft ведет довольно хитрую игру. Все думали, что Microsoft будет пытаться взять контроль над Java в свои руки. Теперь, когда ей это почти удалось, она вдруг как бы отступает назад и говорит, что Java для нее ничего не значит.

Естественно, она лукавит. Потому что Java может навредить Microsoft, но не может принести ей особой выгоды. Microsoft не нужен Java (или нужен, но только как язык программирования) точно так же, как Sun он необходим для победы.

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

- Дэвид Коурси,

Computerworld, США