Профиль: Аноним (вход | регистрация) неRU opennet.me  
The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Проект Valhalla будет включён в основную ветку JDK"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Проект Valhalla будет включён в основную ветку JDK"  +/
Сообщение от opennews (??), 01-Авг-26, 21:45 
Лоис Фолтан (Lois Foltan) из компании Oracle  подтвердила, что реализация предложения JEP 401 ("Value Classes and Objects") будет интегрирована в основной репозиторий OpenJDK и запланирована для включение в релиз JDK 28, намеченный на март 2027 года, в качестве отключённой по умолчанию экспериментальной функции...

Подробнее: https://www.opennet.ru/opennews/art.shtml?num=66010

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по времени | RSS]


2. "Проект Valhalla будет включён в основную ветку JDK"  +3 +/
Сообщение от Аноним (2), 01-Авг-26, 21:46 
круто.
Ответить | Правка | Наверх | Cообщить модератору

14. "Проект Valhalla будет включён в основную ветку JDK"  –6 +/
Сообщение от Аноним (14), 01-Авг-26, 23:25 
Только а зачем, если на уровне компилятора можно было отлавливать все что можно оптимизировать и обрабатывать под капотом? А для валидаций в java и без этого много инструментов.
Ответить | Правка | Наверх | Cообщить модератору

58. "Проект Valhalla будет включён в основную ветку JDK"  +/
Сообщение от Аноним (58), 02-Авг-26, 14:04 
Потому и нужно, что на уровне комплиятора не решить проблему. В Java большая часть функциональности - это JVM. Да, комплиятор может приукрасить, скрыть сложности, но принципы хранения данных опеределяет сама JVM. И если у неё нет подходящих фич, то хоть выворачивай компилятор наизнанку - он ничего поделать не сможет.
Ответить | Правка | Наверх | Cообщить модератору

19. "Проект Valhalla будет включён в основную ветку JDK"  +16 +/
Сообщение от Аноним (19), 01-Авг-26, 23:48 
Они изобрели паскалевский record!
Ответить | Правка | К родителю #2 | Наверх | Cообщить модератору

55. "Проект Valhalla будет включён в основную ветку JDK"  +/
Сообщение от Аноним (55), 02-Авг-26, 12:46 
Интересно, у них генерики всё ещё упаковываются в object или уже победили?
Смешно было, когда «отсталый клон от мелкомягких» уже на версии три обходил по куче аспектов, а с четвёрки ушёл в отрыв.
(потом пришли индусы-явисты и всё скатилось, но это уже другая история)
Ответить | Правка | Наверх | Cообщить модератору

59. "Проект Valhalla будет включён в основную ветку JDK"  +4 +/
Сообщение от Аноним (58), 02-Авг-26, 14:08 
Обратная совместимость в java - это не шутки. У меня до сих пор есть код, который под Java 1.4 написан. И работает же, не требует переписывать.

Поэтому когда mircosoft сделал с нуля что-то похожее, он смог отбросить неактуальные ограничения. К сожалению, отбросил он и необходимые ограничения тоже, поэтому не майкрософт не смогли родить кросс-платформенное решение в отличие от джавы. Мелкомягкие даже аналог JCK родить не смогли. То есть не смогли стать ничем серьёзным, ограничившись своей платформой с кучей несовместимостей.

Ответить | Правка | Наверх | Cообщить модератору

73. "Проект Valhalla будет включён в основную ветку JDK"  –1 +/
Сообщение от erifferfre (?), 02-Авг-26, 18:41 
Конечно упаковываются :)

В этом случае оптимизироваться будет только "Point[]" (а может и не будет, как карта ляжет) а "ArrayList<Point>" и прочие дженерик коллекции будут как раньше боксить и хранить указатели.

Ответить | Правка | К родителю #55 | Наверх | Cообщить модератору

3. "Проект Valhalla будет включён в основную ветку JDK"  +5 +/
Сообщение от Аноним (3), 01-Авг-26, 21:52 
fyi 12 лет разрабатывают.
Ответить | Правка | Наверх | Cообщить модератору

7. "Проект Valhalla будет включён в основную ветку JDK"  +7 +/
Сообщение от Dzen Python (ok), 01-Авг-26, 22:03 
Ну, зато достаточно стабильно для прода
Ответить | Правка | Наверх | Cообщить модератору

4. "Проект Valhalla будет включён в основную ветку JDK"  +17 +/
Сообщение от trolleybus (ok), 01-Авг-26, 21:53 
Создатели явы изобрели структуры... Скоро перегрузку операторофф придумают
Ответить | Правка | Наверх | Cообщить модератору

6. "Проект Valhalla будет включён в основную ветку JDK"  +1 +/
Сообщение от Аноним (6), 01-Авг-26, 22:02 
Не изобрели. Point из трёх интов будет ссылкой
Ответить | Правка | Наверх | Cообщить модератору

16. "Проект Valhalla будет включён в основную ветку JDK"  +4 +/
Сообщение от Аноним (16), 01-Авг-26, 23:33 
и плевать, что прямо в новости написано "В данном примере "Point[]" теперь может хранить значения напрямую, а не ссылки на объекты. "
Ответить | Правка | Наверх | Cообщить модератору

24. "Проект Valhalla будет включён в основную ветку JDK"  +/
Сообщение от Аноним (6), 02-Авг-26, 01:30 
Поинт из двух тестов да, а из трёх - нет. Атомарность при изменении объекта в джаве ломать не будут.
Ответить | Правка | Наверх | Cообщить модератору

