Java 9

Java 9: Oracle анонсирует новые фичи

«Хранитель и повелитель» Java — концерн Oracle — подтвердил новые фичи запланированного на 2016-й год следующего большого релиза явы. Самой большой темой Java 9 является модульность.

Оракл подтвердил на странице OpenJDK целый ряд запланированных для Java 9 новинок. Это дополнение к тем фичам, что были опубликовано в августе текущего года. Теперь добавились еще шесть JDK Enhancement Proposals (JEP):

  • JEP 158: «Unified JVM Logging», здесь предлагается создать универсальную систему логгинга для JVM компонентов. Наконец-то!
  • JEP 165: «Compiler Control» должно улучшить управляемость при JIT-компиляции с помощью HotSpot JVM.
  • JEP 214: «Remove GC Combinations Deprecated in JDK 8» — здесь должно быть определено, как комбинации сборщиков мусора, (например, DefNew + CMS, ParNew + SerialOld, Incremental CMS), которые в Java 8 были помечены как deprecated, могут быть удалены.
  • JEP 213: «Milling Project Coin» объединяет небольшие изменения языка в проекте Coin. Проект Coin был введен для Java 7. Новый JEP не является при этом версией 2.0 проекта.
  • JEP 219: «Datagram Transport Layer Security (DTLS)» обеспечит поддержку защищенных TLS-протоколов.
  • JEP 224: «HTML5 Javadoc» будет работать над Javadoc модулем, который будет генерировать HTML5 документы.

Что было в августе

Представленные в августе предложения по расширению JDK включали в себя три новых API: во-первых, JEP 102 покрывал API, с помощью которого должны были быть переработаны контроль и управление процессами операционной системы. Кроме того, в разработке находится новый клиент HTTP/2 и WebSockets (JEP 110), который пока почему-то не указан в общем списке. Наконец, идет разработка упрощенного JSON API (JEP 198), который основывается на JSR 353 (Java API for JSON Processing).

Три других изменения касаются производительности JVM. В JEP 143 рассматривается вопрос параллельного доступа к объектам и т.н. Contended Locking. JEP 197 занимается сегментированием кэша JIT-компилятора. Это должно улучшить производительность компилятора в больших приложениях. JEP 199 продолжает работу над «интеллигентным» sjavac-компилятором (Smart Java Compiler).

Наконец-то, модульность!

Самая большая тема в Java 9 — модульность исходного кода в рамках проекта Jigsaw (JEP 201). Здесь речь идет о том, чтобы в будущем иметь возможность запускать Java SE на небольших маломощных машинах без потерь в безопасности или в скорости работы. Достигаться это будет с помощью «урезанных» и «заточенных» под конкретные устройства Java SE сборок.

Модульность Java платформы обсуждается уже с 2005-го года. Давление OSGi, с помощью которого вот уже более десяти лет существует возможность создавать приложения и службы в виде компонентов, делает эту тему еще и «политически» мотивированной. С течением времени появлялись спецификации модульности даже внтури самого Java Community Process (JCP). В конечном итоге все старания соединились воедино в проекте Jigsaw, однако реализацию пришлось сдвинуть на «после Java 7 и 8».

Oracle хочет с помощью Jigsaw создать не только модульность для ява-приложений, но и сделать саму Java-платформу модульной. Модульная платформа смогла бы в таком случае компоноваться как для мощных серверных, так и для компактных встроенных «железок». Кроме того, модульность позволила бы избавиться от тысяч установочных файлов и дать возможность инсталляторам скачивать необходимые библиотеки. Поговаривают так же о том, что улучшение производительсноти тоже не заставит себя ждать.

 Java 9: когда?

Разумный вопрос: когда ждать релиза Java 9. На данный момент дата выхода новой версии явы нет. Однако Oracle обещал выдавать на рынок новую версию Java каждые два года, а значит уже к 2016-му году можно ожидать последователя вышедшей весной этого года Java 8. Для этого нужно, конечно, чтобы протокол HTTP/2 получил статус финального.