• Ещё один JEP предложен к Java 18: Deprecate Finalization for Removal (JEP 421).
• В проекте Valhalla появился новый черновик JEP: Value Objects (Preview). В нём предлагается ввести новый тип объектов в Java: value-объекты.
Value-объекты отличаются от классических объектов тем, что не имеют identity. Это позволяет улучшить производительность при использовании таких объектов и уменьшить занимаемое ими место в памяти. Также value-объекты являются полностью иммутабельными, всегда являются final
и не могут иметь synchronized
-методов.
Однако, в отличие от примитивных объектов (JEP 401), которые также имеют все вышеописанные свойства, value-объекты являются ссылочными, поэтому являются nullable.
Таким образом, если в Valhalla всё будет реализовано согласно такой модели, то в Java будет три типа объектов: identity-объекты, value-объекты и примитивные объекты.
• Вышла IntelliJ IDEA 2021.3. Перечислим некоторые заметные изменения и улучшения:
- В Ultimate версии появилась возможность удалённой разработки. Развернув бэкенд IDEA на удалённом сервере, к нему можно подключиться и работать из любой точки мира. Функция пока работает в Beta-режиме.
- Новая функция Repair IDE позволяет быстро диагностировать и устранять наиболее распространённые неполадки.
- Возможность изменить шрифт во всех вкладках одновременно с помощью
Ctrl
и колеса мыши. - Улучшенный предпросмотр результатов intention-действий.
- Возможность разделения окна Run на несколько вкладок.
- Поиск действий в Search Everywhere теперь тоже использует машинное обучение (ранее в IDEA 2020.3 машинное обучение было введено для Code Completion).
- Новые инспекции в Java: отслеживание небезопасных строк (SQL-инъекция, XSS, конфиденциальные данные и т.п.), замена
collect(toList())
наtoList()
. - При выполнении рефакторинга Introduce Local Variable теперь не всплывает окно с настройками, а появляется значок шестерёнки. А при выполнении рефакторинга Introduct Parameter среда теперь спрашивает, где нужно заменить вхождения, и тоже показывает значок шестерёнки.
- В Run/Debug Configurations теперь можно настраивать classpath, вручную добавляя туда отдельные записи или исключая ненужные.
- Множество новых улучшений в Kotlin: действие Smart Step Into в отладчике,
inline
-функции в стек-трейсе, рефакторинг Extract Constant, улучшенная инспекция Possibly blocking call in non-blocking context, подсказки для диапазонов, улучшенный мастер создания проектов. - Async Profiler 2.0 теперь доступен в Windows-версии IntelliJ IDEA Ultimate из коробки.
• Компания JetBrains анонсировала свою новую среду разработки Fleet.
Fleet – это созданная с нуля среда разработки, которая представляет собой легковесный редактор с базовыми возможностями, но с возможностью включения smart-режима, при котором она превращается в полнофункциональную IDE. В отличие от классических IDE JetBrains, каждая из которых создана для одной конкретной технологии, Fleet поддерживает разные технологии в рамках одного приложения (на текущий момент есть поддержка Java, Kotlin, Python, Go, JavaScript, Rust, TypeScript, JSON). Fleet имеет распределённую архитектуру, в которой фронтенд отделён от бэкенда, что позволяет использовать среду не только локально, но и в распределённых сценариях: удалённая, облачная, совместая разработка и т.д.
В данный момент Fleet недоступен широкому кругу пользователей, и работает программа Fleet Preview, в которой, однако, закончился приём заявок из-за большого наплыва желающих протестировать новую IDE.
• Вышел выпуск Java Annotated Monthly от JetBrains за декабрь 2021.
• Вышел Apache Maven 3.8.4.
• Вышла вторая версия H2, популярной SQL СУБД, написанной полностью на Java. Это произошло спустя 16 лет после выхода первой версии.
• Вышел JCStress 0.15.