25. "Проект Valhalla будет включён в основную ветку JDK"  +/
Сообщение от Аноним (6), 02-Авг-26, 01:30 
Интов, а не тестов, блин.
Ответить | Правка | Наверх | Cообщить модератору

32. "Проект Valhalla будет включён в основную ветку JDK"  +3 +/
Сообщение от morphe (?), 02-Авг-26, 03:57 
Там лимит 64 бита для прямого хранения

Для того чтобы из нескольких потоков можно было переписывать элемент массива и при этом не получалось data race когда одно поле внутри Point переписало, а второе нет - они требуют чтобы такие записи были атомарные, а атомарно больше 64 бит писать нельзя

Ответить | Правка | К родителю #16 | Наверх | Cообщить модератору

33. "Проект Valhalla будет включён в основную ветку JDK"  +1 +/
Сообщение от morphe (?), 02-Авг-26, 03:59 
При этом на платформах что не могут атомарно писать 64 бита, например x32... Лимит будет ограничен 32 битами. Ну, хоть Integer[] оптимизирован будет.
Ответить | Правка | Наверх | Cообщить модератору

46. "Проект Valhalla будет включён в основную ветку JDK"  +3 +/
Сообщение от Смузихеб забывший пароль (?), 02-Авг-26, 10:20 
> 64 бита ... Лимит будет ограничен 32 битами

Вот это отлично и просто замечательно. Максимально платформонезависимо

Ответить | Правка | Наверх | Cообщить модератору

65. "Проект Valhalla будет включён в основную ветку JDK"  +/
Сообщение от morphe (?), 02-Авг-26, 16:01 
> Вот это отлично и просто замечательно. Максимально платформонезависимо

Так это ж просто оптимизация а не то на что ты можешь реально полагаться)

Ответить | Правка | Наверх | Cообщить модератору

77. "Проект Valhalla будет включён в основную ветку JDK"  +1 +/
Сообщение от Вася Пупкин (?), 02-Авг-26, 21:48 
write once, debug everywhere
Ответить | Правка | К родителю #46 | Наверх | Cообщить модератору

34. "Проект Valhalla будет включён в основную ветку JDK"  +/
Сообщение от Аноним (16), 02-Авг-26, 05:14 
> для того чтобы из нескольких потоков можно было переписывать элемент массива и при этом не получалось data race когда одно поле внутри Point переписало, а второе нет

Чел, попытайся читать не пятой точкой. Тебе прямо в первом предложении сказано "Introduce value objects, which are immutable". Ты понимаешь, что такое immutable?

Ответить | Правка | К родителю #32 | Наверх | Cообщить модератору

37. "Проект Valhalla будет включён в основную ветку JDK"  +/
Сообщение от morphe (?), 02-Авг-26, 06:09 
> Чел, попытайся читать не пятой точкой. Тебе прямо в первом предложении сказано
> "Introduce value objects, which are immutable". Ты понимаешь, что такое immutable?

Я говорю не про изменение поля внутри Point, а изменение элемента массива Point[]

...Что реализовано атомарным переписыванием всех полей

Ответить | Правка | Наверх | Cообщить модератору

71. "Проект Valhalla будет включён в основную ветку JDK"  +/
Сообщение от erifferfre (?), 02-Авг-26, 18:36 
Там сплющивание массивов в принципе работает? Когда я в последний раз смотрел "new Point[]" создавал обычный массив с ссылками и нужно было использовать какое-то другое апи.
Ответить | Правка | Наверх | Cообщить модератору

75. "Проект Valhalla будет включён в основную ветку JDK"  +/
Сообщение от morphe (?), 02-Авг-26, 19:00 
> Там сплющивание массивов в принципе работает? Когда я в последний раз смотрел
> "new Point[]" создавал обычный массив с ссылками и нужно было использовать
> какое-то другое апи.

Работает если Point - 64 бита

Однако там ещё null arrays какие-то есть, которые лимит 63 бита имеют... Однако я так понял оно на уровне языка недоступно

Ответить | Правка | Наверх | Cообщить модератору

18. "Проект Valhalla будет включён в основную ветку JDK"  –1 +/
Сообщение от penetrator (?), 01-Авг-26, 23:41 
> В данном примере "Point[]" теперь может хранить значения напрямую, а не ссылки на объекты.
Ответить | Правка | К родителю #6 | Наверх | Cообщить модератору

27. "Проект Valhalla будет включён в основную ветку JDK"  +2 +/
Сообщение от Аноним (6), 02-Авг-26, 02:34 
В данном да
https://openjdk.org/jeps/401
>Reference flattening must maintain the integrity of data. A flattened reference must always be read and written atomically, or it could become corrupted. On common hardware architectures, this limits the size of mutable fields that store flattened references to no more than 64 bits.
Ответить | Правка | Наверх | Cообщить модератору

8. "Проект Valhalla будет включён в основную ветку JDK"  –2 +/
Сообщение от Dzen Python (ok), 01-Авг-26, 22:04 
Украли у 1С, ужас
Ответить | Правка | К родителю #4 | Наверх | Cообщить модератору

