ТЕХНОЛОГИИ

Иван Савватеев

Корпорация Sun Microsystems (www.sun.com) провела в Москве конференцию для Java-разработчиков. На ней о новых возможностях и перспективах этой платформы рассказал Java-гуру компании Саймон Риттер.

Java появилась в 1995 г. и первоначально предназначалась для создания небольших скриптов, выполняющихся в рамках Web-браузеров. Однако потенциальные возможности этой технологии оказались намного шире, и сейчас она активно используется в самых разных областях, так или иначе связанных с телекоммуникациями. По словам Саймона Риттера, абсолютно все предприятия, попавшие в международный список Fortune 500, так или иначе используют Java, а 78% руководителей именно эту платформу выбирают для реализации Web-сервисов. Java установлена примерно на 550 млн. настольных компьютерах, ее поддерживают 150 моделей сотовых телефонов.

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

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

Саймон Риттер (крайний слева) в перерыве

 отвечает на вопросы российских Java-разработчиков

Сама корпорация среди основных преимуществ Java называет следующие: - возможность написать приложение всего один раз и после этого эксплуатировать его на самых разных программно-аппаратных платформах (Windows, Linux, Mac OS, Solaris и т. д.); - открытость стандартов (интерфейсов, спецификаций); - постоянное развитие по рекомендациям Java-сообщества (Java Community Process), учитывающего не только мнение корпорации Sun, но и "просьбы трудящихся".

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

Затем речь пошла о новинках. Очередная версия Java 2 Standard Edition (J2SE), пока обозначаемая как 1.5.0 (на сайте корпорации для свободного скачивания доступна вторая бета-версия; выпуск, ожидаемый в сентябре, по маркетинговым соображениям, возможно, получит номер 5.0), содержит по сравнению с предыдущими версиями ряд серьезных дополнений и улучшений, которым была посвящена значительная часть дальнейшего выступления Java-гуру.

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

- обеспечено автоматическое преобразование между примитивными типами и wrapper-объектами (так называемый autoboxing/unboxing);

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

- расширен синтаксис цикла for для упрощения обработки коллекций и массивов;

- введена концепция безопасных перечислимых типов (для чего в язык добавлено новое ключевое слово - enum);

- добавлена возможность объявления методов с переменным числом параметров (в стиле функции printf, которая, кстати, наконец-то появилась и в Java);

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

Беспроводные технологии: обозримое будущее

Прежде чем приступить к рассказу о новых возможностях Java, г-н Риттер остановился на двух перспективных беспроводных технологиях, не привязанных жестко к конкретной платформе: RFID и "умной пыли".

RFID (Radio Frequency Identification) - это технология бесконтактной идентификации продуктов. Получив соответствующий радиосигнал, микрочип, прикрепленный к изделию, выдает 96 бит идентификационной информации. В первом приближении можно считать, что RFID - это аналог всем известного штрихкода. Однако поскольку для считывания RFID не требуется физического контакта сканера с идентифицируемым объектом, открываются принципиально новые возможности. Например, с помощью RFID "продвинутая" стиральная машина сама определит режимы стирки загруженного в нее белья, а холодильник сможет проверить, не пора ли выкинуть просроченную упаковку пельменей :).

"Умная пыль" (Smart Dust) - это микродатчики, способные к самовыстраиванию беспроводной сети. Такие датчики могут располагаться на значительном удалении от центрального узла, поскольку информацию на него передают не напрямую, а по цепочке друг другу, причем оптимальный путь передачи определяют самостоятельно. Эта способность имеет как минимум два приятных следствия. Во-первых, из-за уменьшения расстояния, на которое передается информация, значительно уменьшается расход энергии, и в результате датчик способен непрерывно проработать до десяти лет. Во-вторых, при выходе из строя некоторых датчиков оставшиеся автоматически реконфигурируют сеть и работа всей системы не прерывается.

Внесены изменения и в библиотеку. Улучшена реализация многопоточных приложений, расширена поддержка Unicode (введена возможность обработки символов, не помещающихся в 16 разрядов), обеспечена поддержка новых протоколов безопасности (SASL, OCSP, TSP), подверглась изменениям многопоточность, введен API для контроля и управления работой виртуальной Java-машины, произведены многие другие дополнения и улучшения.

Довольно существенным изменениям подверглась виртуальная машина Java (JVM): в нее введены средства самонастройки динамической памяти, изменен сборщик мусора, усовершенствована обработка фатальных ошибок и т. д. Эти изменения улучшают производительность JVM и упрощают работу с ней.

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

Основными целями новой спецификации MIDP (Mobile Information Device Profile) 2.0 (она доступна на Web-сайте корпорации по адресу: jcp.org/jsr/detail/ 118.jsp) являются:

- обратная совместимость с MIDP 1.0;

- ориентированность на массовые беспроводные телефоны;

- применение полученного при развертывании MIDP 1.0 опыта для улучшения интерфейсов прикладного программирования MIDP 2.0;

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

В MIDP 2.0 по сравнению с предыдущей версией была расширена модель безопасности. Как и в версии 1.0, возможно использование защищенной "песочницы" (sandbox), когда мидлет должен получать от пользователя разрешение на выполнение тех или иных действий (причем разрешение может быть одноразовым, на один сеанс работы с приложением, или действовать до тех пор, пока не будет отменено). Однако в версию 2.0 введена концепция доверительных доменов, для которых устройство, проверив степень доверительности, что-то может разрешать автоматически, не беспокоя лишний раз пользователя.

В предыдущей версии MIDP мидлет мог взаимодействовать со внешней средой только по своей инициативе. В версии 2.0 реализован механизм Push, позволяющий обращаться к мидлету извне, "впихивать" ему данные .

В MIDP 2.0 обязательно включается подмножество Mobile Media API, обеспечивающее воспроизведение WAV-файлов, но не содержащее средств для работы с другими аудиоформатами, а также с видео. Конкретные реализации MIDP могут поддерживать иные типы мультимедийных файлов, но спецификация этого не требует.

Расширены возможности пользовательского интерфейса. Был усовершенствован алгоритм размещения форм (подобно алгоритму "grid layout", используемому в J2SE), введены дополнительные константы, управляющие размещением и размерами форм, включены три дополнительных класса StringItem, Spacer и CustomItem. Улучшена также обработка ошибок.

MIDP 2.0 содержит весьма серьезный Game API, содержащий ряд классов: GameCanvas, Layer, LayerManager, Sprite и TiledLayer. Кроме того, поддерживается не только программирование на Java, но и использование "родного" кода устройства, всех возможностей аппаратуры и тому подобных вещей, часто крайне необходимых для реализации игр.

Рассказ Саймона Риттера о новых возможностях платформы Java дополнили рекомендации по их практическому применению в подаче еще одной гостьи от Sun - Кейси Чен. Основное внимание она уделила развитию Web-сервисов с использованием Java, а также использованию инструментария Java Enterprise Studio и Sun Studio Creator.

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