Компания Oracle официально передала описание будущих версий языка
Java на формальную спецификацию. Среди них – Java 7 и 8 Standard
Edition.
Документы «запрос на спецификацию Java» (JSR) были
переданы для рассмотрения сообществу Java Community Process. Главный
архитектор Oracle по платформе Java Марк Рейнхолд пишет в своём блоге:
«Эти спецификации разрабатывались долгое время. И теперь, наконец, они
находятся на голосовании JCP. Результаты станут известны в течение двух
недель».
Спецификации включают в себя:
- JSR 336: Java SE 7
- JSR 337: Java SE 8
- JSR 334: Небольшие улучшения языка программирования Java
- JSR 335: Лямбда-выражения в языке программирования Java
Java SE станет основой для более серьёзной платформы Java EE (Enterprise Edition).
Java
SE 7 или Java Platrom Standard Edition 7 «будет способствовать лучшим
практикам кодирования и сократит количество шаблонного кода путём
добавления возможностей повышения продуктивности в язык Java и
программные интерфейсы Java SE», – говорится в JSR. Новые особенности
состоят в повышении уровня абстракции большинства приложений
«прагматичным» путём без какого-либо значимого влияния на существующий
код и с минимальным переобучением для всех разработчиков. "Мы предлагаем
включить помимо прочих усовершенствований автоматическое управление
ресурсами ввода-вывода, простое использования так называемых
«дженериков» (generics) и более простые варианты обработки
исключительных ситуаций.
Также
в Java SE 7 должен быть представлен распараллеленный программный
интерфейс для использования возможностей многоядерных процессоров и
улучшения для динамических скриптовых языков. API для асинхронной работы
увеличит производительность интенсивных операций ввода-вывода. JSR
указывает на июль 2011 года в качестве даты финального выхода
спецификаций.
В спецификациях Java SE 8 говорится, что эта версия
языка «приведёт к дальнейшему уменьшению шаблонного кода путём
добавления функций повышения производительности в языке Java и его
программном интерфейсе». Кроме того, Java SE 8 за счёт интеграции
системных модулей в платформе затронет то, что сейчас называют "адом"
Java-архивов.
Кроме того, Java Collections Framework и связанные
программные интерфейсы расширятся в восьмой версии языка и внесут
поддержку автоматической распараллеливаемости сложных операций с
данными. «Удобное использование новых программных интерфейсов будет
реализовано за счёт включения лямбда-выражений. Эти изменения в языке
улучшат продуктивность разработчиков, использующих существующие API с
абстрактными методами».
Выход финальных спецификаций Java SE 8 запланирован на октябрь 2012 года.
JSR
334 предназначен для упрощения работы программистов. Они изменяют язык
Java и спецификацию программных интерфесов за счёт поддержки новых
возможностей, таких как строки в блоке switch, бинарные интегральные
литералы, множественная обработка исключений, более точная генерация
исключений и улучшенный способ создания экземпляров объектов.
Спецификация должна выйти в июле следующего года.
Лямбда-выражения,
описанные в JSR 335, расширяют виртуальную машину Java. «Мы предлагаем
расширить язык Java за счёт поддержки компактных лямбда-выражений (также
известных как закрытые или анонимные методы). Кроме того, мы собираемся
расширить язык SAM-преоразованиями, чтобы лямбда-выржаения могли быть
использовани там, где ожидается класс или интерфейс с единичным
абстрактным методом. Это также позволит сохранить совместимость с
существующими библиотеками». Выход данных спецификаций намечен на июль
2012 года.