10. "Проект Valhalla будет включён в основную ветку JDK"  +1 +/
Сообщение от Аноним (10), 01-Авг-26, 22:33 
а те к бэсика с паскалем, получается что тое у бэсика с паскалем
Ответить | Правка | Наверх | Cообщить модератору

36. Скрыто модератором  +/
Сообщение от Аноним (36), 02-Авг-26, 05:53 
Ответить | Правка | К родителю #4 | Наверх | Cообщить модератору

44. "Проект Valhalla будет включён в основную ветку JDK"  +1 +/
Сообщение от Анонисссм (?), 02-Авг-26, 10:02 
>Создатели явы изобрели структуры.

по факту это всё было много лет в лице подключаемых одной строчкой fastutils, колобок итд

Ответить | Правка | К родителю #4 | Наверх | Cообщить модератору

5. "Проект Valhalla будет включён в основную ветку JDK"  +4 +/
Сообщение от slavanap (?), 01-Авг-26, 21:56 
Добро пожаловать к C# struct.
Ответить | Правка | Наверх | Cообщить модератору

20. "Проект Valhalla будет включён в основную ветку JDK"  –1 +/
Сообщение от Brian (?), 01-Авг-26, 23:52 
Только как обычно в Java этим без слоя гов/del ломбока пользоваться невозможно будет, за нормальным апи придется опять в котлен идти
Ответить | Правка | Наверх | Cообщить модератору

47. "Проект Valhalla будет включён в основную ветку JDK"  –1 +/
Сообщение от Смузихеб забывший пароль (?), 02-Авг-26, 10:22 
> в котлен идти

как будто что-то плохое. Джава не-курильщика

Ответить | Правка | Наверх | Cообщить модератору

9. "Проект Valhalla будет включён в основную ветку JDK"  +4 +/
Сообщение от _ (??), 01-Авг-26, 22:09 
Имитация жизни.
Ответить | Правка | Наверх | Cообщить модератору

15. "Проект Valhalla будет включён в основную ветку JDK"  –4 +/
Сообщение от Аноним (15), 01-Авг-26, 23:27 
ну вот и нормальная реализация потихоньку выходит на сцену. не корявая наколенка типа сишарп стракт. всётаки джава оперирует баблом всего мира
Ответить | Правка | Наверх | Cообщить модератору

28. "Проект Valhalla будет включён в основную ветку JDK"  +/
Сообщение от Илья (??), 02-Авг-26, 02:37 
>  не корявая наколенка типа сишарп стракт

скорее наоборот. в дотнете виртуальная машина планировалась под структутры и дженерики, и там всё это уже лет 20 есть

Ответить | Правка | Наверх | Cообщить модератору

17. "Проект Valhalla будет включён в основную ветку JDK"  –3 +/
Сообщение от zionist (ok), 01-Авг-26, 23:41 
Теперь вместо раздувания по heap памяти получим раздувание по CPU и по стеку. Когда миллионы жабодевелоперов с непривычки начнут передавать value слассы куда угодно, то есть станут приумнажать копирование данных.
Ответить | Правка | Наверх | Cообщить модератору

45. "Проект Valhalla будет включён в основную ветку JDK"  +1 +/
Сообщение от Анонисссм (?), 02-Авг-26, 10:04 
>получим раздувание по CPU и по стеку

очередная экспертиза попеннета.


Это огромная разница для:

CPU cache;
SIMD;
скорости обхода.
4. Меньше cache misses ⭐⭐⭐⭐☆


Ответить | Правка | Наверх | Cообщить модератору

57. "Проект Valhalla будет включён в основную ветку JDK"  +/
Сообщение от zionist (ok), 02-Авг-26, 13:47 
>>получим раздувание по CPU и по стеку
> очередная экспертиза попеннета.

А что не так в том, что я сказал?

> Это огромная разница для:
>
> CPU cache;
> SIMD;
> скорости обхода.
> 4. Меньше cache misses ⭐⭐⭐⭐☆

Это всё хорошо, но в бэкэнде обычно просто данные переносят для обработки от туда сюда и обратно. Как тебе тут помогут CPU cache и прочие SIMD, если value классами начнут пользоваться бездумно где только можно?

Ответить | Правка | Наверх | Cообщить модератору

70. "Проект Valhalla будет включён в основную ветку JDK"  +/
Сообщение от Анонисссм (?), 02-Авг-26, 18:13 
>>>получим раздувание по CPU и по стеку
> А что не так в том, что я сказал?
> Это всё хорошо, но в бэкэнде обычно

что сделал не так - приплел бэк на последнем шаге. на java даже и субд пишут и много чего не из крудошлепства.
chatGPT кстати вполне делает оценку какие задачи и на сколько ускорятся и насколько меньше ОЗУ будут жрать.


Ответить | Правка | Наверх | Cообщить модератору

76. "Проект Valhalla будет включён в основную ветку JDK"  +/
Сообщение от Аноним (76), 02-Авг-26, 20:01 
Ты бы JEP хотя бы сам прочитал что ли и мотивацию всех этих приседаний. Там изначально постулируют, что цель всей этой катавасии длиной в 14 лет - это heap flattening. Ничего про аллокацию на стеке. Джава это и так умеет делать уже лет 10 как через escape analysis. Проблемой было то, что вся память в джаве - это огромная куча указателей в heap, и любой существующий на данный момент софт на джаве страдает от 2 вещей: 1) существующие сборщики мусора в jvm тратят много ресурсов на переадресацию указателей при дефрагментации кучи (компактификация) 2) сам механизм текущей работы JVM на основе ссылок порождает pointer chasing, что даёт тормоза просто при обращении через геттер к любому объекту внутри класса-обертки.
К слову, в том же Go объекты изначально были "плоскими", поэтому прекрасно живут с простым трехцветным сборщиком мусора, придуманным ещё Дийкстрой.
Ответить | Правка | К родителю #57 | Наверх | Cообщить модератору

