microJUG
Вышел новый EA билд Валгаллы. Как утверждает автор письма, это очень важный майлстоун. Скачиваем и тестируем. Valhalla всё ближе и ближе к попаданию в mainstream. #valhalla
Вышел новый EA билд Valhalla. На этот раз реализована вся главная функциональность Value-классов и все оптимизации. Дальше остаётся только стабилизация.
Просят скачивать и пробовать.
Ставлю на то, что preview попадёт в Java 27.
#valhalla
Просят скачивать и пробовать.
Ставлю на то, что preview попадёт в Java 27.
#valhalla
🎉17👍11🔥6 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👍9 4😁1 1
В этому году планируются две новые языковые фичи. Черновиков JEP ещё нет.
Pattern Assignment
Вместо:
Можно будет писать по-человечески:
Constant Patterns
Вместо:
Можно будет писать:
Pattern Assignment
Вместо:
record ColorPoint(int x, int y, RGB color) {}
void somethingImportant(ColorPoint cp) {
if (cp instanceof ColorPoint(var x, var y, var c)) {
// important code
}
}Можно будет писать по-человечески:
void somethingImportant(ColorPoint cp) {
ColorPoint(var x, var y, var c) = cp; // Pattern Assignment!
// important code
}Constant Patterns
Вместо:
void code(Shape s) {
switch (s) {
case Point(var x, var y) when x == 0 && y == 0 —> { // special code for origin
}
case Point(var x, var y) -> { // code for non-origin points
}
...
}
...
}Можно будет писать:
void code(Shape s) {
switch (s) {
case Point(0, 0) -> { // special code for origin
}
case Point(var x, var y) -> { // code for non-origin points
}
...
}
...
}🔥4 4 1
В Java 26 JavaDoc будет поддерживать тёмный режим. JavaDoc для Java 26 уже доступен, так что уже можно потестить.
#javadoc
#javadoc
🌚22🤯14 6😁3👍1🙈1
🤷♂️ Вы не поверите, но они опять хотят добавить имплементацию JavaScript в Java. Правда на этот раз движок с нуля никто писать не собирается. И воскрешать Nashorn тоже. Вместо это хотят сделать всё поверх существующего движка V8. Вся работа будет идти в проекте Detroit.
#javascript
#javascript
💊20🤣13👍5🤡2
microJUG
В этому году планируются две новые языковые фичи. Черновиков JEP ещё нет. Pattern Assignment Вместо: record ColorPoint(int x, int y, RGB color) {} void somethingImportant(ColorPoint cp) { if (cp instanceof ColorPoint(var x, var y, var c)) { …
По поводу первой фичи появился черновик JEP: Enhanced Local Variable Declarations (Preview).
Если есть желание, можно подробно ознакомиться.
Если есть желание, можно подробно ознакомиться.
🔥3 1 1
Брайан Гетц предложил внести изменения в JEP 468: Derived Record Creation (Preview).
Ранее предложенный синтаксис:
Предлагается заменить на следующий:
Ранее предложенный синтаксис:
stats = stats with { count = count + 1; }Предлагается заменить на следующий:
stats = stats.new(count: count+1);
🤯 Проект Valhalla было решено свернуть. Брайан Гетц написал письмо [1], где подробно описал решение свернуть проект:
Брайан также сказал:
На текущий момент проект Valhalla пока что помечен как активный. Но скоро он уйдёт в архив. Последний билд Valhalla всё ещё доступен для скачивания.
[1] https://www.youtube.com/watch?v=dQw4w9WgXcQ
Это было очень тяжёлое для нас решение. Мы потратили на внедрение value-типов в Java 12 лет. Мы сделали несколько рабочих прототипов, но ни один из них нас не устроил полным образом. Мы думали, что сможем внедрить value-типы таким образом, что это не сломает обратную совместимость. Но у нас не получилось. Это слишком инвазивное изменение.
Брайан также сказал:
Есть и хорошие новости. Проект отнимал у нас много сил и времени. Но сейчас мы можем переключиться на фичи, которым уделяли мало внимания. Например, мы хотим наконец-то вывести из preview Structured Concurrency.
На текущий момент проект Valhalla пока что помечен как активный. Но скоро он уйдёт в архив. Последний билд Valhalla всё ещё доступен для скачивания.
[1] https://www.youtube.com/watch?v=dQw4w9WgXcQ
🤣38🤯14😁4👍2
В JVM есть такая опция
Ответ: и минимальный, и начальный.
Откуда вообще взялась путаница? А вот отсюда. Если посмотреть, что пишет в хелпе сам JDK, то там будет следующее:
Но при этом в онлайн документации на сайте Oracle написано по-другому:
Это более корректно. Несоответствие заметили буквально недавно и пофиксили лишь в Java 25. Теперь хелп JDK пишет правильно:
P.S. Есть ещё опция
-Xms. Вы знаете, что она точно означает? Некоторые думают, что это минимальный размер кучи. Другие - что это начальный размер кучи (при старте JVM). Но какой вариант правильный? Это всё-таки минимальный или начальный размер кучи?Ответ: и минимальный, и начальный.
Откуда вообще взялась путаница? А вот отсюда. Если посмотреть, что пишет в хелпе сам JDK, то там будет следующее:
> java --help-extra
...
-Xms<size> set initial Java heap size
-Xmx<size> set maximum Java heap size
Но при этом в онлайн документации на сайте Oracle написано по-другому:
-Xms size
Sets the minimum and the initial size (in bytes) of the heap. This value must be a multiple of 1024 and greater than 1 MB. Append the letter k or K to indicate kilobytes, m or M to indicate megabytes, or g or G to indicate gigabytes. The following examples show how to set the size of allocated memory to 6 MB using various units:
Это более корректно. Несоответствие заметили буквально недавно и пофиксили лишь в Java 25. Теперь хелп JDK пишет правильно:
> java --help-extra
...
-Xms<size> set minimum and initial Java heap size
-Xmx<size> set maximum Java heap size
P.S. Есть ещё опция
-Xmn, но она означает совсем другое: она указывает начальный (и минимальный) размер молодого поколения. Эта опция используется редко.👍11 6
Марк Рейнолд написал в рассылку письмо, где рассказал, что Oracle работает над черновиком политики, регулирующей использование генеративного AI для вклада в OpenJDK. Однако пока эта политика не будет утверждена комитетом, уже сейчас комитет принял временную политику, которая запрещает вклады, содержащие AI-контент:
Вклады в сообществе OpenJDK не должны содержать контент, сгенерированный полностью или частично большими языковыми моделями, диффузионными моделями и похожими системами глубокого обучения. Контент включает в себя исходный код, текст, изображения в Git-репозиториях OpenJDK, пулл-реквестах на GitHub, e-mail сообщениях, wiki-страницах и в JBS.
Исключением является использование AI в личных целях: изучение, отладка, ревью, исследования.
Причины, почему AI было решено запретить, можно подробно почитать здесь. Если коротко, то это сложность ревьюинга и поддержки больших объёмов кода, сгенерированных через AI. Также есть проблемы с нарушением авторских прав: инструменты AI могут быть обучены на контенте с копирайтом, поэтому сгенированный код может нарушать лицензии.
#ai
Please open Telegram to view this post
VIEW IN TELEGRAM
❤22👏14🔥6👍3🫡2🥴1
Результаты опроса по версиям Java.
• Java 25 ворвалась с 25%.
• Java 21 прибавила +7%, хотя это предыдущий LTS. Сейчас это самая используемая версия Java.
• Java 17 столько уже убавила (-7%). Но всё ещё имеет заметную долю и пока что выше, чем Java 25.
• Java 8 и 11 болтаются в районе 10% и очень медленно умирают (но до нуля вряд ли когда-то дойдут).
• Groovy болтается в своём районе 4-5%, Scala – 2-3%.
• Kotlin продолжает уверенно держаться в районе 20%.
• Java 25 ворвалась с 25%.
• Java 21 прибавила +7%, хотя это предыдущий LTS. Сейчас это самая используемая версия Java.
• Java 17 столько уже убавила (-7%). Но всё ещё имеет заметную долю и пока что выше, чем Java 25.
• Java 8 и 11 болтаются в районе 10% и очень медленно умирают (но до нуля вряд ли когда-то дойдут).
• Groovy болтается в своём районе 4-5%, Scala – 2-3%.
• Kotlin продолжает уверенно держаться в районе 20%.
Официально. Valhalla попадёт в JDK 28.
Пулл-реквест первого превью JEP 401: Value Classes and Objects сейчас находится на ревью на Гитхабе. В нём около 2800 коммитов и почти 200 тысяч строк кода.
#valhalla
Пулл-реквест первого превью JEP 401: Value Classes and Objects сейчас находится на ревью на Гитхабе. В нём около 2800 коммитов и почти 200 тысяч строк кода.
#valhalla
🔥32 12 4
JDK x86_64 станет deprecated for removal на macOS
Появился черновик JEP: Deprecate the macOS/x64 Port for Removal. Мотивация: Apple перевёл всё своё железо на архитектуру AArch64. Поэтому поддержка со стороны Oracle будет прекращена, т.к. это требует значительных ресурсов и усилий.
Появился черновик JEP: Deprecate the macOS/x64 Port for Removal. Мотивация: Apple перевёл всё своё железо на архитектуру AArch64. Поэтому поддержка со стороны Oracle будет прекращена, т.к. это требует значительных ресурсов и усилий.
👍14🤡4😢3❤1