Вчера состоялось открытие очередной конференции
JavaOne. Основные темы, на котрых были расставлены акценты в открывающей речи, это встроенные системы (embedded) и скорый выход очередной версии Java - Java 8.
В области встроенных Java систем Oracle сильно продвинулась за последние несколько лет. Был выпущен полноценный JDK под популярные в мире встроенных систем Linux системы на ARM процессорах. Совсем недавно появилась "HardFloat ABI" версия, которая позаволяет запускать Java приложения на
Raspberry Pi без лишних телодвиженией. В этом году спонсорами и партнерами конференции являются ARM, Freescale, Qualcomm, RaspberyPi, Gemalto и ST. Очень важно, что происходит конвергенция "маленьких" JVM и "больших" JVM. Многие современные устройста достаточно мощные чтобы запускать полноценную JVM (ARM Linux версия), а в версии Java 8 появится рад стандартных
компактных профилей, представляющих подмножество библиотек классов, уменьшая размер и необходимый объем памяти. В то же время для сильно ограниченных систем уже давно существует Java ME, которое более 10 лет даже не поддерживало новые возможности языка. С выходом "большой" Java SE 8 появится и Java ME 8, которая приведет в соответствие уровень поддерживаемого языка со своим большим братом.
Java 8 станет действительно революционной версией языка. Такого не было уже 10 лет с момента выхода Java 5. Наконец в Java появляются
closures aka lambda. Одновременнно с этим происходит модернизация всех стандартных библиотек коллеций, позволяющая работать с данными концентрируясь на стоящей задаче, без необходимости использования шаблонного кода. Java выступает догоняющим и станет последним широко-распространенным языком в котором появляются closures. Про важность этих изменений уже написано очень много. Очень радует, что после многолетних дебатов был выбран элегантный синтаксис, который естествено вписывается в язык Java, и высокопроизводительная реализация, которая позволит сделать существующий код и компактней и быстрей при переходе на Java 8. Немаловажно и то, что новые методы работы с коллециями с самого начала разработаны с учетом параллельной обработки данных. Переход с последовательной обработки данных на параллельную происходит простой заменой вызова метода
stream на вызов метода
parallelStream. Все это уже доступно для разработчиков в полнофунциональной developer preview версии
здесь.
Во время открывающей речи не был забыт и
JavaFX следующая версия которого выходет в составе Java SE 8 и будет называться JavaFX 8. Основным нововведением будет поддержка 3D графики. Основные инновации в развитии "rich UI" происходят именно в JavaFX, но и про поддержку миграции со старых технологий Oracle не забывает. Появится возможность встраивать Swing компоненты в JavaFX (в обратную сторону можно уже сейчас).
Был упомянут и вышедший недавно Java EE 7. В качестве технологической демонстрации было показано Java EE приложение для игры в шахматы по сети, в котром клиенты взаимодействуют с сервером через websocket получая push нотификации с ходами от сервера. NetBeans позволяло отлаживать одновременно серверный Java код и клиентский JavaScript. Кроме JS/HTML5 клиента с этим серверным приложением работало простое 3D JavaFX приложение запущенное на любопытном do-it-yourself Rasperry Pi планшете под названием
DukePad, полнценное JavaFX приложение на ноутбуке с красивой 3D анимацией шахматных фигур професионально сделанное в Maya, и робот управляемый встроенной Java системой который переставлял физицеские фигурки по реальной шахматной доске. Демонстрация прошла без существенных накладок и аудиторя была довольна увиденным.