85. "Проект Valhalla будет включён в основную ветку JDK"  +/
Сообщение от zionist (ok), 03-Авг-26, 03:00 
Я говорил про бездумное использование value классов, а не для чего их предлагают использовать в JEP.
Ответить | Правка | Наверх | Cообщить модератору

102. "Проект Valhalla будет включён в основную ветку JDK"  +/
Сообщение от Анонимущий (?), 03-Авг-26, 10:51 
Сами разработчики этой темы (Brian Getz и другие) в своих интервью говорили, что value-классом можно будет сделать все классы, для которых вызывается .equals(), а не сравнение ссылок и при этом неизменяемые поля. Ну то есть потенциальный выигрыш в производительности будет практически во всем, где данные гоняются туда-сюда в классах-обертках.
Ответить | Правка | Наверх | Cообщить модератору

107. "Проект Valhalla будет включён в основную ветку JDK"  +/
Сообщение от zionist (ok), 03-Авг-26, 12:35 
Подавляющее большинство программистов на Java не имеет опыта программирования с передачей по значению чего-то большего, чем примитивные типы. Я с этим столкнулся лично, когда решил перейти с Java на Go. При передаче больших классов по значению увеличивается копирование данных и нагрузка на стек. Просто так использовать value классы везде и всюду - это полное безумие. Они имеют смысл лишь в определённых случаях.
Ответить | Правка | Наверх | Cообщить модератору

111. "Проект Valhalla будет включён в основную ветку JDK"  +/
Сообщение от ohsiriusemail (?), 03-Авг-26, 14:04 
Обычным это и не потребуется, будут готовые библиотеки. В scala мы имеем иммутабельные case class и системы эффектом вроде Cats Effect/ZIO.
Ответить | Правка | Наверх | Cообщить модератору

119. "Проект Valhalla будет включён в основную ветку JDK"  +/
Сообщение от morphe (?), 03-Авг-26, 22:36 
> escape analysis

Что не гарантируется и работает через раз, что особенно наглядно заметно в любых играх на Java оперирующих структурами вроде Vector {float, float, float} где любая функция работающая с ними либо повторяет одну и ту же логику сотню раз с локальными переменными на стеке, либо пытаются полагаться на EA и в итоге долбятся об GC

Ответить | Правка | К родителю #76 | Наверх | Cообщить модератору

21. "Проект Valhalla будет включён в основную ветку JDK"  +7 +/
Сообщение от Аноним (21), 02-Авг-26, 00:03 
Тот самый момент, когда ребята, которые хвалились какие у них классные интерпретируемые/VM-языки, начинают заново изобретать велосипед, т.е. простые типы из компилируемых языков. Ибо так тупо оптимальнее.
Ответить | Правка | Наверх | Cообщить модератору

114. "Проект Valhalla будет включён в основную ветку JDK"  +/
Сообщение от Аноним (114), 03-Авг-26, 15:59 
Прям мою мысль словил. Ну видимо сильный протекционизм на рынке у Oracle.
Как не послушаю, так 1С прям фукака, а Java прям решение всех проблем.
Ответить | Правка | Наверх | Cообщить модератору

22. "Проект Valhalla будет включён в основную ветку JDK"  –9 +/
Сообщение от Аноним (22), 02-Авг-26, 00:43 
В оракле только пока ещё видимо не поняли что ничегл кроме раста не нужно. Всё, что сейчач написано на жаве может быть написано на расте и работать сильно лучше.
Ответить | Правка | Наверх | Cообщить модератору

23. "Проект Valhalla будет включён в основную ветку JDK"  +1 +/
Сообщение от Аноним (19), 02-Авг-26, 01:10 
Ну это как советовать перейти с мяса на колбасу.
Ответить | Правка | Наверх | Cообщить модератору

42. "Проект Valhalla будет включён в основную ветку JDK"  –2 +/
Сообщение от ПомидорИзДолины (?), 02-Авг-26, 09:19 
С переморожкнного мяса на свежую фермерскую колбасу.
Ответить | Правка | Наверх | Cообщить модератору

48. "Проект Valhalla будет включён в основную ветку JDK"  –2 +/
Сообщение от Смузихеб забывший пароль (?), 02-Авг-26, 10:24 
с соевого подпорченного мяса на пельмени но без мяса
Ответить | Правка | К родителю #23 | Наверх | Cообщить модератору

26. "Проект Valhalla будет включён в основную ветку JDK"  –1 +/
Сообщение от Аноним (15), 02-Авг-26, 02:00 
помнится судо на раст аккуратно переписывали и выявилась куча багов.
Ответить | Правка | К родителю #22 | Наверх | Cообщить модератору

30. "Проект Valhalla будет включён в основную ветку JDK"  +2 +/
Сообщение от Аноним (30), 02-Авг-26, 02:52 
Джава гораздо безопаснее раста.
Ответить | Правка | К родителю #22 | Наверх | Cообщить модератору

