The OpenNET Project / Index page

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

Выпуск Java SE 25 LTS и OpenJDK 25

17.09.2025 11:51

После шести месяцев разработки компания Oracle опубликовала платформу Java SE 25 (Java Platform, Standard Edition 25), в качестве эталонной реализации которой используется открытый проект OpenJDK. За исключением удаления некоторых устаревших возможностей в Java SE 25 сохранена обратная совместимость с прошлыми выпусками платформы Java - большинство ранее написанных Java-проектов без изменений будут работоспособны при запуске под управлением новой версии. Готовые для установки сборки Java SE 25 (JDK, JRE и Server JRE) подготовлены для Linux (x86_64, AArch64), Windows (x86_64) и macOS (x86_64, AArch64). Разработанная в рамках проекта OpenJDK эталонная реализация Java SE 25 полностью открыта под лицензией GPLv2 с исключениями GNU ClassPath, разрешающими динамическое связывание с коммерческими продуктами.

Java SE 25 отнесён к выпускам с расширенным сроком поддержки, обновления для которого будут выпускаться до 2033 года (общедоступные обновления будут выходить до сентября 2030 года). В качестве ветки с длительным сроком поддержки (LTS) также продолжают сопровождаться ветки Java SE 17 и 21, обновления для которой будут выпускаться до 2029 и 2031 годов, соответственно (общедоступные - до 2026 и 2028 годов). Расширенная поддержка LTS-веток Java SE 8 и 11 продлится до 2030 и 2032 годов.

Среди предложенных в Java SE 25 новшеств (1, 2, 3, 4):

  • Предложен компактный вариант оформления программ, который может оказаться полезным для обучения и при разработке небольших приложений. В компактной форме не требуется определение лишних классов, автоматически импортируются типовые API и доступны упрощённые методы ввода/вывода. Например, приложение "Hello, World!" можно свести к:
    
       void main() {
           IO.println("Hello, World!");
       }
    
  • Добавлена возможность использования одного выражения "import module M" для импорта сразу всех пакетов, экспортируемых указанным модулем. Изменение существенно упрощает повторное использование модульных библиотек, позволяя подключать библиотеки и классы без определения их места в иерархии пакетов. Например, указание "import module java.base" приведёт к импорту всех 54 пакетов, входящих в модуль java.base, которые ранее потребовалось бы упоминать по-отдельности ("import java.io.*", "import java.util.*" и т.п.).
  • Добавлен поколенческий (generational) режим работы сборщика мусора Shenandoah, при котором раздельно обрабатываются старые и недавно созданные объекты для повышения эффективности очистки объектов с небольшим временем жизни. Новый режим обеспечивает более предсказуемую пропускную способность, устойчивость к изменению нагрузки и снижение потребления памяти при сборке мусора. Планировщик Shenandoah нацелен на сокращение времени остановок во время сборки мусора за счёт проведения большего объёма работ параллельно с выполнением Java-приложений.
  • Добавлен экспериментальный API StableValue для работы с объектами, содержащими неизменяемые данные и обрабатываемыми в JVM как константы. К подобным объектам применяются оптимизации производительности, аналогичные полям с ключевым словом "final". API StableValue, в отличие от "final", разделяет создание постоянных значений и их инициализацию, гарантирует, что значение может быть инициализировано только один раз, сокращает время запуска программ и позволяет применять в пользовательском коде оптимизации сворачивания констант (constant-folding), ранее использовавшиеся только во внутреннем коде JDK.
    
       class Application {
           // Было:
           // static final UserService USERS = new UserService();
           // Теперь можно:
           static final StableValue<UserService> USERS = StableValue.of();
    
           public static UserService users() {
              return USERS.orElseSet(UserService::new);
           }
        }
    
  • Добавлен экспериментальный API для кодирования и декодирования объектов с криптографическими ключами, сертификатами и списками отозванных сертификатов, используя формат PEM (Pivacy-Enhanced Mail).
  • Добавлена поддержка ограниченных значений (Scoped Values), позволяющих совместно использовать неизменяемые данные в потоках и эффективно обмениваться данными между дочерними потоками (значения наследуются). Scoped Values создан для замены механизма переменных локальных к потоку (thread-local variables) и более эффективен при использовании очень большого числа виртуальных потоков (тысячи и миллионы потоков). Главное отличие Scoped Values от переменных локальных к потоку в том, что первые записываются один раз, в дальнейшем не могут быть изменены и остаются доступны только на время выполнения потока.
  • Добавлен API для использования криптографических функций формирования ключа (KDF, key derivation function), позволяющих сформировать дополнительные ключи необходимой длины на основе секретного ключа (например, пароля) и произвольного набора данных.
  • Разрешено указание в конструкторах выражений перед вызовом super(...), используемом для явного вызова конструктора родительского класса из конструктора наследуемого класса, если эти выражения не ссылаются на создаваемый конструктором экземпляр.
    
       class Outer {
           void hello() {
               System.out.println("Hello");
           }
           class Inner {
               Inner() {
                   hello();
                   super();
               }
           }
       }
    
  • Упрощено создание кэша для упреждающей (Ahead-of-Time) загрузки и компоновки классов, позволяющего ускорить запуск HotSpot JVM за счёт задействования классов в уже загруженном и скомпонованном состоянии. При запуске больше не требуется отдельных операций для записи активности и создания кэша, и достаточно одной команды:
    
       java -XX:AOTCacheOutput=app.aot -cp app.jar com.example.App ...
    
  • При старте HotSpot Java VM реализована возможность использования профилей выполнения методов, полученных при прошлом запуске приложения. Изменение позволяет JIT-компилятору обойтись без стадии накопления статистики и сразу начать генерировать нативный код без ожидания формирования профиля.
  • В HotSpot JVM реализована поддержка компактных заголовков объектов, размер которых на 64-разрядных системах уменьшен с 96 до 64 бит (с 12 до 8 байт). Уменьшение размера заголовков позволяет сократить размер кучи и повысить эффективность работы кэша.
  • Предложена тестовая реализация API Vector, предоставляющего функции для векторных вычислений, которые выполняются с использованием векторных инструкций процессоров x86_64 и AArch64 и позволяют одновременно применить операции сразу к нескольким значениям (SIMD). В отличие от предоставляемых в JIT-компиляторе HotSpot возможностей по автовекторизации скалярных операций, новый API даёт возможность явно управлять векторизацией для параллельной обработки данных.
  • Предложен для тестирования пятый предварительный вариант API для cтруктурированного параллелизма (Structured Concurrency), упрощающего разработку многопоточных приложений за счёт обработки нескольких задач, выполняемых в разных потоках, как единого блока.
  • В механизме сопоставления с образцом предложен третий предварительный вариант возможности использования примитивных типов (int, byte, char и другие базовые типы, не являющиеся объектами) во всех видах шаблонов, в операторе "instanceof" и в блоках "switch".
    
       switch (x.getStatus()) {
           case 0 -> "okay";
           case 1 -> "warning";
           case 2 -> "error";
           case int i -> "unknown status: " + i;
       }
       if (i instanceof byte b) {
        ... b ...
       }
    
  • В JDK Flight Recorder (JFR) добавлена экспериментальная поддержка профилирования с более точным отслеживанием потребления ресурсов CPU на платформе Linux. Информация о времени выполнения различных конструкций может быть наглядно визуализирована с использованием цветных диаграмм "FlameGraph".
  • В JDK Flight Recorder (JFR) при асинхронном сэмплировании стеков потоков Java повышена стабильность работы за счёт обхода стека вызовов только в "безопасных точках" (safepoints).
  • В JDK Flight Recorder (JFR) добавлены средства трассировки и оценки времени выполнения методов. Поддерживается трассировка стека вызовов конкретных методов и запись точной статистики о вызовах методов, охватывающей такие метрики, как время выполнения и количество вызовов.
  • Удалён код и сборочные сценарии для поддержки 32-разрядных систем x86. Прекращение поддержки 32-разрядных систем x86 упростило инфраструктуру для сборки и тестирования JDK, а также позволило реализовывать возможности, завязанные на аппаратные платформы, без создания fallback-обработчиков для 32-битных систем x86.

Дополнительно можно отметить публикацию обновления платформы для создания приложений с графическим интерфейсом JavaFX 25 и выпуск универсальной виртуальной машины GraalVM 25, поддерживающей запуск приложений на JavaScript (Node.js), Python, Ruby, R, любых языках для JVM (Java, Scala, Clojure, Kotlin) и языках, для которых может формироваться биткод LLVM (C, C++, Rust).

  1. Главная ссылка к новости (https://mail.openjdk.org/piper...)
  2. OpenNews: Доступна платформа Jakarta EE 11, продолжающая развитие Java EE
  3. OpenNews: Выпуск Java SE 24 и OpenJDK 24
  4. OpenNews: Выпуск Java SE 23 и OpenJDK 23
  5. OpenNews: Компания Oracle представила универсальную виртуальную машину GraalVM
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/63895-java
Ключевые слова: java, jdk
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (152) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 12:16, 17/09/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –5 +/
    Асинхроньщину уже завезли?
     
     
  • 2.10, Васян (?), 12:50, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Виртуальные потоки позволяют писать производительный код синхронно, зачем усложнять код асинхронщиной.
     
  • 2.151, Хейтер (?), 10:21, 18/09/2025 [^] [^^] [^^^] [ответить]  
  • +4 +/
    2014 год, Java 8:
    ----
    CompletableFuture<String> future = CompletableFuture.supplyAsync(() -> {
             // Asynchronous task
             return "Hello";
    });
    future.thenApply(s -> s + " World").thenAccept(System.out::println);

    2023 год, Java 21:
    ----
    Thread.ofVirtual().start(() -> {
             // Asynchronous task running on a virtual thread
    });

     
     
  • 3.159, аролп5 (?), 13:14, 18/09/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    CompletableFuture в сложных конструкциях настолько страшный получается, что им не хочется пользоваться ))
     

  • 1.2, Аноним (2), 12:17, 17/09/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Подскажите, Project Panama уже принят в какой-либо релиз, или заброшен? Понять не могу...
     
     
  • 2.70, Аноним (70), 16:39, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    JEP 454: Foreign Function зарелизился в JDK 22 - https://openjdk.org/jeps/454

    Vector API все еще ждет в инкубаторе, кажись они хотят его выкатить вместе с value классами.

     
     
  • 3.156, Аноним (2), 11:44, 18/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Спасибо за ответ!
    Здорово, что попало в LTS, не терпится попробовать)
     

  • 1.3, Жироватт (ok), 12:27, 17/09/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    > использования профилей выполнения методов, полученных при прошлом запуске приложения

    Т.е. при негомогенном использовании методов (когда у нас не "один сценарий использования на однородных данных на все запуски") есть возможность еще сильнее просадить качество оптимизаций?

    >  тестовая реализация API Vector, [...] API даёт возможность явно управлять векторизацией для параллельной обработки данных

    А вот это годно

    > Планировщик Shenandoah нацелен на сокращение времени остановок во время сборки мусора

    Жаль, что без остановок оно вообще не умеет и уметь будет еще ой как не скоро.

    > указание в конструкторах выражений перед вызовом super(...),

    Даже стало интересно, в каких ситуациях прямо так необходимо выполнять что-то перед вызовом стека конструкторов предков

    > Удалён код и сборочные сценарии для поддержки 32-разрядных систем x86

    Вот оно, это ваше запланированное устаревание, а не все эти роухаммеры в шапочках из фольги. Для эмбеддеда придётся вкусные фишки получать из сторонних сборок, типа российского.

    > Добавлен экспериментальный API StableValue [...] разделяет создание постоянных значений и их инициализацию, гарантирует, что значение может быть инициализировано только один раз, [...] позволяет применять в пользовательском коде оптимизации сворачивания констант

    А что, до этого раньше догадаться было никак?

     
     
  • 2.6, Аноним (6), 12:36, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > А вот это годно

    Нет, это признание провала обещаний про "вы пишете высокоуровневый код, а оптимизатор сам всё сделает". Что дальше - ручное управление памятью?

    На жаве пишут не те, кому нужно вручную смид юзать а те, кто не хочет про такие вещи вообще думать, типа питонистов и жаваскриптистов.

     
     
  • 3.11, Жироватт (ok), 12:57, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Ну, дать возможность переопределить и руками доопределить то, что javac там тебе наавтовекторизовал - на самом деле идея нормальная.
    >  Что дальше - ручное управление памятью?

    Ну, pinned objects уже были, ЕМНИП в автоматическом режиме и они позволяли напрямую, без таблицы получать и маршаллить данные в нативном коде, но тогда сходил с ума гц. Дать программисту руками закрепить в куче объект и получить на него прямой указатель было бы на самом деле неплохо.

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

     
     
  • 4.88, Аноним (6), 17:47, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Да ну. Те, кому нужна производительность сделают на расте. Там не только всё уже есть, но и язык лучше, и прости господи эффективность по ресурсам которая у жавы всю жизнь была и есть на дне.
     
     
  • 5.133, Аноним (133), 22:57, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Там не только всё уже есть, но и язык лучше

    Дальше можно не читать.

     
     
  • 6.169, Чтото знающий (?), 01:28, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Как будто это то, что ты умеешь.
     
  • 2.7, Аноним (7), 12:38, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Главный прикол, что если чуть-чуть попало в своп, тебе конец буквально. Рекомендую трюк с mlockall -- очень экономит нервы. Только, нативный код может свопиться, и когда половина памяти процесса может спокойно лежать в свопе, и другая половина умирает от этого, получается не очень удобно.
     
  • 2.9, Аноним (9), 12:45, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Вот оно, это ваше запланированное устаревание, а не все эти роухаммеры в шапочках из фольги. Для эмбеддеда придётся вкусные фишки получать из сторонних сборок, типа российского.

    Эмбеддед на 32-битном x86? Там, наверное, до сих пор на шестой яве сидят.

     
     
  • 3.14, Жироватт (ok), 13:02, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Ну почему?
    Относительно свежие железки, на специально собранном ядре 6.14+, со свежими jvm от вендора не так давно щупал. Но проц там х86, тупо из-за стоимости партии, дешевле оказалось, чем ставить мипс или арм
     
     
  • 4.51, Аноним (51), 15:27, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Но 32 бита?
    И повторюсь — Java 25 придёт туда… лет через 25.
     
  • 3.36, Аноним (36), 14:07, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > из сторонних сборок, типа российского

    напомните, кто у нас занимается российскими сборками?
    Либерику, просьба не упоминать, они заблокировали скачивание с российских адресов.

     
     
  • 4.52, Жироватт (ok), 15:32, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Axiom JDK как минимум
     
     
  • 5.65, Аноним (36), 16:08, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    похоже - и как "максимум", тоже.
     
  • 4.127, Аноним (127), 22:32, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    https://lab50.net/gosjava/
     
  • 4.154, Хейтер (?), 10:50, 18/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >они заблокировали скачивание с российских адресов

    - что-то я пропустил этот момент: BellSoft перешёл на тёмную сторону?

     
     
  • 5.167, Анонимъ (?), 01:11, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Разделился на 2 бизнеса.
    Что в РФ остался стал Axiom, а ушедшие забугор остались BellSoft
     
  • 2.157, Аноним (70), 11:46, 18/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Даже стало интересно, в каких ситуациях прямо так необходимо выполнять что-то перед вызовом стека конструкторов предков

    Когда нужно передать аргумент в констриктор предка, но перед этим его нужно провалидировать или сделать какую-нибудь трансформацию. В общем фича иногда позволит отказаться от методов-фабрик.

     

  • 1.4, Аноним (6), 12:31, 17/09/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –8 +/
    Я понял, что мне напоминает современная жава. C++. Продолжают городить какие-то надстройки, а язык остаётся кривым и косым. Надо было не надстройки городить, а язык с нуля перепредумывать когда 9-ую выпускали. Или ваще её похоронить и сказать юзайте котлин.
     
     
  • 2.5, Аноним (5), 12:36, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • +7 +/
    > юзайте котлин

    Вендорлок, который фиг нормально установишь без их ide.

     
     
  • 3.19, Данные в так называемом поле Name (?), 13:14, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Мне кажется Котлин сдохнет в ближайшей перспективе. Уже тысячи были более лучше жабы на JVM и где они все?
     
     
  • 4.30, Sserj (?), 13:41, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ну пока его спонсирует гугл на своем анроиде точно не сдохнет.
    В свежих AndroidStudio уже и нет возможности создавать новый Java проект. Только Kotlin оставили.
     
     
  • 5.40, Аноним (36), 14:20, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Ну, гугол свой андроид потихоньку окукливает до уровня иось, и судя по новостям, скоро запретит ставить пакеты не из своей копилки.
     

  • 1.8, Аноним (8), 12:45, 17/09/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Самый дурацкий язык эвер. Например, в нем нельзя объявить переменную с типом "строка". Нет, String -- это "строка ИЛИ нулл". А вот "просто строка" -- нельзя. Так что везде, где ты работаешь со String, тебе приходится держать в голове, что он может быть нуллом. В нормальных языках такого нет. Даже в тайпскрипте string -- это реально только строка, без всяких неявных null | undefined. А еще в яве нет top type и bottom type. Нет, Object -- не top type, потому что он не покрывает примитивы. Нет, boxed types -- не примитивы. В общем, систему типов в яве уже не спасти.
     
     
  • 2.16, Жироватт (ok), 13:04, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Слишком толсто, попробуй потоньше.
     
     
  • 3.21, Аноним (8), 13:20, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Попробуй объявить в яве переменную с типом "строка" -- такую, чтобы компилятор не давал присвоить ей нулл. А теперь послушаем твое отсутствие ответа и всяческие виляния:
     
     
  • 4.25, Аноним (25), 13:26, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Главный вопрос - зачем? Твой код принципиально не умеет в нуль? Лови NPE!
     
     
  • 5.29, Аноним (8), 13:40, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Функция, которая делает что-то со строкой, не должна проверять, что ей передали ... большой текст свёрнут, показать
     
     
  • 6.38, Аноним (25), 14:14, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    А ты не передавай нуль в функцию, которая ожидает строку, иначе ява за тебя любезно кинет ошибку.
     
     
  • 7.42, Аноним (8), 14:34, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Вот именно, что ява кинет ошибку лишь в рантайме А должна была в компайл-тайме ... большой текст свёрнут, показать
     
     
  • 8.46, Аноним (46), 14:55, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Ну так добавь линтер в CI, делов-то В яве есть Nullabe и NotNull если чо ... текст свёрнут, показать
     
     
  • 9.49, Аноним (8), 15:04, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Линтер-шминтер Это задача языка следить за типами, а не стороннего линтера, кот... текст свёрнут, показать
     
     
  • 10.63, Аноним (36), 16:05, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    а ты не отключай ... текст свёрнут, показать
     
  • 10.106, Аноним (106), 19:17, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Тебе шашечки или ехать Если первое, то этот язык с богатейшей историей, библиот... текст свёрнут, показать
     
     
  • 11.166, Чтото знающий (?), 01:09, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Мне ехать По возможности, без всяких костылей Я понимаю, что ты уже иначе не у... текст свёрнут, показать
     
  • 8.122, Аноним (122), 21:39, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Компилятор должен это проверять При каждом обращение к строке Вы просто не пра... текст свёрнут, показать
     
     
  • 9.125, Аноним (8), 21:58, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Смотри, объясняю для особо одаренных проверить на этапе компайла означает, что ... большой текст свёрнут, показать
     
     
  • 10.126, ононем (?), 22:24, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    btw неа, не будет там лишних тактов на проверку на null C2 повешает инвариант и... текст свёрнут, показать
     
     
  • 11.130, Аноним (8), 22:50, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Потому я и написал, что яву уже ничто не спасет ... текст свёрнут, показать
     
  • 10.139, Аноним (122), 00:42, 18/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Вы рассчитываете на идеальную машину выполнения , где есть только ваша программ... большой текст свёрнут, показать
     
  • 5.107, Аноним (107), 19:18, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Пока есть такие как вы, я спокоен за своё рабочее место. Пожалуйста, ничему не учитесь и оставайтесь собой, на вашем фоне мы выглядим богами и получаем кучу денег.
     
  • 4.72, Аноним (122), 16:54, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Не понимаю Вас. String это класс, а не ячейки памяти. У класса есть методы, работы с данными типа String и их нельзя "натравить на адрес памяти". Null это отсутствие объекта. Кроме того объект может в любой момент быть перемещен в памяти при изменение - это новый объект. Это основы объектного программирования. Хорошая практика проверять ссылку на наличие объекта.
     
     
  • 5.108, Аноним (8), 19:19, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Хорошая практика проверять ссылку на наличие объекта

    Хорошая практика -- перенести такие проверки в компайл-тайм. Если твоя парадигма такое не позволяет, то получаем тормозной софт, где все проверяется в рантайме. Впрочем, явистов тормозами не напугать, уже привымкши.

     
     
  • 6.113, Аноним (46), 20:11, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Смешно, то ли дело котлин с a?.b?.c?.d? и так несколько раз, когда надо-то было только a проверить единожды.
     
  • 6.118, Аноним (122), 20:51, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >Хорошая практика -- перенести такие проверки в компайл-тайм.

    Это как? А если объект "динамический". Запросил ты у ОС память под буфер, как компилятор узнает и проверит это (если ты не написал исключение, и нет "общеругательного" исключения или просто ОС снимает приложение за оговоренные исключения). Приложение решило открыть файл - кто сказал что он существует. откуда компилятор это должен знать и под какую ОС писать выворачивание их этой ситуации компилятору?

     
     
  • 7.119, Аноним (122), 20:56, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    В лучшем случае будет test rax,rax (проверка на ноль) je preexit. если компилятору объяснить что это адрес.
     
  • 7.124, Аноним (8), 21:48, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну ты серьезно сейчас Совсем не выбираешься из ява-мирка Перечитай вопрос что ... большой текст свёрнут, показать
     
     
  • 8.138, Аноним (122), 00:11, 18/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Так это Вы утверждали, что проверить исключение рантайм должен по-хорошему компи... большой текст свёрнут, показать
     
     
  • 9.146, Аноним (8), 06:56, 18/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Так очевидно же, что имелись в виду не IO, а ситуации, где гарантированно нет ош... текст свёрнут, показать
     
  • 5.114, Аноним (46), 20:14, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Вот и выросло поколение вкатунов, не знающих устройство ЭВМ. Все не примитивные типы в яве - это указатели на память. Когда передаёшь string куда-то - то передаётся только указатель, сама строка никуда не копируется при этом.
     
     
  • 6.116, Аноним (122), 20:41, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Где я сказал, что объект типа строка передается по значению?
    Где я сказал что строка передается не как адрес? Вот только то что рядом с этим адресом должно иметь, ожидаемую методом или функцией, структуру.
    Только не указатель, а ссылка. Это известно. Объект - структура по определенному адресу с полями и vtable. Ссылка передается неявно методу, который знает как работать с этой структурой (чаще через регистр RCX/ECX). Потом метод использует RCX для передаче ссылки другому методу, который вызывает. Код метода разных объекта одного класса не дублируется. Я оправдался перед вами?

     
  • 2.17, Аноним (46), 13:07, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • –4 +/
    > String -- это "строка ИЛИ нулл"

    Зумерки потихоньку начинают осозновать как работает ПК.

     
     
  • 3.20, Аноним (25), 13:19, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Обработать нуль могут не только лишь все. Мало кто может это делать.
     
  • 3.22, Аноним (8), 13:22, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Бумерки потихоньку продолжают не осознавать разницу между ЯП и машинным кодом. С их точки зрения, все, что возможно в машинном коде, должно быть возможно и в ЯП. Результат немного предсказуем: тысячи и тысячи CVE в софте на одном известном языке. И это лишь за один год!
     
     
  • 4.31, Аноним (31), 13:44, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Благодаря этому у тебя есть ОС и какое-то ПО которое умеет больше чем перекладывать джсоны. Удачи написать ОС на питоне или Яве, со всеми драйверами, видео и прочими требующими нормальной оптимизации вещами.
     
     
  • 5.41, Аноним (36), 14:24, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    спешу тебя огорчить:
    JavaOS — микроядерная операционная система на базе Java, разработанная как фреймворк для кнопочных телефонов и первых смартфонов. В отличие от большинства практических операционных систем, которые написаны на Си, JavaOS полностью написана на Java: от ядра до графической и оконной системы, реализующей AWT API.
     
     
  • 6.43, Аноним (46), 14:34, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > спешу

    Поспешишь - людей насмешишь. "Первый выпуск 1996. В 1999 году Sun и IBM объявили о закрытии проекта." Ой, что-то пошло не так?)

     
     
  • 7.62, Аноним (36), 16:02, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    от этого оно что, перестало быть операционной системой?
     
     
  • 8.79, Аноним (122), 17:18, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • –2 +/
    трудно назвать это ОС, если нет консолей и сетевого стэка ... текст свёрнут, показать
     
     
  • 9.109, Аноним (106), 19:21, 17/09/2025 Скрыто ботом-модератором     [к модератору]
  • +4 +/
     
  • 6.45, Аноним (7), 14:46, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Phantom OS пободрее.
     
  • 6.64, Аноним (-), 16:08, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >JavaOS полностью написана на Java: от ядра до

    Согласно законам физики ядро и иные системные части пишутся на ассемблере и Си. Код Жабы выполняется на виртуальной машине.

    Что и требовалось доказать.

     
  • 6.74, SKZ (?), 16:58, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    У JVM нет доступа к регистрам CPU, не говоря уже об адресах памяти. Все такие прожекты без исключения - ядро на C с ассемблером, и JVM поверх него.
     
  • 6.81, Аноним (122), 17:20, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Со стороны это выглядело так: люди поработайте на мой патент.
     
  • 2.66, Аноним (70), 16:10, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    А почему разговор только про строки? Это нулсейфти которого пока нет в java, в новых языках ифномрацию о нулабилити добавляют прямо в тип, таки да, это удобно. В java обещают когда-нибудь сделать с сохранением миграционной совместимости. Но пока во всех языках коим более 25 лет такого нет.
    В жабе вообще много чего нет, нет перезагрузки операторов, нет каррирования, недавно не было деструктурнига, теперь какой-то есть у record классов, но синтаксически выглядит так себе.
    Вообще если языка сильно переделать то это уже будет не java, кому нужен современный язык на JVM выбирают Kotlin. Тем более сейчас jetbrains допиливает lsp server и тогда можно будет с их языком работать практически из любой ide.  
     
     
  • 3.71, Аноним (70), 16:51, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Кстати, еще не хватает дефолтных значений аргументов методов, и сопоставление аргументов по имени. Brian Goetz пообещал что этого никогда не будет в java :)  
    А вот по поводу перегрузки типов он пообещал в будущем сделать что-то, он думает ввести алгебраические типы позаимствовав идеи из функциональных языков. Но это уже будет после value class, одно за другое цепляется.
     
     
  • 4.86, Аноним (122), 17:39, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Идет в ногу с трэндом. Всем надоели индивидуальные кнопочки и разные рюшечки. Требуются молотилку цифр. Только это не площадка jvm. Для "удивить java программистов скачком производительности" пойдет.
     
     
  • 5.99, Аноним (70), 18:36, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Это обещают с value class, пока они в preview. Value class + vector api и жаба магическим способом превращается в числодробилку. Но это пока в теории.
     
  • 3.84, Аноним (84), 17:35, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Эпопея с нуллами в строках крутится вокруг ровно одного факта — в БД (и сиквеле) нуллы в строках есть. Всё.
    Лучшее, что можно попытаться сделать — кастовать их к String.Empty или около того. Как оно по производительности будет — не знаю, но противники будут.
    Полностью от нуллов нельзя избавиться (как и от undefined в динамических языках).
     
     
  • 4.168, Чтото знающий (?), 01:26, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Причём здесь базы данных? Джава - это язык программирования общего назначения, а не DSL. Он не должен ориентироваться на сторонние продукты.
     
  • 2.117, уп (?), 20:44, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    "даже в тайпскрипте". Ну ты и сказанул. Тайпскрипт это весьма хорошо спроектированный язык, с учётом того, что компилируется в жс, даром что Андерс Хейлсберг создавал.
     
     
  • 3.121, SKZ (?), 21:30, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >компилируется в жс

    Каждый раз, как в первый

     
  • 2.135, Аноним (127), 23:11, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >в нем нельзя объявить переменную с типом "строка"

    Да, в Java нет встроенного типа "строка". (Как и в C и C++). Ну и что? Есть же объект String

     

     ....большая нить свёрнута, показать (49)

  • 1.12, Аноним (25), 12:58, 17/09/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    StableValue is nonsense
     
     
  • 2.87, Аноним (122), 17:41, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Это же что то должно охранять.
     

  • 1.13, zionist (ok), 13:01, 17/09/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Скажите, а пришедший ещё в Java 9 JPMS (модульность) кто нибудь реально использует в своих проектах? А без Ломбока и Спринг Бута кто-то ещё на Джаве программирует?
     
     
  • 2.15, Аноним (25), 13:03, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Эта модульность нафиг была не нужна.
     
     
  • 3.158, zionist (ok), 12:02, 18/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Эта модульность нафиг была не нужна.

    На самом деле была нужна, но с версионированием - для разрешения конфликтов в транзитивных зависимостях. В версионирование они не смогли, хотя этот долгострой делали около десяти лет! В итоговом виде оно действительно никому нафиг не нужно. Я уже год как ушёл с Java на Go и тут конфликты версий решаются удивительно просто.

     
  • 2.73, анон (?), 16:55, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Да и да
     
  • 2.89, Аноним (6), 17:51, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Я ещё ни разу не видел, что бы кто-то эти модули юзал. Прогаю на жаве с версии 1.4.
     
     
  • 3.162, Аноним (162), 16:31, 18/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Мы используем при написании библиотек и если на проекте гексагональная архитектура, чтобы явно лишить возможности тянуть код адаптеров в модуль доменной логики.
     

  • 1.18, Аноним (18), 13:08, 17/09/2025 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • –4 +/
     

     ....большая нить свёрнута, показать (11)

  • 1.26, Аноним (-), 13:29, 17/09/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –5 +/
    10 лет назад писал код на Жабе. При компиляции всё время не компилировался показывал какую-то ошибку. Как только код завернул в блок исключения. Так код сразу скомпилировался.

    Такая куита ещё осталась. Вы всё время свой код оборачиваете в блок исключений. Ваш код на 10% состоит из исключений.

     
     
  • 2.28, Аноним (28), 13:34, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > какую-то

    В этот и состоит Ваша проблема. Не языка, а Ваша.

     
     
  • 3.34, Аноним (34), 14:02, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Если усложнять ради усложнения, то получится Си.
     
     
  • 4.35, Аноним (25), 14:05, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Си как раз максимально упрощен.
     
     
  • 5.60, Аноним (-), 15:58, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Он перепутал C++ с чистым Си.
     
  • 5.85, Аноним (85), 17:39, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Но недостаточно, до уровня Brainfuck ещё не упрощён, недоработка.
    Вот ножовка — казалось бы, проще не придумаешь. Но сцуко электропилой работать гораздо удобнее.
     
  • 2.33, BeLord (ok), 14:01, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну и чем вам исключения не угодили?
     
     
  • 3.39, Аноним (25), 14:15, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ему они неинтересны, это проблема пользователя.
     
  • 3.95, Илья (??), 18:18, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    В джаве известные проблемы с неправильно спроектированнымми исключениями.
     
     
  • 4.163, BeLord (ok), 17:22, 18/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > В джаве известные проблемы с неправильно спроектированнымми исключениями.

    И это повод не пользоваться исключениями? Я просто мысль до конца не понял. Так-то и в процессорах ошибки встречаются, но ими же пользуются,  а не считают на счетах-)

     
  • 2.47, Аноним (47), 14:55, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    скилбоксовский?
     
     
  • 3.59, Аноним (-), 15:58, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Нет рабочий.
     
  • 2.129, Аноним (127), 22:49, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >При компиляции всё время не компилировался показывал какую-то ошибку.

    Это фича Джавы - обязательная обработка всех возможных исключений.

     
     
  • 3.160, eugener (ok), 13:51, 18/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > обязательная обработка всех возможных исключений

    не всех, а только checked. Есть и unchecked (RuntimeException и производные).

     

  • 1.44, Diozan (ok), 14:42, 17/09/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Хорош ли Java, как язык программирования? Лучше ли, чем Python?
     
     
  • 2.50, Sserj (?), 15:09, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Сама по себе Java хороша. И она реально быстрая.
    Другой вопрос что она потонула в корпоративном овнище где пишут "для резюме" обклаываясь интерфейсами, проксями, паттернами ради паттернов а не реальной необходимости.
    И когда jmv приходится продираться сквозь сотни прослоек виртуальных интерфейсов (их реально сотни, достаточно глянуть стек-трейс в реальных приложениях) все вложенные усилия в оптимизацию идут лесом.
     
     
  • 3.55, Аноним (55), 15:34, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Сама по себе Java хороша. И она реально быстрая.

    Сама по себе быстрая, да. А вот реализации её виртуальной машины медленные и жручие.

    Ява обладает высокой производительностью. Под "высокой" мы понимаем достаточную. Под "достаточной" - низкую.

     
     
  • 4.58, Аноним (18), 15:39, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    По сравнению с пыхом или руби с пистоном - джава супер производительный язычок!
     
     
  • 5.67, Аноним (7), 16:12, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Да совершенно на одном уровне они. Вопрос не в производительности, у жавы всегда тонны дохлого легаси с уязвимостями.
     
     
  • 6.128, Аноним (128), 22:44, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Пишу на флаттере. Легаси мало, но через пару лет программа перестает собираться: старые библиотеки не работают в новом sdk. Новые библиотеки в старом sdk.
     
     
  • 7.145, Аноним (-), 05:48, 18/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    А ты будь моднее.
     
  • 4.77, Аноним (122), 17:06, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    В английском на этот случай есть слово pretty в функции наречия - достаточно, приемлемо.
    Java is Pretty quick.
    Степень быстроты не обсуждается, а каждый подразумевает свою.
     
  • 4.142, Аноним (142), 03:36, 18/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Сама по себе быстрая, да. А вот реализации её виртуальной машины медленные и жручие.

    Смотрю как код на яве обрабатывает ~400 qps на трёхстах мегах рам и не вижу тормозов. Упирается в I/O сетевых интерфейсов, и хоть ты тресни. Как так?

     
  • 3.91, Аноним (6), 17:57, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Сама по себе Java хороша. И она реально быстрая.

    Так обычно рассуждают те, кто быстрее ничего в жизни не видел. Ну как мне коллега сегодня сказал, что с новым редизайном микросервиса, который клюя значение в базу кладёт теперь сможет даже что раз в секунду это делать. Я с вас, жаверов, просто х-ю порой.

     
     
  • 4.155, Аноним (162), 10:53, 18/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Твой коллега криворукий просто. Джавка жирная и любит кушать heap, но у нее за 30 лет JIT компилятор научился оптимизировать генерируемый машинный код не хуже чем gcc/clang делают это для С++. Есть проблемы с числодробильными задачами, завязанными на CPU, но джавка всегда была преимущественно языком бэкенда, где основные причины тормозов - это сетевое IO. А скорости эффективно JSON нарезать и лазить в БД у нее за глаза, особенно когда сервис поработает в проде пару часов и основная бизнес-логика откомпилируется JIT-ом и закэшируется в виде готовых blob-ов в машинных кодах.
     
  • 2.57, Аноним (51), 15:37, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Что лучше? Арбуз или колбаса?
     
  • 2.98, Аноним (98), 18:34, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Меня, как человека, который только чуть-чуть потрогал Java, с души воротит с языка, в котором встречаются типы
    - const static
    - static final
    - const static final
    Не понимаю, зачем такое городить?! Но я не программист, может тут и правда есть какой-то сакральный смысл.
     
     
  • 3.104, Аноним (107), 19:10, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Ты и правда не программист. В жаве нет const.
     
  • 3.123, Аноним (122), 21:45, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Скажу общё - если вы имеете дело с абстракцией, то всегда надо уточнять с какой конкретно.
    А так, отсылаю к документации.
     
  • 3.131, Аноним (127), 22:53, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > В жаве нет const.

    Нет есть. Ключевое слово const зарезервировано, но ничего не означает.

     
  • 2.105, Аноним (107), 19:13, 17/09/2025 Скрыто ботом-модератором     [к модератору]
  • +1 +/
     

  • 1.56, Аноним (55), 15:36, 17/09/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ждём, когда будет предложен компактный вариант оформления программ, в котором не требуется определение лишних классов и методов, автоматически импортируются типовые API и доступны упрощённые методы ввода/вывода. Например, приложение "Hello, World!" можно будет свести к

    IO.println("Hello, World!");

     
     
  • 2.69, Аноним (-), 16:22, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    echo "Hello world"

    bash смотрит на тебя с недоумением.

     
  • 2.78, Аноним (122), 17:09, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Как это куда-нибудь поместить. Ваши строки не Вселенная.
     
  • 2.83, Аноним (84), 17:29, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Оберон что ли?
     
  • 2.132, Аноним (127), 22:56, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    jshell> System.out.println("Hello, World!");
     

  • 1.80, Джозеф (?), 17:19, 17/09/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Чет я не понял, а кто жаву у Ларри счас готовит, он-же вроде всех проггеров, кто не с базой, прогнал. Или я че-то путаю?
     
     
  • 2.134, Аноним (127), 22:58, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Вроде как Ларри сам уже ушёл из Оракла
     
     
  • 3.149, Джозеф (?), 08:41, 18/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Да, ну?! Вот это поворот. А кто-ж теперь вместо него, Илон?
     
     
  • 4.164, Аноним (164), 22:03, 18/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Илона он уже обогнал:
    "В сентябре 2025 г Ларри Эллисон впервые стал самым богатым человеком в мире, положив конец почти годичному правлению Илона Маска на первом месте"
     

  • 1.82, Аноним (84), 17:28, 17/09/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +7 +/
    Унылейшие язык и рантайм, извечно отстающий на десятилетие даже от достаточно консервативного сишарпа. Сколько лет понадобилось, чтобы генерики не паковались в object? Это же шиза.
    Не умер только благодаря ведроиду, но с одной стороны всех переводят в /*котёл*/ котлин, а с другой азиаты по чуть-чуть уходят в хуавеевский кандзи.
     
     
  • 2.97, Илья (??), 18:23, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Сколько лет понадобилось, чтобы генерики не паковались в object?

    Воз и ныне там. Дженерики в джаве невозможно переделать ввиду ограничений jvm.

    В 202к5 коду брать джаву не имеет смысла, дотнет открытый и в целом лучше

     
     
  • 3.103, Аноним (107), 19:09, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Да и дотнет не имеет смысла брать тоже. Это всё легаси языки.
     
  • 3.120, Аноним (122), 21:06, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >дотнет открытый и в целом лучше

    А приятно ломается... )

     
  • 3.137, Аноним (162), 23:46, 17/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Гугли Project Valhalla, где собираются релизнуть value классы и специализацию дженериков примитивами.
    Долгострой ппц, но когда релизнут, все джависты побегут открывать шампанское, так как в языке снизится до минимума pointer chasing, фрагментация кучи и количество cache miss.
     
     
  • 4.141, Аноним (141), 03:07, 18/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Гугли Project Valhalla, где собираются релизнуть value классы и специализацию дженериков
    > примитивами.

    Да как бы поздно уже. Все, кто хотел производительности пересели либо на c++/GO/rust, либо на c# как наиболее совместимую альтернативу

     
     
  • 5.152, Аноним (162), 10:44, 18/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Ну, если говорить про РФ, то с банков а это главный российский кровавый ынтерпр... большой текст свёрнут, показать
     
     
  • 6.161, IMBird (ok), 15:06, 18/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >то сервис, держащий 50K RPS в один инстанс - не проблема

    Звучит как типовая задача для Erlang

     

  • 1.143, Аноним (143), 04:54, 18/09/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Лучше бы поддержку 32 битов вернули. Но ломать - не строить.
     
     
  • 2.147, Аноним (147), 08:33, 18/09/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Лучше бы поддержку 32 битов вернули.

    Зачем? Для некрожелеза и некроjava сойдёт.

     
  • 2.150, Ларри (?), 09:28, 18/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Без пары ярдов долларов я со стула не встану...
     
  • 2.153, Хейтер (?), 10:47, 18/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >Лучше бы поддержку 32 битов вернули

    - скоро не останется ОС на которых такое будет работать

     

  • 1.165, Аноним (165), 23:48, 18/09/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А можно запилить такой же тред про последний C++
     

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



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

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