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

Что должен знать разработчик

  • Некоторые Java-апплеты по-разному работают на разных браузерах.
  • Обеспечение безопасности, кэширование и распределение памяти различаются у браузеров разных версий и поставщиков.
  • Дополнительные модули рассматриваются как временное решение.
  • Карманные устройства не стандартизированы.

В ряде случаев разработчики сталкиваются с тем, что прикладные программы, написанные на Java, не совместимы с разными браузерами. Эти проблемы подобны тем, которые возникают при работе с различными ОС. Такое положение дел, по словам разработчиков, задерживает появление универсального клиента.

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

«Работа с разными браузерами — почти то же, что работа с разными программами», — сказал Кен Барт, президент фирмы Tek-Tools. Например, разработанный его фирмой Java-апплет JTicket может, в зависимости от браузера, поставляться в трех разных модификациях.

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

Джордж Кассабджи, вице-президент отдела Apptivity Business Unit компании Progress Software, согласен с ним: «Эта проблема касается не только клиентских частей на Java. Вы можете создать HTML-клиент и все равно должны будете протестировать его с разными браузерами».

Разработчикам следует помнить и о том, какую долю рынка занимает тот или иной браузер. Пару лет назад этот сектор рынка еще был открыт для захвата, однако сегодня, отмечают обозреватели отрасли, Internet Explorer фирмы Microsoft заметно опережает пакет Communicator компании Netscape.

«Многих поставщиков это может натолкнуть на мысль, а не пора ли просто принять IE в качестве стандарта?», — говорит Кассабджи.

Для решения проблемы — по крайней мере для разработчиков на Java — компания Sun Microsystems выпустила дополнительные модули, обеспечивающие совместимость как с программой Internet Explorer, так и с Communicator.

Однако такие модули, как считает Том Дуайер, аналитик из фирмы Aberdeen Group, всего лишь временное решение. «Java — еще не созревшая платформа», — заявил он.

Хотя различные виртуальные Java-машины (JVM) отвечают установленным фирмой Sun спецификациям, предусматривающим наличие базового набора интерфейсов прикладного программирования (API) и расширений, несколько различающееся поведение может не соответствовать конкретному набору команд исполняемого кода.

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

«В будущем потребуется, чтобы программы работали на множестве разных платформ. Если не будет средства вроде Java, мы просто не сможем этого сделать», — пояснил Дуайер.

Один разработчик на Java из крупной компании заметил, что проблема совместимости объясняет повышение роли так называемых сервлет (Servlet). «Забудьте решения «браузер/клиент». Делайте все на сервере и посылайте данные обратно в обычном формате HTML или, если осмелитесь, в XML», — предлагает он.

Если вы не используете собственный интерфейс Java (Java Native Interface), это также ведет к проблемам. Кроме того, «если оставаться в рамках браузера, трудно гарантировать безопасность. Internet Explorer, Netscape и Java-расширения обеспечивают ее по-разному», — считает этот разработчик.

Увидим ли мы когда-нибудь универсальный клиент? В какой-то момент это случится. А пока что препятствием, по мнению разработчиков, остаются собственные интересы поставщиков. Логика их рассуждений такова: «Я хочу, чтобы моя система работала лучше, чем у конкурента, а для этого я должен сделать все иначе, в том числе, пожертвовать совместимостью».

Работая над созданием универсальной клиентской части, программисты не должны забывать о том, что существуют карманные устройства, системы на базе HTML и полнофункциональное клиентское ПО, такое, как Java-клиент, работающее в архитектуре клиент—сервер и обеспечивающее подключение к Интернету. Как считает Кассабджи из Progress Software, универсальный клиент — это совокупность всех трех систем.

«Разработчики понимают, что времена, когда достаточно было просто написать HTML-клиент и считать, что дело сделано, уже прошли, — сказал он. — Универсальный клиент — это намного больше, чем простая совместимость с браузером».