31. "Проект Valhalla будет включён в основную ветку JDK"  –6 +/
Сообщение от Аноним (31), 02-Авг-26, 03:54 
Джава "гораздо безопаснее" какого-нибудь C++. По сравнению с растом она только чуть-чуть более безопасна, но плата за это чуть-чуть - гигантская. Хреновый расход памяти, хреновая производительность, постоянное таскание JRE с собой, хреновая система типов, низкокачественная экосистема библиотек, и так далее.
Ответить | Правка | Наверх | Cообщить модератору

39. "Проект Valhalla будет включён в основную ветку JDK"  +5 +/
Сообщение от iZENemail (ok), 02-Авг-26, 08:21 
Для компиляции и сборки Rust 1.97 на FreeBSD не хватает 32 ГБ оперативной памяти, процесс сборки лезет в SWAP.
Для компиляции и сборки OpenJDK 26 достаточно 4 ГБ ОЗУ.
И что из них считается bloatware?
Ответить | Правка | Наверх | Cообщить модератору

43. "Проект Valhalla будет включён в основную ветку JDK"  +/
Сообщение от Аноним (-), 02-Авг-26, 09:41 
До этих не достучаться. Сами придумали что раст - серебряная пуля, панацея. Сами в это поверили... ведут себя как откровенные фанатики. Вот уж действительно маркер здравого смысла!
Ответить | Правка | Наверх | Cообщить модератору

60. "Проект Valhalla будет включён в основную ветку JDK"  +1 +/
Сообщение от Аноним (60), 02-Авг-26, 14:42 
А зачем их компилировать самому? В дистрибутиве нет разве?
Ответить | Правка | К родителю #39 | Наверх | Cообщить модератору

112. "Проект Valhalla будет включён в основную ветку JDK"  +1 +/
Сообщение от Аноним (112), 03-Авг-26, 14:24 
> Для компиляции и сборки Rust 1.97 на FreeBSD не хватает 32 ГБ оперативной памяти, процесс сборки лезет в SWAP.

Снизь количество процессов компиляции, не будет лезть в своп. Но тебе ж хочется все твои 16 ядер задействовать так? Выделяя по 2Гб каждому.

> Для компиляции и сборки OpenJDK 26 достаточно 4 ГБ ОЗУ.

Чтобы потом платить рантайм кост jit'а.

> И что из них считается bloatware?

Второе естественно. Компиляция занимается оптимизациями. В случае rust'а. В случае жабы она просто переводит блоат сорцов в другой формат, чтобы потом в рантайме разгребать.

Ответить | Правка | К родителю #39 | Наверх | Cообщить модератору

113. "Проект Valhalla будет включён в основную ветку JDK"  +2 +/
Сообщение от Аноним (113), 03-Авг-26, 15:09 
Зачем ты его сам собираешь?
Ответить | Правка | К родителю #39 | Наверх | Cообщить модератору

78. "Проект Valhalla будет включён в основную ветку JDK"  +/
Сообщение от Вася Пупкин (?), 02-Авг-26, 21:54 
ага, как же.. скажи это тредобезопасному коду, который валидируется растом на этапе компиляции
Ответить | Правка | К родителю #30 | Наверх | Cообщить модератору

86. "Проект Valhalla будет включён в основную ветку JDK"  +/
Сообщение от Аноним (86), 03-Авг-26, 04:33 
Ну такие себе гарантии если честно. Не в смысле плохие, а в смысле - мы тебе это гарантировали путем наложения жестких ограничений, которые даже валидный тред-сейф могут не допустить просто потому-что компилятор не может  это вычислить в компайлтайме.
Типичный пример из геймдева - ECS. Любой уважающий себя ecs фреймворк умеющий в многопоточность автоматически понимает что и где можно параллелить потому-что сам выстраивает граф зависимостей систем и их компонент, но полноценно эту инфу можно собрать только в рантайме, но раст то требует гарантий в компайлтайм, а потому увы, иди-ка, дружок, подключай unsafe.
В дотнете есть замечательный акторный фреймворк Orleans, для создания распределенных систем, где многопоточность решена опять же на уровне фреймворка и общение между акторами (грейнами) само по себе потокобезопасно (за счет внутренних очередей) и ты пишешь код в классическом однопоточном стиле.
Да и без всего вышеперечисленного за свою жизнь написал тонны многопоточного кода что на c++ что на c#. И 99.99% возможных проблем ловилось, вы не поверите, банальным написанием тестов.
И вот поэтому я считаю все эти "гарантии потокобезопасности" раста оверхайпом. Зачем добровольно ограничивать себя рамками заданными примитивным компилятором? Лень написать несколько дополнительных тестов? Это же смешно, особенно в эпоху ИИ.
Ответить | Правка | Наверх | Cообщить модератору

95. "Проект Valhalla будет включён в основную ветку JDK"  +1 +/
Сообщение от Вася Пупкин (?), 03-Авг-26, 10:09 
Комптлятор это замена тестов, а помощник и их дополнение. Притом что тесты совсем не гарантируют корректность всех возможных веток исполнения, а очевидно только тех, что есть в тестах.
Да, класс программ, которые можно написать на ржавом меньше, но многие считают это приемлемой платой. Плюс есть побочный эффект об обязательности осмысления структуры программы. Неявно в плюсах и жабе ты также поддерживаешь похожие инварианты, но тут это проще - ща тебя их проверят компилятор.
Ответить | Правка | Наверх | Cообщить модератору

