microJUG – Telegram
microJUG
978 subscribers
155 photos
1 video
2 files
237 links
Мысли о Java.
Основной канал: @miniJUG
Буст: https://news.1rj.ru/str/microJUG?boost
Чат: https://news.1rj.ru/str/micro_JUG
Таблица JEP'ов: https://minijug.org/jeps.html
Download Telegram
Пришла аналитика рынка от икспертов)))
Скриним
#jetbrains
😁22🤡9🔥2💯1
Появился новый черновик JEP: Treat Loop Variables as Effectively Final in the Bodies of All for() Loops.

Он сделает компилируемым вот такой код:
for (int i = 1; i <= 3; i++) {
Runnable r = () -> System.out.println(i);
}


Пулл-реквест уже создан на гитхабе и должен быть смёржен в мастер. То есть возможно мы сможем использовать эту фичу в Java 24.

#java24
168🔥3👍1👌1
Podlodka Java Crew возвращается с новой темой — Асинхронной архитектурой, чтобы помочь Java-разработчикам освоить самые востребованные подходы и инструменты.

Пять дней насыщенной программы, сессии утром и вечером.

Погружаемся в асинхронность вместе:

- Рулетка кейсов: "Spring, Micronaut, Quarkus и Helidon" — Григорий Кошелев и Андрей Когунь о плюсах и минусах каждого фреймворка 🛠
- "Проектирование Event Driven-систем с DDD и Event Storming" — Кирилл Ветчинкин расскажет, как создавать масштабируемые и управляемые системы 📈
- Воркшоп "Apache EventMesh на практике" — Павел Бодячевский поможет внедрить Event Mesh в проект 🎯
- "Debezium: окно в асинхронный мир данных" — Евгений Ефименко раскроет секреты работы с данными в реальном времени 🔄

Присоединяйтесь, чтобы освоить асинхронность на практике: https://podlodka.io/javacrew
🔥3🤮21👍1
microJUG
Lilliput смёржен в JDK 24. Ждём билда, чтобы можно было потестить. #lilliput
Lilliput попал в последний билд 24 OpenJDK. Комбинация ключей -XX:+UnlockExperimentalVMOptions -XX:+UseCompactObjectHeaders теперь работает.

Также в этот билд попал JEP 491: Synchronize Virtual Threads without Pinning.

Можно деплоить в прод.

#lilliput #loom
🎉221310🔥1😁1🆒1
Старайтесь избегать ветки default в switch

Многие программисты, чтобы писать поменьше кода, ставят в конце switch ветку default. И тем самым подкладывают самим себе свинью в будущем: если в enum появляется новая константа, то для неё исполнение switch пойдёт по ветке default, хотя это может быть некорректно. Например:

enum Role {
READ,
WRITE,
FULL
}

private static boolean canWrite(Role role) {
return switch (role) {
case READ -> false;
default -> true;
};
}


Если в Role когда-нибудь появится новая константа, например, какой-нибудь EXECUTE, то метод canWrite() будет по-тихому работать неправильно.

Чтобы этого не было, нужно не лениться и перечислять все константы явно:

return switch (role) {
case READ -> false;
case WRITE, FULL -> true;
};


Тогда если в Role появится EXECUTE, то switch уже не скомпилируется, и вам придётся обработать новый случай (в Java все выражения switch должны быть тотальными).

То же самое с паттерн-матчингом по sealed классам: также желательно перечислять все классы явно и не использовать default. Если в списке permits появится новый тип, то компилятор заставит вас его обработать в switch.

#switch
👍30🔥55🤡3
Новости по поводу Simple Source Files and Instance Main Methods (которые в Java 24 будут в четвёртом превью).

Gavin Bierman написал следующее в рассылке (полный текст).

Вкратце:

1. Фичу планируется сделать стабильной в Java 25 (ну хоть что-то у нас будет в следующем LTS).

2. Автоматических статических импортов не будет. Методы println() и readln() нужно будет вызывать как IO.println() и IO.readln() (но при желании можно будет самому сделать import static).

3. Класс IO перемещается из пакета java.io в java.lang. Поэтому импорт для него будет не нужен.

4. IO.println() и IO.readln() будут реализованы через System.out и System.in, а не через Console.
💩11741
Что будет послезавтра?

