InfoWorld, США

Проект Java Kernel предусматривает трансформацию Java в модуль расширения наподобие Flash

Компания Sun Microsystems продолжает работать над проектом Java Kernel, идея которого заключается в создании подмножества исполняемой среды Java Runtime Environment, ориентированного на конкретные программы.

Проект Java Kernel, фигурировавший ранее под названием Java Browser Edition, реализуется в рамках обновления платформы Java Standard Edition 6 update 4, которое должно появиться в начале 2008 года. Разработчики сразу получат доступ к коду, с тем чтобы авторы проекта могли поддерживать с ними эффективную обратную связь.

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

«Основная мысль состояла в том, что существующая сегодня среда Java Runtime Environment (JRE) является чересчур громоздкой, а большинству программ нужна лишь очень небольшая часть заложенной в ней функциональности, — писал в 2006 году один из участников проекта, инженер Sun Этан Николас в своем блоге. — Предлагаемая мною ‘редакция браузера’ позволит устанавливать только то подмножество Java, которое действительно требуется вашим программам. Вместе с тем вы сможете загружать остальные функции по запросу, и все это будет полностью совместимо с J2SE».

Правда, некоторые сотрудники Sun изначально сомневались в успехе данного проекта. Да и после детального анализа идеи картина вырисовывалась бесперспективная.

«Предлагаемая мною ‘редакция браузера’ позволит устанавливать только то подмножество Java, которое действительно требуется вашим программам. Вместе с тем вы сможете загружать остальные функции по запросу, и все это будет полностью совместимо с J2SE», — писал в 2006 году один из участников проекта Java Browser Edition, инженер Sun Этан Николас в своем блоге

«Соответствующие возможности предлагались для версии Java 7 под кодовым наименованием Java Kernel (идея данного проекта заключалась в загрузке небольшого ‘ядра’ функциональности Java, которое в свою очередь уже сможет подгружать все остальное)», — пояснил Николас.

Николас разработал облегченную версию исполняемой среды JRE, которой было достаточно лишь для вызова метода System.out.println и вывода строки «Hello World».

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

«Обойдя таким образом все файлы, я оставил минимальный вариант JRE, позволяющий выводить сообщение ‘Hello World’, — вспоминал Николас. — Но это, по крайней мере, стало отправной точкой. Создание программы установки JRE представляло собой отдельную задачу, потому что некоторые файлы, необходимые для запуска программы Hello World, по-прежнему были нужны для успешной установки JRE. Как бы то ни было, мне удалось преодолеть все эти трудности, и теперь у нас есть полнофункциональная минимальная версия JRE».

В блоге Николаса появлялись самые разные комментарии в отношении данного проекта.

«Я тоже убежден в том, что разбиение JRE на модули представляет собой разумное решение, — указал один из читателей блога. — Речь тут идет даже не о размере загружаемого программного обеспечения, а о преодолении массы других трудностей».

«Проблема заключается в том, что Java — это не технология, построенная на основе браузера, а платформа, — заявил другой респондент. — И когда я пишу апплет или приложение Java, я делаю это исходя из того, что в моем распоряжении имеется полнофункциональная платформа».