120. "Проект Valhalla будет включён в основную ветку JDK"  +/
Сообщение от morphe (?), 03-Авг-26, 22:39 
> Типичный пример из геймдева - ECS. Любой уважающий себя ecs фреймворк умеющий в многопоточность автоматически понимает что и где можно параллелить потому-что сам выстраивает граф зависимостей систем и их компонент, но полноценно эту инфу можно собрать только в рантайме, но раст то требует гарантий в компайлтайм, а потому увы, иди-ка, дружок, подключай unsafe.

А теперь посмотри на bevy, где зависимости систем как раз выстраиваются из системы типов

&mut Health - система изменяет Health, такие системы нельзя запускать параллельно
&Health - система читает Health, такие можно

И это работает намного лучше и приятнее других ECS с которыми я работал

Ответить | Правка | К родителю #86 | Наверх | Cообщить модератору

50. "Проект Valhalla будет включён в основную ветку JDK"  +1 +/
Сообщение от Человек обыкновенный (?), 02-Авг-26, 11:18 
Сейчас нейронки делают на Си то, ради чего руст придумали, и при этом с нулевыми затратами времени выполнения. Современные нейронки сделали старинный Си опять актуальным.
Ответить | Правка | К родителю #22 | Наверх | Cообщить модератору

56. "Проект Valhalla будет включён в основную ветку JDK"  –1 +/
Сообщение от Аноним (3), 02-Авг-26, 13:12 
Если уж на то пошло, то к такому коду ты не можешь притронуться своей рукой, а то опять дырка получится. Понять его тоже не так просто бывает.
Вот и получается, что уже и не важно на чем написано, хоть на asm. Нейронка написала - нейронка будет рефакторить несколько версий спустя (версий самой нейронки).
Ответить | Правка | Наверх | Cообщить модератору

62. "Проект Valhalla будет включён в основную ветку JDK"  +1 +/
Сообщение от Вася Пупкин (?), 02-Авг-26, 14:52 
Согласен, в принципе Раст уже не нужен, пишешь на С а нейронки все проверят, сразу скажут где баги
Ответить | Правка | К родителю #50 | Наверх | Cообщить модератору

66. "Проект Valhalla будет включён в основную ветку JDK"  –3 +/
Сообщение от BunRustZigBuzCruller (?), 02-Авг-26, 16:17 
Пупкинз, зачем писать на С с помощью ИИ, когда можно на Расте?
Ответить | Правка | Наверх | Cообщить модератору

68. "Проект Valhalla будет включён в основную ветку JDK"  +2 +/
Сообщение от Вася Пупкин (?), 02-Авг-26, 18:10 
Зачем вообще нужен Раст если есть С ???? Языку С уже более 50 лет, мало ИТ технологии так долго живут, С очень прост поэтому и выжил, Раст сложен
Ответить | Правка | Наверх | Cообщить модератору

80. "Проект Valhalla будет включён в основную ветку JDK"  –1 +/
Сообщение от Настоящий Вася Пупкин (?), 02-Авг-26, 22:01 
С выжил потому что очень нужен был в свое время как переносимый ассемблер. Сейчас время прошло и люди переосознали многие подходы и практики. Плюс компьютеры стали куда мощнее и способны выполнять больше работы за людей(и надежнее). Кто это не осознает - самый настоящий луддит.
Ответить | Правка | Наверх | Cообщить модератору

91. "Проект Valhalla будет включён в основную ветку JDK"  +/
Сообщение от Анон1110м (?), 03-Авг-26, 09:44 
Pascal лучше C и Rust вместе взятых.
Ответить | Правка | К родителю #68 | Наверх | Cообщить модератору

104. Скрыто модератором  +/
Сообщение от Аноним (104), 03-Авг-26, 12:22 
Ответить | Правка | Наверх | Cообщить модератору

115. "Проект Valhalla будет включён в основную ветку JDK"  +/
Сообщение от Вася Пупкин (?), 03-Авг-26, 16:07 
В Паскале очень длинные keyword-ы, програмы получается громоздими
Пример:

Begin

End

В место

{

}

И это как минимум

Ответить | Правка | К родителю #91 | Наверх | Cообщить модератору

79. "Проект Valhalla будет включён в основную ветку JDK"  +/
Сообщение от Настоящий Вася Пупкин (?), 02-Авг-26, 21:57 
на расте токенов будет в 10ки раз меньше сжигаться, потому как более выразительно и больше контекста и ограничений на программу. плюс понятные хинты компилятора как править ошибки.
Ответить | Правка | К родителю #62 | Наверх | Cообщить модератору

84. "Проект Valhalla будет включён в основную ветку JDK"  +/
Сообщение от Анимешник за 30 (-), 03-Авг-26, 00:08 
Тем кто пишет коммерческий код наплевать на токены, за у них эксклюзивные соглашения с ai компаниями. Всякие васи пупкины со своими хеллоувротами никого не волнуют.
Ответить | Правка | Наверх | Cообщить модератору

96. "Проект Valhalla будет включён в основную ветку JDK"  +/
Сообщение от Вася Пупкин (?), 03-Авг-26, 10:15 
Разброс компаний колоссальный. Но даже весь крупнейший российский бигтех лимиты выставляет. Потому как там особенно хорошо умеют считать деньги
Ответить | Правка | Наверх | Cообщить модератору