⌨️
Please open Telegram to view this post
VIEW IN TELEGRAM
256🔥2🤔1
3
Ежегодный опрос. Какую версию(-и) Java или язык JVM вы используете на работе?
Anonymous Poll
9%
Java 8 или более старую
12%
Java 11
43%
Java 17
52%
Java 21
1%
Java 22
1%
Java 23
5%
Java 24
19%
Kotlin
2%
Scala
4%
Groovy
11
Что ж, опрос вроде более-менее настоялся, и можно подвести итоги.
• Java 21 взлетела с прошлого года на 27% и стала самой популярной версией Java.
• Java 17 упала на 20% и стала второй.
• Java 11 упала на 11% и уже уходит в прошлое.
• Java 8 уже стала меньше 10%.
• Kotlin стабильно держит свои ≈20% и мало меняется от года к году.

Но давайте помнить, что это опрос исключительно по подписчикам нашего канала. В целом по энтерпрайзу картина более консервативная, и там старые версии ещё очень активно используются. Например, согласно опросу Азула проценты такие:
• Java 6 – 10% (да-да, Java 6)
• Java 7 – 13%
• Java 8 – 23%
• Java 11 – 23%
• Java 17 – 34%
• Java 21 – 31%

Вообще в западном энтерпрайзе много чего по-другому, чем у нас. Например, там за Java Support платят 85% компаний. То есть подавляющее большинство. Сколько компаний платят у нас?
👏773
⌨️⌨️ Java сегодня исполняется 30 лет.

Вообще первая стабильная версия 1.0.2 вышла 23 января 1996 года, но 23 мая 1995 года Sun Microsystems впервые публично анонсировали выход Java на конференции SunWorld. Поэтому именно эта дата и считается днём рождения Java.

Ура, товарищи! 🥳
Please open Telegram to view this post
VIEW IN TELEGRAM
5718🎉10
Please open Telegram to view this post
VIEW IN TELEGRAM
46
🪦 GraalVM всё?

В официальном блоге Oracle появился довольно странный пост с заголовком "Detaching GraalVM from the Java Ecosystem Train". Я долго вчитывался и пытался понять суть. Кажется, смысл примерно следующий:

• GraalVM для JDK 25 не будет. Последняя версия была GraalVM для JDK 24.
• Разработчикам на Java, кто использовал GraalVM, рекомендуется переходить на обычную OpenJDK или Oracle JDK.
• Кому нужен GraalVM Native Image, юзайте Project Leyden.
• Кому нужен GraalVM JIT, используйте JIT-компилятор C2. В составе Oracle JDK 25 GraalVM JIT'а больше не будет (он был в Oracle JDK 23 и 24).
• GraalVM ещё не совсем мёртв: он будет развиваться в сторону динамических языков (GraalPy и GraalJS).

В общем, если коротко, то Oracle решил перенести все усилия с GraalVM на Project Leyden и C2.

P.S. Сегодня вечером выйдет Java 25.
😱1614🤔2🫡2😁11
microJUG
Вышел новый EA билд Валгаллы. Как утверждает автор письма, это очень важный майлстоун. Скачиваем и тестируем. Valhalla всё ближе и ближе к попаданию в mainstream. #valhalla
Вышел новый EA билд Valhalla. На этот раз реализована вся главная функциональность Value-классов и все оптимизации. Дальше остаётся только стабилизация.
Просят скачивать и пробовать.

Ставлю на то, что preview попадёт в Java 27.
#valhalla
🎉17👍10🔥53💯1
Java уже давно не просто язык для энтерпрайза — это мощная экосистема, которая развивается в сторону производительности, конкурентности и интеграции с AI.

Организаторы онлайн-конференции Podlodka Java Crew приглашают 17-21 ноября обсудить, как выглядит современная Java и что меняется в привычных инструментах.

📌 В программе:

• Spring AI и паттерны AI-агентов. Михаил Поливаха (Spring АйО) объяснит, как строить интеграции с LLM и какие паттерны уже применяются в индустрии.

Java 25 в действии. Григорий Кошелев (Контур) расскажет, почему миграция важна не только для Java-разработчиков, но и для тех, кто использует экосистемные инструменты вроде Кассандры и Кафки.

• Горячие JEP. Григорий Вахмистров, Дмитрий Волыхин, Сергей Петрелевич и Дмитрий Константинов объяснят, какие изменения в Java 21–25 действительно двигают экосистему вперёд.

• Hibernate в новой реальности. Максим Сенокосов (Точка Банк) покажет, как меняется ORM и почему вам пора пересмотреть архитектурные решения.

💡 Все доклады с практикой, живыми примерами и ответами на реальные вопросы инженеров.

📆 17–21 ноября | https://podlodka.io/javacrew
5👍4💩2
Spring Boot 4 и Spring Framework 7 будут полностью покрыты nullability аннотациями (JSpecify). Круто.
#spring #jspecify
9👍84😁11