• Вышел новый черновик JEP: Classfile API. Цель этого JEP – создать API для парсинга, генерации и трансформации class-файлов.
В данный момент наиболее распространена библиотека для работы с байткодом ASM, форк которой используется, в том числе, в самой JDK. Основная проблема с ASM заключается в том, что она всегда отстаёт на один релиз от JDK. Когда выходит новая версия JDK, последняя версия ASM поддерживает только предпоследнюю версию байткода. Из-за этого инструменты и библиотеки, которые корректно работали на предпоследней версии байткода, могут неожиданно ломаться, когда сталкиваются с новыми class-файлами. Раньше это не было большой проблемой, так как релизы Java выходили раз в 3-5 лет. С переходом на новую частоту релизов это стало создавать неприятности как для пользователей, так и для разработчиков библиотек.
Решение этой проблемы очевидное: библиотека для работы с class-файлами должна быть частью JDK. Тогда пользователи такого classfile API не будут иметь проблем с только что вышедшей новой версией Java, поскольку поддержка новой версии байткода будет идти сразу "из коробки".
Новое API будет учитывать и ряд других проблем ASM. Например, ASM имеет старую кодовую базу с большим количеством багажа, доставшегося по наследству от первых версий. Также в ASM используется подход, основанный на Visitor. Было бы глупо в 2022-м году использовать этот же шаблон при наличии современных языковых конструкций: лямбд, записей и паттерн-матчинга.
Планируется, что API сначала заменит ASM внутри самой JDK, а позже станет частью публичного API.
• Вышел Eclipse 2022-06. Перечислим самые заметные нововведения и улучшения в среде разработки:
- Поддержка Java 18.
- Улучшена производительность автодополнения в редакторе.
- Несколько новых Quick Fix и Cleanup Action для Java.
- Улучшена производительность печати в консоль.
- Find Actions (
Ctrl+3
) теперь может искать файлы. - Несколько новых команд, связанных с режимом multi-selection.
- Кодировка по умолчанию для workspace теперь UTF-8.
• Вышел Apache NetBeans 14.
• Вышел Kotlin 1.7.0.
• Вышел GWT 2.10.0. Это первое обновление библиотеки спустя два года.
• Вышел Hibernate 6.1.