82. "Проект Valhalla будет включён в основную ветку JDK"  +/
Сообщение от Анимешник за 30 (-), 03-Авг-26, 00:04 
Python хватит для 99% юзерспейсных программ, держу в курсе
Ответить | Правка | К родителю #22 | Наверх | Cообщить модератору

92. "Проект Valhalla будет включён в основную ветку JDK"  +/
Сообщение от Анон1110м (?), 03-Авг-26, 09:47 
И они будут подтормаживать, занимать много процессорноого времени и в некоторых случаях тянуть зависимостей на сотни мегабайт. Проверено за то время что я пользовался Linux. Deluge и Gajim там всякие.
Ответить | Правка | Наверх | Cообщить модератору

93. "Проект Valhalla будет включён в основную ветку JDK"  +/
Сообщение от Аноним (93), 03-Авг-26, 09:58 
99% пользователей не хотят юзерспейс на питоне.
Ответить | Правка | К родителю #82 | Наверх | Cообщить модератору

29. "Проект Valhalla будет включён в основную ветку JDK"  +/
Сообщение от Илья (??), 02-Авг-26, 02:48 
Как реализованы дженерики с структурами?
При каких условиях будет упаковка?

Столько неудобных вопросиков, на которые разработчики сишарпа отвечали ДО разработки языка

Ответить | Правка | Наверх | Cообщить модератору

108. "Проект Valhalla будет включён в основную ветку JDK"  +/
Сообщение от zionist (ok), 03-Авг-26, 12:42 
> Как реализованы дженерики с структурами?

Скорее всего так же, как и прежде - как синтаксический сахар на этапе компиляции с type erasure в рантайме.

Ответить | Правка | Наверх | Cообщить модератору

49. "Проект Valhalla будет включён в основную ветку JDK"  +/
Сообщение от Смузихеб забывший пароль (?), 02-Авг-26, 10:27 
"не имеют идентичности (в отличие от обычных объектов, два экземпляра с одинаковыми полями считаются равными)"
-Мы сделали максимально громоздко, сложно, зато типо секурно и теперь - да, срочно допиливаем чтобы было просто ведь сильно секурно не получилось )
Ответить | Правка | Наверх | Cообщить модератору

51. "Проект Valhalla будет включён в основную ветку JDK"  +/
Сообщение от Аноним (51), 02-Авг-26, 11:33 
Кода уже в яве указатели появятся
Ответить | Правка | Наверх | Cообщить модератору

61. "Проект Valhalla будет включён в основную ветку JDK"  +1 +/
Сообщение от Вася Пупкин (?), 02-Авг-26, 14:50 
Они с самого начала в языке, пример:

List list = new ArrayList();

list <----- это указатель на кусок ОЗУ в котором хранится непосредственно ArrayList

Ответить | Правка | Наверх | Cообщить модератору

67. "Проект Valhalla будет включён в основную ветку JDK"  +/
Сообщение от анонец (?), 02-Авг-26, 16:27 
Скорей всего, он имел в виду адресную арифметику, как в Си
Ответить | Правка | Наверх | Cообщить модератору

69. "Проект Valhalla будет включён в основную ветку JDK"  +/
Сообщение от Вася Пупкин (?), 02-Авг-26, 18:11 
В таком случае вместо Явы лучше С++ использовать
Ответить | Правка | Наверх | Cообщить модератору

97. "Проект Valhalla будет включён в основную ветку JDK"  +/
Сообщение от Вася Пупкин (?), 03-Авг-26, 10:17 
s/C++/rust/
Ответить | Правка | Наверх | Cообщить модератору

74. "Проект Valhalla будет включён в основную ветку JDK"  +/
Сообщение от Анонимemail (74), 02-Авг-26, 18:41 
Адресная арифметика? В жабе? Щитоблджад? На кой ляг оно там вообще надо?
Ответить | Правка | К родителю #67 | Наверх | Cообщить модератору

88. "Проект Valhalla будет включён в основную ветку JDK"  +/
Сообщение от Аноним (88), 03-Авг-26, 05:11 
Чтобы можно было выходить за границы и делать всякие use after free вместе с double free?
Ответить | Правка | К родителю #51 | Наверх | Cообщить модератору

105. Скрыто модератором  +/
Сообщение от Аноним (104), 03-Авг-26, 12:24 
Ответить | Правка | К родителю #51 | Наверх | Cообщить модератору

63. "Проект Valhalla будет включён в основную ветку JDK"  –1 +/
Сообщение от Аноним (63), 02-Авг-26, 15:22 
Скучаю по временам, когда меня волновали подобные изменения. Теперь против своей воли (чтобы меня рыночек не порешал) использую ии агент, и уже не думаю о таких мелочах. А хотелось бы как раньше
Ответить | Правка | Наверх | Cообщить модератору

64. "Проект Valhalla будет включён в основную ветку JDK"  –3 +/
Сообщение от BunRustZigBuzCruller (?), 02-Авг-26, 15:37 
Вовремя я сбежал на TypeScript.
Ответить | Правка | Наверх | Cообщить модератору

109. "Проект Valhalla будет включён в основную ветку JDK"  +/
Сообщение от zionist (ok), 03-Авг-26, 12:44 
> Вовремя я сбежал на TypeScript.

Чем этот костыль к богомерзскому JavaScript лучше?

