Корабли-кандидаты на выпуск Java 7


Вчера состоялось мероприятие по запуску, чтобы отпраздновать тот факт, что сборка 147 Java 7 стала первым и, надеюсь, единственным кандидатом на выпуск долгожданного JDK 7, общий выпуск которого запланирован на 28 июля.

Что наиболее важно в Java 7?

По словам Марка Рейнхольда, главного архитектора группы платформ Java в Oracle,

«Тот факт, что на самом деле доставка».

Он говорит в видео ниже, которое было записано за два дня до прямого эфира, что Java 7 почти 5 лет следовала за Java 6 по деловым и политическим причинам, в течение которых Java перешла в «режим гибернации».

Он также говорит о Java 7:

это не революция, это эволюция.

Адам Мессингер, руководитель группы разработчиков Java в Oracle, предложил обсудить особенности выпуска, который он ведет, с JSR 203, который он описывает как преемник JSR 41, который ввел неблокирующий ввод-вывод и улучшил абстракцию каналов. Теперь 203 предоставляет действительно асинхронный API ввода-вывода, что важно для высокопроизводительных серверных приложений и баз данных, которым требуется низкая задержка в сочетании с высокой пропускной способностью и доступом к нескольким каналам.

Далее Рейнгольд указывает, что JSR 203, наконец, приносит «реальный API файловой системы», описывающий существующий файл ввода-вывода Java как «жалкий» и сделанный «в некоторой спешке». Новый API способен создавать символические ссылки и является «умным» в том смысле, что его наслоение позволяет выполнять независимые от платформы операции, которые обеспечивают более тесную интеграцию, скажем, с Windows или Unix. Рейнгольд отмечает, что, хотя пуристы могут сказать, что это нарушение базового принципа Java write-once-run-anywhere, он считает, что лучше иметь эти средства для лучшей интеграции с конкретными платформами. 

Затем Джон Роуз, инженер-консультант в группе VM, в ответ на вопрос «Что нового в виртуальной машине», представляет InvokeDynamic, первую новую инструкцию с начала Java, которая, по его признанию, будет представлять непосредственный интерес для очень ограниченного числа разработчиков. Он сравнивает это с «фитингом для труб», который будет интересен таким людям, как он, чья роль — «сантехник».

InvokeDynamic выполняет функцию, которая была специально исключена из исходной виртуальной машины, поскольку она была специфична для Java. Теперь, когда люди создают сотни различных языков на виртуальной машине и сталкиваются с ограничениями оптимизации, инструкция предоставляет новый режим вызова, который может быть запрограммирован в соответствии с определяемыми пользователем спецификациями.

Рассматривая далее языковую сторону, главный инженер Джо Дарси в группе языков вводит небольшие языковые изменения, называемые Project Coin, которые предназначены для упрощения обычных повседневных задач программирования.

К ним относятся:

строки в операторах switch

инструкции try-with-resources

улучшен вывод типа для создания универсального экземпляра («diamond»),

упрощенный вызов метода varargs,

лучшие интегральные литералы

улучшена обработка исключений (multi-catch)

Затем обсуждение переходит к Java 8, и вы можете увидеть это сами здесь.

На мероприятии по запуску Марк Рейнгольд также выделил фреймворк Fork/Join (JSR 166y) под руководством «гения параллелизма» Дуга Ли, который, уйдя из JCP, продолжил свою работу над OpenJDK. Этот легкий фреймворк, который включает гибкие и многократно используемые барьеры синхронизации, очереди передачи, параллельные связанные двойные очереди и локальные генераторы псевдослучайных чисел, рассматривается как средство обеспечения истинного параллелизма на платформе.

По словам Рейнгольда

«Это первый шаг к тому, чтобы действительно включить Java для многоядерных приложений.»

Таким образом, сегодняшняя Java готова к многоядерному миру, в котором мы живем уже некоторое время, и она прекрасно сочетается с другими целевыми языками JVM. Единственное, что портит настоящее, — это тот факт, что нам пришлось так долго ждать, пока оно будет доставлено. Действительно, действительно верно сказать, что самое важное в Java 7-это то, что он поставляется… ну, почти…


Добавить комментарий