Новости Java #42

• Вышел новый черновик 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.

Подписывайтесь на канал в Telegram, чтобы не пропускать новости.

Все материалы на этом сайте выложены под лицензией CC BY-SA 4.0
© Евгений Козлов, 2017-2022
Feed