Ответить | Правка | Наверх | Cообщить модератору

81. "Проект Valhalla будет включён в основную ветку JDK"  +2 +/
Сообщение от Анимешник за 30 (-), 03-Авг-26, 00:02 
Чёт не вкуриваю, нафига это надо. Возможностей Java 8 выше крыши для любого проекта, а докинуть фич можно через сторонние либы. Лучше бы прокачивали саму жаву-машину, а не занимались всякой дичью.
Ответить | Правка | Наверх | Cообщить модератору

94. "Проект Valhalla будет включён в основную ветку JDK"  +/
Сообщение от Аноним (93), 03-Авг-26, 10:00 
Чтобы усложнить спеку, создать несовместимости и тд. Чистый EEE.
Ответить | Правка | Наверх | Cообщить модератору

98. "Проект Valhalla будет включён в основную ветку JDK"  +/
Сообщение от Вася Пупкин (?), 03-Авг-26, 10:21 
Потому что не осознают что нейрокод на расте и простихоспади го - работает искаропки сильно быстрее. пытаются хоть тут не проиграть гонку. И по итогу вместо накопленных сбоку вот таких вот "фич" проще будет нативно на раст переходить
Ответить | Правка | К родителю #81 | Наверх | Cообщить модератору

99. "Проект Valhalla будет включён в основную ветку JDK"  +/
Сообщение от Анонимущий (?), 03-Авг-26, 10:25 
Это и есть прокачка джава машины. Ты что, думаешь они новых ключевых слов накидали тупо, которые просто в тот же байткод будут компилироваться, без изменений в самой JVM?
Ответить | Правка | К родителю #81 | Наверх | Cообщить модератору

87. "Проект Valhalla будет включён в основную ветку JDK"  +1 +/
Сообщение от хрю (?), 03-Авг-26, 05:06 
бессмысленная для типичного применения явы фигня. во времена java me это имело смысл, а чичас нет.
Ответить | Правка | Наверх | Cообщить модератору

100. "Проект Valhalla будет включён в основную ветку JDK"  +/
Сообщение от Анонимущий (?), 03-Авг-26, 10:32 
1) Это сильно ускорит работу всяческих алгоритмов-числодробилок,  например, в финтех решениях.
2) Это сильно снизит уровень тормозов при работе с DTO и JDBC ResultSet-ами. На тех же ресурсах выдерживаемый RPS на эндпоинт будет выше.
3) Это здорово снизит аппетиты текущих сборщиков мусора, которые на шаге компактификации во всей хип-области переназначают указатели, когда занимаются дефрагментацией памяти.
Ответить | Правка | Наверх | Cообщить модератору

103. "Проект Valhalla будет включён в основную ветку JDK"  +1 +/
Сообщение от хрю (?), 03-Авг-26, 11:39 
> 1) Это сильно ускорит работу всяческих алгоритмов-числодробилок,  например, в финтех решениях.

нет.


> 2) Это сильно снизит уровень тормозов при работе с DTO и JDBC
> ResultSet-ами. На тех же ресурсах выдерживаемый RPS на эндпоинт будет выше.

вообще нет.

> 3) Это здорово снизит аппетиты текущих сборщиков мусора, которые на шаге компактификации
> во всей хип-области переназначают указатели, когда занимаются дефрагментацией памяти.

нет.


не надо фантазий. запусти java приложение под профилятором и посмотри что кушает память, какие функции чаще всего вызываются и что больше всего дефрагментируется.

Ответить | Правка | Наверх | Cообщить модератору

89. "Проект Valhalla будет включён в основную ветку JDK"  +/
Сообщение от Аноним (89), 03-Авг-26, 07:19 
я один вижу обычный сахар для упакованной структуры с нативный integer?
Ответить | Правка | Наверх | Cообщить модератору

101. "Проект Valhalla будет включён в основную ветку JDK"  +/
Сообщение от Анонимущий (?), 03-Авг-26, 10:43 
туда (в планах) будут упаковываться вообще все примитивы и вложенные value классы. Как в С/С++ - если одно из полей структуры - это другая структура, то при компиляции это в любом случае в плане memory layout развернется в плоскую структуру c косвенной адресацией полей формата "база + смещение".
Ответить | Правка | Наверх | Cообщить модератору

106. Скрыто модератором  +/
Сообщение от Аноним (104), 03-Авг-26, 12:25 
Ответить | Правка | К родителю #89 | Наверх | Cообщить модератору

116. "Проект Valhalla будет включён в основную ветку JDK"  +/
Сообщение от nikodllemail (ok), 03-Авг-26, 18:15 
Это кстати открывает дорогу целому ряду проектов для включени в JVM, первым из которых думаю будет Vector API
Ответить | Правка | Наверх | Cообщить модератору

117. "Проект Valhalla будет включён в основную ветку JDK"  +/
Сообщение от Аноним (117), 03-Авг-26, 20:11 
Жаба все жиреет и жиреет.
Ответить | Правка | Наверх | Cообщить модератору

118. "Проект Valhalla будет включён в основную ветку JDK"  +/
Сообщение от BrainFucker (ok), 03-Авг-26, 22:04 
> в отличие от обычных объектов, два экземпляра с одинаковыми полями считаются равными)

А нельзя было просто добавить магический метод по аналогии с питоновским __eq__() и пусть разработчики сами решают как объекты их классов должны сравниваться?

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2026 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру