Появился новый черновик JEP: Treat Loop Variables as Effectively Final in the Bodies of All for() Loops.
Он сделает компилируемым вот такой код:
Пулл-реквест уже создан на гитхабе и должен быть смёржен в мастер. То есть возможно мы сможем использовать эту фичу в Java 24.
#java24
Он сделает компилируемым вот такой код:
for (int i = 1; i <= 3; i++) {
Runnable r = () -> System.out.println(i);
}Пулл-реквест уже создан на гитхабе и должен быть смёржен в мастер. То есть возможно мы сможем использовать эту фичу в Java 24.
#java24
Вот такие вот пироги
Хабр
Компания JetBrains начала блокировать оплаченные лицензии пользователей, находящихся на территории РФ
Давно использую продукты компании JetBrains. В 2022 году компания заявила о том, что уходит из России, но оставалась лазейка, что можно было сменить страну проживания и оплатить лицензию карточкой...
💩22👍13😢5🤬3🎉2🤮2❤1🔥1😁1
Podlodka Java Crew возвращается с новой темой — Асинхронной архитектурой, чтобы помочь Java-разработчикам освоить самые востребованные подходы и инструменты.
Пять дней насыщенной программы, сессии утром и вечером.
Погружаемся в асинхронность вместе:
- Рулетка кейсов: "Spring, Micronaut, Quarkus и Helidon" — Григорий Кошелев и Андрей Когунь о плюсах и минусах каждого фреймворка 🛠
- "Проектирование Event Driven-систем с DDD и Event Storming" — Кирилл Ветчинкин расскажет, как создавать масштабируемые и управляемые системы 📈
- Воркшоп "Apache EventMesh на практике" — Павел Бодячевский поможет внедрить Event Mesh в проект 🎯
- "Debezium: окно в асинхронный мир данных" — Евгений Ефименко раскроет секреты работы с данными в реальном времени 🔄
Присоединяйтесь, чтобы освоить асинхронность на практике: https://podlodka.io/javacrew
Пять дней насыщенной программы, сессии утром и вечером.
Погружаемся в асинхронность вместе:
- Рулетка кейсов: "Spring, Micronaut, Quarkus и Helidon" — Григорий Кошелев и Андрей Когунь о плюсах и минусах каждого фреймворка 🛠
- "Проектирование Event Driven-систем с DDD и Event Storming" — Кирилл Ветчинкин расскажет, как создавать масштабируемые и управляемые системы 📈
- Воркшоп "Apache EventMesh на практике" — Павел Бодячевский поможет внедрить Event Mesh в проект 🎯
- "Debezium: окно в асинхронный мир данных" — Евгений Ефименко раскроет секреты работы с данными в реальном времени 🔄
Присоединяйтесь, чтобы освоить асинхронность на практике: https://podlodka.io/javacrew
🔥3🤮2❤1👍1
microJUG
Lilliput смёржен в JDK 24. Ждём билда, чтобы можно было потестить. #lilliput
Lilliput попал в последний билд 24 OpenJDK. Комбинация ключей
Также в этот билд попал JEP 491: Synchronize Virtual Threads without Pinning.
Можно деплоить в прод.
#lilliput #loom
-XX:+UnlockExperimentalVMOptions -XX:+UseCompactObjectHeaders теперь работает.Также в этот билд попал JEP 491: Synchronize Virtual Threads without Pinning.
#lilliput #loom
🎉22 13 10🔥1😁1🆒1
Старайтесь избегать ветки default в switch
Многие программисты, чтобы писать поменьше кода, ставят в конце switch ветку default. И тем самым подкладывают самим себе свинью в будущем: если в enum появляется новая константа, то для неё исполнение switch пойдёт по ветке default, хотя это может быть некорректно. Например:
Если в Role когда-нибудь появится новая константа, например, какой-нибудь EXECUTE, то метод canWrite() будет по-тихому работать неправильно.
Чтобы этого не было, нужно не лениться и перечислять все константы явно:
Тогда если в Role появится EXECUTE, то switch уже не скомпилируется, и вам придётся обработать новый случай (в Java все выражения switch должны быть тотальными).
То же самое с паттерн-матчингом по sealed классам: также желательно перечислять все классы явно и не использовать default. Если в списке permits появится новый тип, то компилятор заставит вас его обработать в switch.
#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🔥5 5🤡3
Новости по поводу Simple Source Files and Instance Main Methods (которые в Java 24 будут в четвёртом превью).
Gavin Bierman написал следующее в рассылке (полный текст).
Вкратце:
1. Фичу планируется сделать стабильной в Java 25 (ну хоть что-то у нас будет в следующем LTS).
2. Автоматических статических импортов не будет. Методы
3. Класс
4.
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.💩11❤7 4 1
Какая самая полезная новая фича в Java 24 для вас?
(preview не включен в опрос намеренно)
(preview не включен в опрос намеренно)
Anonymous Poll
28%
JEP 485: Stream Gatherers
6%
JEP 484: Class-File API
11%
JEP 450: Compact Object Headers (Experimental)
7%
JEP 483: Ahead-of-Time Class Loading & Linking
47%
JEP 491: Synchronize Virtual Threads without Pinning
1%
JEP 493: Linking Run-Time Images without JMODs
Ежегодный опрос. Какую версию(-и) 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
❤1 1
Что ж, опрос вроде более-менее настоялся, и можно подвести итоги.
• 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% компаний. То есть подавляющее большинство. Сколько компаний платят у нас?
• 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% компаний. То есть подавляющее большинство. Сколько компаний платят у нас?
👏7 7 3
Вообще первая стабильная версия 1.0.2 вышла 23 января 1996 года, но 23 мая 1995 года Sun Microsystems впервые публично анонсировали выход Java на конференции SunWorld. Поэтому именно эта дата и считается днём рождения Java.
Ура, товарищи!
Please open Telegram to view this post
VIEW IN TELEGRAM
🪦 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.
В официальном блоге 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.
😱16 14🤔2🫡2😁1 1
Forwarded from javaswag
Сегодня 21:00 Мск пишем код на свежей Java 25
https://www.youtube.com/live/9BB6_R6v8Ag
https://www.youtube.com/live/9BB6_R6v8Ag
https://www.youtube.com/live/9BB6_R6v8Ag
В гостях Жека (@miniJUG) Козлов и Андрей (AI) Когунь
Подключайтесь!
https://www.youtube.com/live/9BB6_R6v8Ag
https://www.youtube.com/live/9BB6_R6v8Ag
https://www.youtube.com/live/9BB6_R6v8Ag
В гостях Жека (@miniJUG) Козлов и Андрей (AI) Когунь
Подключайтесь!
YouTube
СТАФФ 065 [live]. Java 25 - долгожданный LTS
Разбираем новый релиз https://minijug.org/java_25.html
В гостях Женя (miniJUG) Козлов и Андрей (AI) Когунь
Telegram: https://news.1rj.ru/str/staff_engineers
Подкаст Димы: https://news.1rj.ru/str/javaswag
Подкаст Саши: https://news.1rj.ru/str/tfeat
#python #bazel #coding
В гостях Женя (miniJUG) Козлов и Андрей (AI) Когунь
Telegram: https://news.1rj.ru/str/staff_engineers
Подкаст Димы: https://news.1rj.ru/str/javaswag
Подкаст Саши: https://news.1rj.ru/str/tfeat
#python #bazel #coding
👍4👌4
microJUG
Вышел новый EA билд Валгаллы. Как утверждает автор письма, это очень важный майлстоун. Скачиваем и тестируем. Valhalla всё ближе и ближе к попаданию в mainstream. #valhalla
Вышел новый EA билд Valhalla. На этот раз реализована вся главная функциональность Value-классов и все оптимизации. Дальше остаётся только стабилизация.
Просят скачивать и пробовать.
Ставлю на то, что preview попадёт в Java 27.
#valhalla
Просят скачивать и пробовать.
Ставлю на то, что preview попадёт в Java 27.
#valhalla
🎉17👍10🔥5 3💯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
Организаторы онлайн-конференции 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
Spring Boot 4 и Spring Framework 7 будут полностью покрыты nullability аннотациями (JSpecify). Круто.
#spring #jspecify
#spring #jspecify
Null-safe applications with Spring Boot 4
Level up your Java code and explore what Spring can do for you.
❤9👍8 4😁1 1