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

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

Проект Valhalla будет включён в основную ветку JDK

01.08.2026 21:42 (MSK)

Лоис Фолтан (Lois Foltan) из компании Oracle подтвердила, что реализация предложения JEP 401 ("Value Classes and Objects") будет интегрирована в основной репозиторий OpenJDK и запланирована для включение в релиз JDK 28, намеченный на март 2027 года, в качестве отключённой по умолчанию экспериментальной функции.

Ключевая идея проекта Valhalla: "код как класс, работает как int". Проектом вводится понятие классов значений (Value classes), позволяющих создавать типы, которые:

  • не имеют идентичности (в отличие от обычных объектов, два экземпляра с одинаковыми полями считаются равными).
  • не могут быть синхронизированы (synchronized вызывает IdentityException).
  • могут быть скаляризованы (разложены на поля без выделения памяти) или выровнены в массивах и полях (данные хранятся плотно и последовательно).

Синтаксис подразумевает использование нового ключевого слова "value":


   value class Point {
       final int x;
       final int y;
       Point(int x, int y) { this.x = x; this.y = y; }
   }

В данном примере "Point[]" теперь может хранить значения напрямую, а не ссылки на объекты.

  1. Главная ссылка к новости (https://www.jvm-weekly.com/p/p...)
  2. OpenNews: Выпуск Java SE 26 и OpenJDK 26. Проект по интеграции поддержки JavaScript и Python в JVM
  3. OpenNews: Выпуск Java SE 25 LTS и OpenJDK 25
  4. OpenNews: Доступна платформа Jakarta EE 11, продолжающая развитие Java EE
  5. OpenNews: Выпуск Java SE 24 и OpenJDK 24
Автор новости: Аноним
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/66010-java
Ключевые слова: java, jdk
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (106) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.2, Аноним (2), 21:46, 01/08/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    круто.
     
     
  • 2.14, Аноним (14), 23:25, 01/08/2026 [^] [^^] [^^^] [ответить]  
  • –6 +/
    Только а зачем, если на уровне компилятора можно было отлавливать все что можно оптимизировать и обрабатывать под капотом? А для валидаций в java и без этого много инструментов.
     
     
  • 3.58, Аноним (58), 14:04, 02/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Потому и нужно, что на уровне комплиятора не решить проблему. В Java большая часть функциональности - это JVM. Да, комплиятор может приукрасить, скрыть сложности, но принципы хранения данных опеределяет сама JVM. И если у неё нет подходящих фич, то хоть выворачивай компилятор наизнанку - он ничего поделать не сможет.
     
  • 2.19, Аноним (19), 23:48, 01/08/2026 [^] [^^] [^^^] [ответить]  
  • +17 +/
    Они изобрели паскалевский record!
     
     
  • 3.55, Аноним (55), 12:46, 02/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Интересно, у них генерики всё ещё упаковываются в object или уже победили?
    Смешно было, когда «отсталый клон от мелкомягких» уже на версии три обходил по куче аспектов, а с четвёрки ушёл в отрыв.
    (потом пришли индусы-явисты и всё скатилось, но это уже другая история)
     
     
  • 4.59, Аноним (58), 14:08, 02/08/2026 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Обратная совместимость в java - это не шутки. У меня до сих пор есть код, который под Java 1.4 написан. И работает же, не требует переписывать.

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

     
     
  • 5.123, morphe (?), 03:24, 06/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > И работает же, не требует переписывать.

    В общем случае про жаву это неправда

    Совместимость на уровне исходных кодов они уже много раз ломали (Потому что гарантии совместимости только на уровне байткода), да и в целом большинство высокопроизводительного кода часто полагается на реализацию кишков, и всякие netty ломаются с каждым большим релизом

     
  • 4.73, erifferfre (?), 18:41, 02/08/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Конечно упаковываются :)

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

     

  • 1.3, Аноним (3), 21:52, 01/08/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    fyi 12 лет разрабатывают.
     
     
  • 2.7, Dzen Python (ok), 22:03, 01/08/2026 [^] [^^] [^^^] [ответить]  
  • +7 +/
    Ну, зато достаточно стабильно для прода
     

  • 1.4, trolleybus (ok), 21:53, 01/08/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +19 +/
    Создатели явы изобрели структуры... Скоро перегрузку операторофф придумают
     
     
  • 2.6, Аноним (6), 22:02, 01/08/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Не изобрели. Point из трёх интов будет ссылкой
     
     
  • 3.16, Аноним (16), 23:33, 01/08/2026 [^] [^^] [^^^] [ответить]  
  • +4 +/
    и плевать, что прямо в новости написано "В данном примере "Point[]" теперь может хранить значения напрямую, а не ссылки на объекты. "
     
     
  • 4.24, Аноним (6), 01:30, 02/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Поинт из двух тестов да, а из трёх - нет. Атомарность при изменении объекта в джаве ломать не будут.
     
     
  • 5.25, Аноним (6), 01:30, 02/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Интов, а не тестов, блин.
     
  • 4.32, morphe (?), 03:57, 02/08/2026 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Там лимит 64 бита для прямого хранения

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

     
     
  • 5.33, morphe (?), 03:59, 02/08/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    При этом на платформах что не могут атомарно писать 64 бита, например x32... Лимит будет ограничен 32 битами. Ну, хоть Integer[] оптимизирован будет.
     
     
  • 6.46, Смузихеб забывший пароль (?), 10:20, 02/08/2026 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > 64 бита ... Лимит будет ограничен 32 битами

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

     
     
  • 7.65, morphe (?), 16:01, 02/08/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Вот это отлично и просто замечательно. Максимально платформонезависимо

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

     
  • 7.77, Вася Пупкин (?), 21:48, 02/08/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    write once, debug everywhere
     
  • 5.34, Аноним (16), 05:14, 02/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > для того чтобы из нескольких потоков можно было переписывать элемент массива и при этом не получалось data race когда одно поле внутри Point переписало, а второе нет

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

     
     
  • 6.37, morphe (?), 06:09, 02/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Чел, попытайся читать не пятой точкой. Тебе прямо в первом предложении сказано
    > "Introduce value objects, which are immutable". Ты понимаешь, что такое immutable?

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

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

     
     
  • 7.71, erifferfre (?), 18:36, 02/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Там сплющивание массивов в принципе работает? Когда я в последний раз смотрел "new Point[]" создавал обычный массив с ссылками и нужно было использовать какое-то другое апи.
     
     
  • 8.75, morphe (?), 19:00, 02/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Работает если Point - 64 бита Однако там ещё null arrays какие-то есть, которые ... текст свёрнут, показать
     
  • 3.18, penetrator (?), 23:41, 01/08/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > В данном примере "Point[]" теперь может хранить значения напрямую, а не ссылки на объекты.
     
     
  • 4.27, Аноним (6), 02:34, 02/08/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    В данном да
    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.
     
  • 2.8, Dzen Python (ok), 22:04, 01/08/2026 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Украли у 1С, ужас
     
     
  • 3.10, Аноним (10), 22:33, 01/08/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    а те к бэсика с паскалем, получается что тое у бэсика с паскалем
     
  • 2.36, Аноним (36), 05:53, 02/08/2026 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 2.44, Анонисссм (?), 10:02, 02/08/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >Создатели явы изобрели структуры.

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

     

  • 1.5, slavanap (?), 21:56, 01/08/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    Добро пожаловать к C# struct.
     
     
  • 2.20, Brian (?), 23:52, 01/08/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Только как обычно в Java этим без слоя гов/del ломбока пользоваться невозможно будет, за нормальным апи придется опять в котлен идти
     
     
  • 3.47, Смузихеб забывший пароль (?), 10:22, 02/08/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > в котлен идти

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

     

  • 1.9, _ (??), 22:09, 01/08/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    Имитация жизни.
     
  • 1.15, Аноним (15), 23:27, 01/08/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    ну вот и нормальная реализация потихоньку выходит на сцену. не корявая наколенка типа сишарп стракт. всётаки джава оперирует баблом всего мира
     
     
  • 2.28, Илья (??), 02:37, 02/08/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >  не корявая наколенка типа сишарп стракт

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

     

  • 1.17, zionist (ok), 23:41, 01/08/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    Теперь вместо раздувания по heap памяти получим раздувание по CPU и по стеку. Когда миллионы жабодевелоперов с непривычки начнут передавать value слассы куда угодно, то есть станут приумнажать копирование данных.
     
     
  • 2.45, Анонисссм (?), 10:04, 02/08/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >получим раздувание по CPU и по стеку

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


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

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


     
     
  • 3.57, zionist (ok), 13:47, 02/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >>получим раздувание по CPU и по стеку
    > очередная экспертиза попеннета.

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

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

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

     
     
  • 4.70, Анонисссм (?), 18:13, 02/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >>>получим раздувание по CPU и по стеку
    > А что не так в том, что я сказал?
    > Это всё хорошо, но в бэкэнде обычно

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


     
  • 4.76, Аноним (76), 20:01, 02/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Ты бы JEP хотя бы сам прочитал что ли и мотивацию всех этих приседаний Там изна... большой текст свёрнут, показать
     
     
  • 5.85, zionist (ok), 03:00, 03/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Я говорил про бездумное использование value классов, а не для чего их предлагают использовать в JEP.
     
     
  • 6.102, Анонимущий (?), 10:51, 03/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Сами разработчики этой темы (Brian Getz и другие) в своих интервью говорили, что value-классом можно будет сделать все классы, для которых вызывается .equals(), а не сравнение ссылок и при этом неизменяемые поля. Ну то есть потенциальный выигрыш в производительности будет практически во всем, где данные гоняются туда-сюда в классах-обертках.
     
     
  • 7.107, zionist (ok), 12:35, 03/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Подавляющее большинство программистов на Java не имеет опыта программирования с передачей по значению чего-то большего, чем примитивные типы. Я с этим столкнулся лично, когда решил перейти с Java на Go. При передаче больших классов по значению увеличивается копирование данных и нагрузка на стек. Просто так использовать value классы везде и всюду - это полное безумие. Они имеют смысл лишь в определённых случаях.
     
     
  • 8.111, ohsirius (?), 14:04, 03/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Обычным это и не потребуется, будут готовые библиотеки В scala мы имеем иммутаб... текст свёрнут, показать
     
  • 5.119, morphe (?), 22:36, 03/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > escape analysis

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

     

  • 1.21, Аноним (21), 00:03, 02/08/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +6 +/
    Тот самый момент, когда ребята, которые хвалились какие у них классные интерпретируемые/VM-языки, начинают заново изобретать велосипед, т.е. простые типы из компилируемых языков. Ибо так тупо оптимальнее.
     
     
  • 2.114, Аноним (114), 15:59, 03/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Прям мою мысль словил. Ну видимо сильный протекционизм на рынке у Oracle.
    Как не послушаю, так 1С прям фукака, а Java прям решение всех проблем.
     

  • 1.22, Аноним (22), 00:43, 02/08/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –10 +/
    В оракле только пока ещё видимо не поняли что ничегл кроме раста не нужно. Всё, что сейчач написано на жаве может быть написано на расте и работать сильно лучше.
     
     
  • 2.23, Аноним (19), 01:10, 02/08/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Ну это как советовать перейти с мяса на колбасу.
     
     
  • 3.42, ПомидорИзДолины (?), 09:19, 02/08/2026 [^] [^^] [^^^] [ответить]  
  • –2 +/
    С переморожкнного мяса на свежую фермерскую колбасу.
     
  • 3.48, Смузихеб забывший пароль (?), 10:24, 02/08/2026 [^] [^^] [^^^] [ответить]  
  • –2 +/
    с соевого подпорченного мяса на пельмени но без мяса
     
  • 2.26, Аноним (15), 02:00, 02/08/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    помнится судо на раст аккуратно переписывали и выявилась куча багов.
     
  • 2.30, Аноним (30), 02:52, 02/08/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Джава гораздо безопаснее раста.
     
     
  • 3.31, Аноним (31), 03:54, 02/08/2026 [^] [^^] [^^^] [ответить]  
  • –5 +/
    Джава "гораздо безопаснее" какого-нибудь C++. По сравнению с растом она только чуть-чуть более безопасна, но плата за это чуть-чуть - гигантская. Хреновый расход памяти, хреновая производительность, постоянное таскание JRE с собой, хреновая система типов, низкокачественная экосистема библиотек, и так далее.
     
     
  • 4.39, iZEN (ok), 08:21, 02/08/2026 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Для компиляции и сборки Rust 1.97 на FreeBSD не хватает 32 ГБ оперативной памяти, процесс сборки лезет в SWAP.
    Для компиляции и сборки OpenJDK 26 достаточно 4 ГБ ОЗУ.
    И что из них считается bloatware?
     
     
  • 5.43, Аноним (-), 09:41, 02/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    До этих не достучаться. Сами придумали что раст - серебряная пуля, панацея. Сами в это поверили... ведут себя как откровенные фанатики. Вот уж действительно маркер здравого смысла!
     
  • 5.60, Аноним (60), 14:42, 02/08/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    А зачем их компилировать самому? В дистрибутиве нет разве?
     
  • 5.112, Аноним (112), 14:24, 03/08/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Для компиляции и сборки Rust 1.97 на FreeBSD не хватает 32 ГБ оперативной памяти, процесс сборки лезет в SWAP.

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

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

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

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

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

     
  • 5.113, Аноним (113), 15:09, 03/08/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Зачем ты его сам собираешь?
     
  • 3.78, Вася Пупкин (?), 21:54, 02/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    ага, как же.. скажи это тредобезопасному коду, который валидируется растом на этапе компиляции
     
     
  • 4.86, Аноним (86), 04:33, 03/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Ну такие себе гарантии если честно Не в смысле плохие, а в смысле - мы тебе это... большой текст свёрнут, показать
     
     
  • 5.95, Вася Пупкин (?), 10:09, 03/08/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Комптлятор это замена тестов, а помощник и их дополнение. Притом что тесты совсем не гарантируют корректность всех возможных веток исполнения, а очевидно только тех, что есть в тестах.
    Да, класс программ, которые можно написать на ржавом меньше, но многие считают это приемлемой платой. Плюс есть побочный эффект об обязательности осмысления структуры программы. Неявно в плюсах и жабе ты также поддерживаешь похожие инварианты, но тут это проще - ща тебя их проверят компилятор.
     
  • 5.120, morphe (?), 22:39, 03/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Типичный пример из геймдева - ECS. Любой уважающий себя ecs фреймворк умеющий в многопоточность автоматически понимает что и где можно параллелить потому-что сам выстраивает граф зависимостей систем и их компонент, но полноценно эту инфу можно собрать только в рантайме, но раст то требует гарантий в компайлтайм, а потому увы, иди-ка, дружок, подключай unsafe.

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

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

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

     
  • 2.50, Человек обыкновенный (?), 11:18, 02/08/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Сейчас нейронки делают на Си то, ради чего руст придумали, и при этом с нулевыми затратами времени выполнения. Современные нейронки сделали старинный Си опять актуальным.
     
     
  • 3.56, Аноним (3), 13:12, 02/08/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Если уж на то пошло, то к такому коду ты не можешь притронуться своей рукой, а то опять дырка получится. Понять его тоже не так просто бывает.
    Вот и получается, что уже и не важно на чем написано, хоть на asm. Нейронка написала - нейронка будет рефакторить несколько версий спустя (версий самой нейронки).
     
  • 3.62, Вася Пупкин (?), 14:52, 02/08/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Согласен, в принципе Раст уже не нужен, пишешь на С а нейронки все проверят, сразу скажут где баги
     
     
  • 4.66, BunRustZigBuzCruller (?), 16:17, 02/08/2026 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Пупкинз, зачем писать на С с помощью ИИ, когда можно на Расте?
     
     
  • 5.68, Вася Пупкин (?), 18:10, 02/08/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Зачем вообще нужен Раст если есть С ???? Языку С уже более 50 лет, мало ИТ технологии так долго живут, С очень прост поэтому и выжил, Раст сложен
     
     
  • 6.80, Настоящий Вася Пупкин (?), 22:01, 02/08/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    С выжил потому что очень нужен был в свое время как переносимый ассемблер. Сейчас время прошло и люди переосознали многие подходы и практики. Плюс компьютеры стали куда мощнее и способны выполнять больше работы за людей(и надежнее). Кто это не осознает - самый настоящий луддит.
     
  • 6.91, Анон1110м (?), 09:44, 03/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Pascal лучше C и Rust вместе взятых.
     
     
  • 7.104, Аноним (104), 12:22, 03/08/2026 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 7.115, Вася Пупкин (?), 16:07, 03/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    В Паскале очень длинные keyword-ы, програмы получается громоздими
    Пример:

    Begin

    End

    В место

    {

    }

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

     
     
  • 8.122, Анон1110м (?), 13:21, 04/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    begin oldKey key if assigned OnKeyDown then begin OnKeyDown self,key,... текст свёрнут, показать
     
  • 4.79, Настоящий Вася Пупкин (?), 21:57, 02/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    на расте токенов будет в 10ки раз меньше сжигаться, потому как более выразительно и больше контекста и ограничений на программу. плюс понятные хинты компилятора как править ошибки.
     
     
  • 5.84, Анимешник за 30 (-), 00:08, 03/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Тем кто пишет коммерческий код наплевать на токены, за у них эксклюзивные соглашения с ai компаниями. Всякие васи пупкины со своими хеллоувротами никого не волнуют.
     
     
  • 6.96, Вася Пупкин (?), 10:15, 03/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Разброс компаний колоссальный. Но даже весь крупнейший российский бигтех лимиты выставляет. Потому как там особенно хорошо умеют считать деньги
     
  • 2.82, Анимешник за 30 (-), 00:04, 03/08/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Python хватит для 99% юзерспейсных программ, держу в курсе
     
     
  • 3.92, Анон1110м (?), 09:47, 03/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    И они будут подтормаживать, занимать много процессорноого времени и в некоторых случаях тянуть зависимостей на сотни мегабайт. Проверено за то время что я пользовался Linux. Deluge и Gajim там всякие.
     
  • 3.93, Аноним (93), 09:58, 03/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    99% пользователей не хотят юзерспейс на питоне.
     

  • 1.29, Илья (??), 02:48, 02/08/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Как реализованы дженерики с структурами?
    При каких условиях будет упаковка?

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

     
     
  • 2.108, zionist (ok), 12:42, 03/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Как реализованы дженерики с структурами?

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

     

  • 1.49, Смузихеб забывший пароль (?), 10:27, 02/08/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    "не имеют идентичности (в отличие от обычных объектов, два экземпляра с одинаковыми полями считаются равными)"
    -Мы сделали максимально громоздко, сложно, зато типо секурно и теперь - да, срочно допиливаем чтобы было просто ведь сильно секурно не получилось )
     
  • 1.51, Аноним (51), 11:33, 02/08/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Кода уже в яве указатели появятся
     
     
  • 2.61, Вася Пупкин (?), 14:50, 02/08/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Они с самого начала в языке, пример:

    List list = new ArrayList();

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

     
     
  • 3.67, анонец (?), 16:27, 02/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Скорей всего, он имел в виду адресную арифметику, как в Си
     
     
  • 4.69, Вася Пупкин (?), 18:11, 02/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    В таком случае вместо Явы лучше С++ использовать
     
     
  • 5.97, Вася Пупкин (?), 10:17, 03/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    s/C++/rust/
     
  • 4.74, Аноним (74), 18:41, 02/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Адресная арифметика? В жабе? Щитоблджад? На кой ляг оно там вообще надо?
     
  • 2.88, Аноним (88), 05:11, 03/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Чтобы можно было выходить за границы и делать всякие use after free вместе с double free?
     
  • 2.105, Аноним (104), 12:24, 03/08/2026 Скрыто ботом-модератором     [к модератору]
  • +/
     

  • 1.63, Аноним (63), 15:22, 02/08/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Скучаю по временам, когда меня волновали подобные изменения. Теперь против своей воли (чтобы меня рыночек не порешал) использую ии агент, и уже не думаю о таких мелочах. А хотелось бы как раньше
     
  • 1.64, BunRustZigBuzCruller (?), 15:37, 02/08/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Вовремя я сбежал на TypeScript.
     
     
  • 2.109, zionist (ok), 12:44, 03/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Вовремя я сбежал на TypeScript.

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

     

  • 1.81, Анимешник за 30 (-), 00:02, 03/08/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Чёт не вкуриваю, нафига это надо. Возможностей Java 8 выше крыши для любого проекта, а докинуть фич можно через сторонние либы. Лучше бы прокачивали саму жаву-машину, а не занимались всякой дичью.
     
     
  • 2.94, Аноним (93), 10:00, 03/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Чтобы усложнить спеку, создать несовместимости и тд. Чистый EEE.
     
  • 2.98, Вася Пупкин (?), 10:21, 03/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Потому что не осознают что нейрокод на расте и простихоспади го - работает искаропки сильно быстрее. пытаются хоть тут не проиграть гонку. И по итогу вместо накопленных сбоку вот таких вот "фич" проще будет нативно на раст переходить
     
  • 2.99, Анонимущий (?), 10:25, 03/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Это и есть прокачка джава машины. Ты что, думаешь они новых ключевых слов накидали тупо, которые просто в тот же байткод будут компилироваться, без изменений в самой JVM?
     

  • 1.87, хрю (?), 05:06, 03/08/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    бессмысленная для типичного применения явы фигня. во времена java me это имело смысл, а чичас нет.
     
     
  • 2.100, Анонимущий (?), 10:32, 03/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    1) Это сильно ускорит работу всяческих алгоритмов-числодробилок,  например, в финтех решениях.
    2) Это сильно снизит уровень тормозов при работе с DTO и JDBC ResultSet-ами. На тех же ресурсах выдерживаемый RPS на эндпоинт будет выше.
    3) Это здорово снизит аппетиты текущих сборщиков мусора, которые на шаге компактификации во всей хип-области переназначают указатели, когда занимаются дефрагментацией памяти.
     
     
  • 3.103, хрю (?), 11:39, 03/08/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > 1) Это сильно ускорит работу всяческих алгоритмов-числодробилок,  например, в финтех решениях.

    нет.


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

    вообще нет.

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

    нет.


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

     

  • 1.89, Аноним (89), 07:19, 03/08/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    я один вижу обычный сахар для упакованной структуры с нативный integer?
     
     
  • 2.101, Анонимущий (?), 10:43, 03/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    туда (в планах) будут упаковываться вообще все примитивы и вложенные value классы. Как в С/С++ - если одно из полей структуры - это другая структура, то при компиляции это в любом случае в плане memory layout развернется в плоскую структуру c косвенной адресацией полей формата "база + смещение".
     
  • 2.106, Аноним (104), 12:25, 03/08/2026 Скрыто ботом-модератором     [к модератору]
  • +/
     

  • 1.116, nikodll (ok), 18:15, 03/08/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Это кстати открывает дорогу целому ряду проектов для включени в JVM, первым из которых думаю будет Vector API
     
  • 1.117, Аноним (117), 20:11, 03/08/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Жаба все жиреет и жиреет.
     
  • 1.118, BrainFucker (ok), 22:04, 03/08/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > в отличие от обычных объектов, два экземпляра с одинаковыми полями считаются равными)

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

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



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

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