The OpenNET Project / Index page

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

Выпуск Java SE 23 и OpenJDK 23

18.09.2024 08:33

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

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

Среди предложенных в Java SE 23 новшеств:

  • Включён по умолчанию генеративный режим работы сборщика мусора ZGC (Generational Z Garbage Collector), использующий раздельную обработку "старых" и "молодых" объектов, что повышает эффективность очистки недавно созданных объектов с небольшим временем жизни. Применение Generational ZGC уменьшает риски приостановок во время выделения ресурсов, снижает нагрузку на CPU и потребление памяти при сборке мусора. Тестирование Generational ZGC с Apache Cassandra 4 показало увеличение пропускной способности в 4 раза при фиксированном размере кучи (heap) и уменьшение размера кучи на четверть при неизменной пропускной способности.
  • В JavaDoc добавлена поддержка использования разметки Markdown для документирования кода в комментариях, которую можно использовать вместо смеси из HTML и @-тегов JavaDoc.
  • Механизмы сопоставления с образцом расширены предварительной поддержкой использования примитивных типов (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 ...
       }
    
  • Добавлена предварительная поддержка использования одного выражения "import module M" для импорта сразу всех пакетов, экспортируемых указанным модулем. Изменение существенно упрощает повторное использование модульных библиотек, позволяя подключать библиотеки и классы без определения их места в иерархии пакетов. Например, указание "import module java.base" приведёт к импорту всех 54 пакетов, входящих в модуль java.base, которые ранее потребовалось бы упоминать по-отдельности ("import java.io.*", "import java.util.*" и т.п.).

    Предложена вторая предварительная реализация API Class-File для разбора, генерации и преобразования файлов с классами Java.

    
       ClassFile cf = ClassFile.of();
       ClassModel classModel = cf.parse(bytes);
       byte[] newBytes = cf.build(classModel.thisClass().asSymbol(),
            classBuilder -> {
                for (ClassElement ce : classModel) {
                    if (!(ce instanceof MethodModel mm
                            && mm.methodName().stringValue().startsWith("debug"))) {
                        classBuilder.with(ce);
                    }
                }
            });
    
  • Предложена восьмая предварительная реализация API Vector, предоставляющего функции для векторных вычислений, которые выполняются с использованием векторных инструкций процессоров x86_64 и AArch64 и позволяют одновременно применить операции сразу к нескольким значениям (SIMD). В отличие от предоставляемых в JIT-компиляторе HotSpot возможностей по автовекторизации скалярных операций, новый API даёт возможность явно управлять векторизацией для параллельной обработки данных.
  • В класс java.io.Console добавлены методы format, printf, readPassword и readLine для форматирования, вывода и чтения текста с учётом выбранной локали.
    
       System.console().printf(Locale.FRANCE, "%1$tY-%1$tB-%1$te %1$tA", new Date())
       2024-mai-16 jeudi
    
  • Добавлена вторая предварительная реализация расширенного API Stream, поддерживающего определение собственных промежуточных операций, которые могут оказаться полезны в случаях, когда существующих встроенных промежуточных операций недостаточно для желаемого преобразования данных. Собственные обработчики подключаются при помощи новой промежуточной операции Stream::gather(Gatherer), которая обрабатывает элементы потока, применяя к ним заданный пользователем обработчик.
    
       jshell> Stream.of(1,2,3,4,5,6,7,8,9).gather(new WindowFixed(3)).toList()
       $1 ==> [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
    
  • Добавлена третья предварительная реализация неявно объявленных классов и безымянных экземпляров метода "main", в которых можно обойтись без объявлений public/static, передачи массива аргументов и прочих сущностей, связанных с объявлением класса.
    
       // было
       public class HelloWorld {
         public static void main(String[] args) {
           System.out.println("Hello world!");
         }
       }
    
       // теперь можно
       void main() {
           System.out.println("Hello, World!");
       }
    
  • Добавлен второй предварительный вариант возможности, разрешающей указание в конструкторах выражений перед вызовом super(...), используемого для явного вызова конструктора родительского класса из конструктора наследуемого класса, если эти выражения не ссылаются на создаваемый конструктором экземпляр.
    
       class Outer {
           void hello() {
               System.out.println("Hello");
           }
           class Inner {
               Inner() {
                   hello();
                   super();
               }
           }
       }
    
  • Добавлена третья предварительная реализация ограниченных значений (Scoped Values), позволяющих совместно использовать неизменяемые данные в потоках и эффективно обмениваться данными между дочерними потоками (значения наследуются). Scoped Values развиваются для замены механизма переменных локальных к потоку (thread-local variables) и более эффективны при использовании очень большого числа виртуальных потоков (тысячи и миллионы потоков). Главное отличие Scoped Values от переменных локальных к потоку в том, что первые записываются один раз, в дальнейшем не могут быть изменены и остаются доступны только на время выполнения потока.
  • Предложен для тестирования третий предварительный вариант API для cтруктурированного параллелизма (Structured Concurrency), упрощающего разработку многопоточных приложений за счёт обработки нескольких задач, выполняемых в разных потоках, как единого блока.
  • Объявлены устаревшими и намечены к удалению методы доступа к внешней памяти (вне JVM), предоставляемые классом sun.misc.Unsafe. Для обращения к памяти вне кучи (off-heap) и взаимодействия с внешними кодом рекомендуется использовать API VarHandle и API FFM (Foreign Function & Memory).

Дополнительно можно отметить публикацию обновления платформы для создания приложений с графическим интерфейсом JavaFX 23 и включение в основной состав Oracle JDK 23 JIT-компилятора GraalVM.

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

  1. Главная ссылка к новости (https://mail.openjdk.org/piper...)
  2. OpenNews: Выпуск платформы Java SE 22 и открытой эталонной реализации OpenJDK 22
  3. OpenNews: Треть Java-проектов на базе библиотеки Log4j продолжают использовать уязвимые версии
  4. OpenNews: Доступен Jakarta EE 10, продолжающий развитие Java EE после передачи проекту Eclipse
  5. OpenNews: Компания Oracle представила универсальную виртуальную машину GraalVM
  6. OpenNews: Компания Oracle убрала ограничение по использованию JDK в коммерческих целях
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/61884-java
Ключевые слова: java, jdk, graalvm
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (99) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.2, IdeaFix (ok), 10:09, 18/09/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Эхх... а еще одна LTS когда будет?
     
     
  • 2.14, Аноним (14), 11:10, 18/09/2024 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Java 25 сентябрь 2025 года.
     
     
  • 3.22, IdeaFix (ok), 11:47, 18/09/2024 [^] [^^] [^^^] [ответить]  
  • +4 +/
    > Java 25 сентябрь 2025 года.

    Надо больше версий с вечным сроком поддержки... и к сожалению, это не ирония и сарказм :( Зрелые копро^Wкорпоративные решения с восьмёрки никто не перепишет :(

     
     
  • 4.56, Аноним (56), 15:24, 18/09/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Разве код под 8 не будет просто работать на JRE23?
     
     
  • 5.60, IdeaFix (ok), 16:30, 18/09/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Будет. Процентов 90. Т.е. ответ "нет".
     
  • 5.109, Аноним (109), 17:25, 19/09/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Возможно, что даже не пытается работать. Стоит проверка - не запустится, если нет 8 версии. Обычный прием, когда шутники-разработчики прикалываются над заказчиком. Много таких видел случаев за последние 33 года, и не только для Java.
     
     
  • 6.115, _ (??), 00:32, 20/09/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Ну это шушпанчики какието ...
    У кровавых корпорастов всё просто:
    this software(*1) is certified under following conditions:
    ...
    OS: RedHat X-1 or RedHat X
    ...
    Java: Oracle Java XX
    ...

    И можешь всем моск сЪесть что оно и на J23 и на Arch работает - смотрите!
    ... всем пофик :-\
    Никто не захочет на аудите сесть (_|_) на ежа ...

     
  • 2.39, Walker (??), 12:19, 18/09/2024 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Что сейчас на Java пишут, кроме мобильных приложений и веб приложений на Spring?
     
     
  • 3.41, IdeaFix (ok), 12:22, 18/09/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Что сейчас на Java пишут, кроме мобильных приложений и веб приложений на
    > Spring?

    На самом деле очень много очень большого софта вокруг люцены и солра. Ну а про Elasticsearch тут почитайте в новостях. Мобильного и веба я не касаюсь вообще, даже по приборам не ведаю что там, но люцена пллюс кибана - это очень много.

     
     
  • 4.90, User (??), 08:28, 19/09/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Кафку забыл :). Ну и hadoop'ы с обвязкой все еще в количестве.
     
     
  • 5.101, IdeaFix (ok), 12:02, 19/09/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Кафку забыл :). Ну и hadoop'ы с обвязкой все еще в количестве.

    Не забыл... скалу и ктолин тоже не забыл. Просто кто-то застрял в эпохе спринг, как автор выше, а кто-то, как я, застрял в солре.


     
  • 5.113, Dmitry (??), 18:45, 19/09/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Spring -  интеграционный фреймворк который позволяет соединить разнородные библиотеки в том числе люсины кафки и hadoop'ы
     
     
  • 6.116, _ (??), 00:38, 20/09/2024 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 3.59, Аноним (59), 16:29, 18/09/2024 [^] [^^] [^^^] [ответить]  
  • –7 +/
    > Что сейчас на Java пишут

    Не пишут, а дописывают к уже написанному. В РФ правда рынок почти схлопнулся, все перешли на гошку и ноду.

     
     
  • 4.69, Аноним (69), 19:15, 18/09/2024 [^] [^^] [^^^] [ответить]  
  • +/
    У нас же есть отечественный OneScript.
     
     
  • 5.83, Аноним (-), 04:13, 19/09/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Также есть, YoptaScript.
     
  • 4.74, JackONeill (?), 20:16, 18/09/2024 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Ничего не утверждаю, не моя область. Но на hh больше 6000 вакансий по ключевому слову Java. По ноде и гошке 1500+-
    Можно ли это брать в расчет? Хз. Оставлю на обсуждение кто шарит. Но как то не сходится.
     
     
  • 5.76, Аноним (76), 20:48, 18/09/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Количество вакансий что-то говорит только о спросе, но ничего не говорит об эффективности разработки на том или ином языке — то, что на Яве пишется за день на ассемблере займёт месяц (условно конечно же). А что-то, что пишется на ассемблере на Яве вообще может быть невозможно написать. Дьявол в деталях.

    Скажем, та же Yahoo! как писала всю свою аналитику на Яве, так и продолжает, и даже не думает на что-то иное переходить. Понятно, что как и в любой большой корпе там где уместно используются и другие языки (Питон, Нода, Го), но ворочать петабайты — только сабж.

     
  • 5.77, Аноним (-), 21:07, 18/09/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Из тех 1500 вакансий почти все это джуны и стажеры. А в джаву попробуй джуном, там от миддла как правило и выше. Именно количество вакансий на джунов говорит о том жив язык или скорее мёртв.
     
     
  • 6.79, _ (??), 23:46, 18/09/2024 [^] [^^] [^^^] [ответить]  
  • +/
    >Именно количество вакансий на джунов говорит о том жив язык или скорее мёртв.

    Любопытная мысль ... и я её думаю :)

    А о чём говорит факт что вакансий джунов на любом языке больше нет?
    Говорит ли это о том, что программирование - мертво? :\

     
     
  • 7.91, LinupsCrashGitz (ok), 08:40, 19/09/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Да
     
  • 6.88, JackONeill (?), 07:37, 19/09/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Как раз, судя по hh, на java больше всего вакансий для джунов, специально покопался посидел, интересно стало. Очень много, на ноде тоже нашел. А вот джуны гоферы, походу, никому не нужны.
     
     
  • 7.112, Dmitry (??), 18:42, 19/09/2024 [^] [^^] [^^^] [ответить]  
  • +/
    кстати сам hh.ru написан на java
     
  • 4.81, Аноним (81), 00:15, 19/09/2024 Скрыто ботом-модератором     [к модератору]
  • –3 +/
     
  • 3.99, neo one (?), 11:39, 19/09/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >Что сейчас на Java пишут, веб приложений на Spring?

    почти всё в хайлоаде ) и вебню уже многие перетаскивают со шпринга на микронавты, кваркусы

     
     
  • 4.124, Golangdev (?), 10:55, 20/09/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Ни разу в реале не видел компаний кто бы использовал Micronaut или Quarkus.
     
  • 3.110, Аноним (109), 17:27, 19/09/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Например, Weasis.
     
  • 3.111, Аноним (109), 17:28, 19/09/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Openfire.
     
     
  • 4.117, _ (??), 00:47, 20/09/2024 [^] [^^] [^^^] [ответить]  
  • +/
    >Openfire 4.9.0 release!
    >Posted by Guus der Kinderen
    >2 days, 1 hour ago

    Ничоси ... оно даже живое 8-о
    Ну что тут скажешь ... "если поциент упорно хочет жить - медицина тут бессильна!"(С) :-)

     
  • 3.114, Dmitry (??), 18:54, 19/09/2024 [^] [^^] [^^^] [ответить]  
  • +/
    это примерно как спрашивать какие программы пишутся на каком то языке,  исключая те где используются библиотеки.
    Библиотеки нужно использовать как можно больше
     
     
  • 4.121, Аноним (121), 06:49, 20/09/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Для интенсивных вычислений, например, библиотеки пишут на C или Фортране. Потом вызывают из других языков.
     
  • 3.128, oph (?), 15:54, 21/09/2024 [^] [^^] [^^^] [ответить]  
  • +/
    всё, что должно хоть как-то работать сейчас и через пару лет. от госуслуг до сайта ржд
     
  • 3.130, iZEN (ok), 19:16, 21/09/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Что сейчас на Java пишут, кроме мобильных приложений и веб приложений на Spring?

    Netbeans IDE, например.

     

  • 1.3, Жироватт (ok), 10:15, 18/09/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • –12 +/
    640 Гигабайт рамы всё ещё достаточно для выполнения сервисов на яве А разве это... большой текст свёрнут, показать
     
     
  • 2.5, Минона (ok), 10:32, 18/09/2024 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Интересно, сколько реально пользующегося софта отвалится и потребует переработки для работы с самописными механизмами доступа к удалённым процедурам без брокеров и прослоек

    Нисколько, такой софт обычно прибит к конкретной версии JVM.

     
     
  • 3.6, _kp (ok), 10:41, 18/09/2024 [^] [^^] [^^^] [ответить]  
  • +/
    С Явой привязка к конкретной версии компенсируется возможностью создания и портабельных приложений, и возможности держать в системе хоть несколько вариантов типа одной и той же Явы.
     
     
  • 4.9, Аноним (-), 10:49, 18/09/2024 Скрыто ботом-модератором     [к модератору]
  • –2 +/
     
  • 4.11, Аноним (14), 10:54, 18/09/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Почему тогда нельзя на андроид поставить несколько джав чтобы запускать старые приложения?
     
     
  • 5.18, Аноним (18), 11:33, 18/09/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Потому что гугл не дает разных версий апи и не делает их совместимыми.
     
     
  • 6.20, Аноним (14), 11:40, 18/09/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Что значит не даёт автор выше написал что всё можно сделать. Запустить в чруте разные версии чего там давать. Но что-то не выходит каменный цветок.
     
     
  • 7.55, Аноним (18), 15:11, 18/09/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Ага, запусти андрюшу в чруте
     
  • 5.57, _kp (ok), 16:08, 18/09/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Почему тогда нельзя на андроид поставить несколько джав чтобы запускать старые приложения?

    Проблемы Андроида, как не полноценной ОС, это не проблемы Явы.

    Хотя, через костыль типа Winlator, можно попробовать запустить Виндовую Яву...  


     
  • 3.25, Жироватт (ok), 11:55, 18/09/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Ну, в пределах 8й-9й версии я по своему опыту вполне свободно обновлял ВМ'ку, там ломающих таких изменений не было.
     
     
  • 4.44, Аноним (44), 13:02, 18/09/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Как раз между 8 и 9 сломали больше всего за всю историю жавы, сделав ПО в значительной мере несовместимым.
     
  • 4.50, IdeaFix (ok), 14:10, 18/09/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Между 7 и 8 да, а вот 8 и 9 это была боль. Но нужды собой смигрировать на 9 не было.
     
  • 3.125, Golangdev (?), 10:59, 20/09/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Интересно, сколько реально пользующегося софта отвалится и потребует переработки для работы с самописными механизмами доступа к удалённым процедурам без брокеров и прослоек

    ни разу не видел в реале, чтобы кто-то использовал самописные RPC, хотя и не утверждаю что по недосмотру такие не могли появиться =)

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

    а вот в вендорах вполне могут кстати, там вообще дикий запад, можно писать любую фигню, а потом сдать лоху-заказчику =)

     
  • 2.15, Аноним (15), 11:12, 18/09/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Если аккуратно писать, то небольшие сервисы на java памяти потребляют ~120мб в простое, так-же как и C#. Конечно, если spring'овых сервисов нахерачить, то тогда в магазин за памятью.
     
     
  • 3.17, Аноним (44), 11:27, 18/09/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Это ты ещё openj9 не обмазывался, вот там заточено на эффективность и легко конфигурируется. С додиезом плохое сравнение на самом деле.
     
  • 3.29, Жироватт (ok), 12:00, 18/09/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Если аккуратно писать.
    ЕСЛИ.
     
  • 3.49, Аноним (49), 14:02, 18/09/2024 [^] [^^] [^^^] [ответить]  
  • –2 +/
    На дотнете можно и в 50 мегабайт уложиться. Вообще, я бы рекомендовал дотнет джавистам. Там сейчас всё довольно хорошо сделано и сообщество с джавистами очень похожее
     
     
  • 4.53, Аноним (14), 14:36, 18/09/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Знаем мы этих удаляльщиков бесплатного функционала. https://www.opennet.ru/opennews/art.shtml?num=56020
     
  • 4.62, Аноним (59), 16:35, 18/09/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > На дотнете

    Такое обычно только врагам желают. Особенно в контексте того, как они ВНЕЗАПНО убрали Main и сделали имплицитными using.

     
     
  • 5.85, Враг (?), 07:04, 19/09/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > ВНЕЗАПНО убрали Main

    Опционально же. Не хочешь - не пользуйся

    > и сделали имплицитными using.

    Опционально же. Включается в настройках проекта

     
  • 4.89, Аноним (89), 08:22, 19/09/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Жизнь сначала заставила писать на C#, потом через несколько лет на Java. В обоих языках и фреймворка есть свои уникальные вкусняшки, но концептуально одно и тоже. Любая задача почти одинаково решается и там и там. Зависит от конторы, если начали с C#, то будут писать и поддерживать его и наоборот. Но спрос на джавистов в россии и европе больше. А в штатах больше шарписты нужны.
     
  • 2.26, IdeaFix (ok), 11:55, 18/09/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > 640 Гигабайт рамы всё ещё достаточно для выполнения сервисов на яве?

    -Xms не работает теперь, только -Xmx, ну и SOLR желает отдельную память... а не эту вашу кучу. А так да, на 640M всё еще ява запускается.

     

  • 1.4, Аноним (4), 10:22, 18/09/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    PHP еще не интегрировали? Там тоже JIT.
     
  • 1.12, Аноним (12), 11:04, 18/09/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Что сложнее - Java или C++ ?
     
     
  • 2.23, Жироватт (ok), 11:50, 18/09/2024 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Сесть и раскурить трёхтомник Кнута. Остальное - выбирается под нишу.
     
     
  • 3.27, IdeaFix (ok), 11:56, 18/09/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Сесть и раскурить трёхтомник Кнута. Остальное - выбирается под нишу.

    Это в котором в четвертой книге тома 4 и 5?

     
     
  • 4.30, Жироватт (ok), 12:02, 18/09/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Классические - три тома, остальное же на самом деле нужно курить если работаешь с этим.
     
  • 3.31, Аноним (31), 12:05, 18/09/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Пока ещё дальше одной главы никто ещё не раскурил.
     
  • 3.70, penetrator (?), 19:16, 18/09/2024 [^] [^^] [^^^] [ответить]  
  • +/
    ты раскурил? или поперхнулся?

    какой процент курящих по больнице? 0.0001?

     
  • 2.61, Аноним (59), 16:31, 18/09/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Странный вопрос. Джава простая как пробка на самом деле, в отличии от плюсов, где с памятью и указателями нужно работать вручную. Плюсы по моему вообще никто полностью не знает.
     
     
  • 3.104, Аноним (104), 12:57, 19/09/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Джава простая как пробка на самом деле

    На самом деле нет. И в самом языке много в новых версиях наворачивают, и стандартная библиотека огромная, и кроме Явы для реального трудоустройства надо ещё всякие Спринги, Хайбернейты и Джакарты знать.

    > в отличии от плюсов, где с памятью и указателями нужно работать вручную

    Не нужно, а можно. Не путать с чистым С. В С++ контейнеры (включая строки), смарт пойнтеры и прочие средства стандартной библиотеки творят чудеса, очень редко надо вручную с памятью работать.

     

  • 1.16, Аноним (16), 11:15, 18/09/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    > добавлена поддержка использования разметки Markdown для документирования кода в комментариях, которую можно использовать вместо смеси из HTML и @-тегов JavaDoc

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

     
  • 1.43, Аноним (43), 13:00, 18/09/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    а для Андройд Студио какую минимальную версию Java SE можно использовапть?
     
  • 1.45, BlackRot (ok), 13:36, 18/09/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Пойду обновлю на своём майнкрафт сервере 😅
     
     
  • 2.47, Швондик (?), 13:52, 18/09/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Лучше подними сервер для Marvel Heroes Omega от Дэвида Бревика, вдохновителя и создателя Diablo и Diablo 2
     

  • 1.46, Аноним (49), 13:51, 18/09/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    У меня был один коллега, устраивался поработать на два месяца Он устроился, пок... большой текст свёрнут, показать
     
     
  • 2.48, Аноним (48), 14:01, 18/09/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Не юзаю комментарии, т.к. в своем коде разбираюсь и без них. Да и в чужом все понятно. Если названия констант, переменных и функций именовать так, чтобы их смысл был самоочевидным. Комментарии нужны только тогда, когда кусок кода можно понять, прочитав какие-то доки. Тогда можно кратко объяснить, что тут происходит. Но такое редко бывает. Основном только с каким-нибудь редким железом. Типа когда на PCjr в доках написано, что нельзя просто так сбросить синхронизатор и поменять частоту генерации пикселей. Нужно совершить ритуал считывания 512 байт до сброса и после сброса. Без комментария было бы не понятно, нафиг оно нужно.
     
     
  • 3.54, Жироватт (ok), 14:36, 18/09/2024 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Ага, ага. Не юзаю комментарии, не юзаю комментарии, зато потом такой "плак-плак, я писал это десять лет назад, мне нужно три дня на вспомнить... Как критичный баг? Как вчера?7 Почему на меня стучат коллеги в служебных записках, крысы е***ные!? Почему меня, такого талантливого звездунчика прямо просят на выход!?!?".

    На опеннетах все такие смелые, независимые, умные, целое дерево исходников разбирают за минуту до косточек без единого комментария, а по факту плачутся в жилетку в кадрах, когда их посылает команда. Или когда они остаются в команде одни и тонут в тикетах.

     
     
  • 4.64, Аноним (49), 16:56, 18/09/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > На опеннетах все такие смелые, независимые, умные, целое дерево исходников разбирают за минуту до косточек без единого комментария

    Я как-то лучше разберу дерево исходников, чем дерево исходников и дерево комментариев к ним, спасибо.

     
     
  • 5.78, Аноним (76), 23:40, 18/09/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Я как-то лучше разберу дерево исходников, чем дерево исходников и дерево комментариев к ним, спасибо.

    Как раз-таки ты не разберёшь ни того, ни другого, так как кодить умеешь только у себя в воображении, а программировать не умеешь вообще.

     
  • 3.65, Аноним (44), 17:38, 18/09/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Без комментариев невозможно понять, почему так, а не иначе. Сколько kloc твои программы без комментариев? Сколько дней ты тратишь на понимание логики каждого костыля?
     
     
  • 4.71, Аноним (69), 19:18, 18/09/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Он походу одна рокзвезда у себя в конторе. И ему все можно.
     
  • 4.84, Илья (??), 06:48, 19/09/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Не понятно, почему вы приплетаете комментарии к пониманию кода. Это же не связанные вещи. Хороший код в комментариях не нуждается, плохой код с комментариями только хуже становится. Вы "Чистый код" перечитайте
     
     
  • 5.87, Аноним (44), 07:33, 19/09/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Это напрямую связанные вещи. Если комментарий сообщает, как и зачем, понимать логику кода просто нет необходимости (а на это нужно время) и можно сразу заняться либо доработкой, либо полной заменой. Ну и в целом, осознание важности комментариев приходит после определённого числа KLOC в проекте, особенно, когда каждая секунда задержки приводит к простою прода или массовым страданиям пользователей. А вот понимание недостатков архитектуры приходит с возрастом проекта -- невозможно всё предусмотреть, и вот тут хорошо сдобренный комментариями код здорово помогает рефакторингу -- если комментариев нет, придётся пройти по всем неочевидным проблемам кодовой базы.
     
     
  • 6.93, Аноним (49), 09:03, 19/09/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Почему вы просто не пишите понятный код?

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

    Угадай, что поменялось?

     
     
  • 7.96, Аноним (44), 09:41, 19/09/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Тут всё веселье начнётся, когда придётся в этом коде разбираться и переписывать. Если уж автору было не очевидно, то что говорить о посторонних. А костыли вообще не могут быть понятными, это нонсенс.
     
     
  • 8.103, Аноним (49), 12:56, 19/09/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Ну ок А как комментарии вида это стул, на нём едят тут помогут-то ... текст свёрнут, показать
     
     
  • 9.107, Аноним (44), 14:00, 19/09/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Декларируют ожидаемое поведение В некоторых случаях их логично удалять через оп... текст свёрнут, показать
     
  • 5.100, Ztp (?), 11:57, 19/09/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Те кто не умеет писать комментарии по делу, и не понимают зачем это всё.
    А задача комментариев как минимум две:
    - Дать объяснение что почему далее делает вот такие неочевидные вещи, которые могут походить на ошибку
    - Задеклорировать то что мы тут хотим сделать, и тогда наоборот в коде легче найти ошибку ибо реализация отличается от декларации.

    Без комменатриев ты вынужден всегда верить коду, и если там ошибка в логике, баги могут жить годами.

     
     
  • 6.102, Аноним (49), 12:51, 19/09/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Дать объяснение что почему далее делает вот такие неочевидные вещи, которые могут походить на ошибку

    Чему верить? Коду или комментариям?

    > Задекларировать то что мы тут хотим сделать, и тогда наоборот в коде легче найти ошибку ибо реализация отличается от декларации.

    Чему верить? Коду или комментариям?

    > Без комменатриев ты вынужден всегда верить коду, и если там ошибка в логике, баги могут жить годами.

    Чему верить? Коду или комментариям?

     
  • 2.51, Жироватт (ok), 14:28, 18/09/2024 [^] [^^] [^^^] [ответить]  
  • –6 +/
    > Не делайте как он, пожалуйста. Не пишите комментарии без необходимости.

    Я просто для подобных контактов завожу отдельную папочку (если поддерживает текущий корпоративный мессенджер проекта/команды) или ставлю тег #Самтрест в ник (если мессенджер поддерживает кастомные ники контакта), после чего просто игнорирую любой ной на "ниииипанятна" (их или на их код) в личные сообщения. А тех, кто не документирует модули и функции по стандарту я банально и сразу одариваю служебкой или пачкой служебок.

    После меня код читаем и поддерживаем. В том числе и благодаря комментариям с гиперссылками что и почему я сделал.

     
     
  • 3.72, Аноним (49), 19:18, 18/09/2024 [^] [^^] [^^^] [ответить]  
  • +4 +/
    > В том числе и благодаря комментариям с гиперссылками что и почему я сделал.

    Вау, да я вижу тут у нас объявился Сениур Девелопер со служебками.

     
  • 3.75, Илья (??), 20:33, 18/09/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Ты к служебкам пишешь комментарии?

    > После меня код читаем и поддерживаем.

    Спасибо за объективную информацию

     
  • 3.86, Аноним (86), 07:17, 19/09/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > "ниииипанятна"

    Всё понятно, но завалено комментариями.

    > просто игнорирую любой ной
    > После меня код читаем и поддерживаем.

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

     
     
  • 4.92, Жироватт (ok), 09:00, 19/09/2024 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Угу, понятно-понятно. Верю. А из отладчика меня выдирают с просьбой помочь просто ради приятной беседы. Или тут как с шуткой про разорившегося девелопера?

    > Надеюсь, вы найдёте своё место где-нибудь за пределами разработки

    Я уже его нашел в разработке. И помогаю выйти из неё нелюбителям комментариев.

     
     
  • 5.94, Аноним (49), 09:05, 19/09/2024 Скрыто ботом-модератором     [к модератору]
  • +1 +/
     
  • 5.120, Соль земли (?), 05:59, 20/09/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > И помогаю выйти из неё нелюбителям комментариев

    Чел, за нас этот вопрос давно решили. Самодокументируемый код это не чья-то прихоть. Это стандарт, который ожидает увидеть любой разработчик, прошедший академическое образование.

     
     
  • 6.122, Жироватт (ok), 08:53, 20/09/2024 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Чел, за нас этот вопрос давно решили.

    За тебя - не спорю - это решили. Сектанты "clear code" и другие любители передёрнуть на свою элитарность с неограниченным временем работ или любители "write once - no read".
    За меня никто не решил, я сам решил, основываясь на практике и опыте *реальной* разработки и *реальной* поддержки. В том числе и за такими сектантами. В том числе и двадцатилетнего "самодокументированного", "очевидного" - на самом деле нет, но это когнитивное искажение по заразности хуже меметического оружия из баек ои SCP - кода, чьи авторы уже умерли от старости, или глубоко на пенсии.

    > Самодокументируемый код это не чья-то прихоть. Это стандарт,

    ...который на практике в реальном мире (мирки завсегдатаев хабра и прочих рассадников культов "правильного кода" вынесем за скобочки) ограниченно возможен или в глубоко академических (где гранты от государства И время на вылизывание кода фактически не лимитировано), или в глубоко абстрактных проектах. Хотя и там, и там все равно необходимо хотя бы в шапке-комментарии к функциям (для автогенератора документации) описывать что, как и ставить ссылку на используемый метод.

     
  • 6.131, Quad Romb (ok), 12:26, 29/09/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Конечно, самодокументируемый код это не чья-то прихоть.
    И самоподдерживаемый код - это тоже не чья-то прихоть.
    Это совершенно понятное, хотя и в чём-то детское желание получить бесплатно скатерть-самобранку и сапоги-скороходы.

    Не смею Вас отговаривать желать подобного. Идеализм мне до сих пор остаётся симпатичен.
    Но очень даже может быть, что Вас гораздо менее вежливо отговорят немножко другие люди, обладающие возможностью оптимизировать как Ваши доходы, так и, собственно Вас самих.
    Пожалуйста, не говорите потом, что Вы не были осведомлены о такой возможности.

     
     
  • 7.132, Аноним (49), 08:12, 30/09/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Не смею Вас отговаривать желать подобного. Идеализм мне до сих пор остаётся симпатичен.

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

    У нас комментарии используются только в одном месте, на публичных моделях. По ним генерируется документация openapi для тестировщиков. В других местах запрещено


     
     
  • 8.133, Quad Romb (ok), 18:48, 03/10/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Нормальное именование не исключает комментарии, и наоборот Но если у Вас так п... текст свёрнут, показать
     

  • 1.58, Аноним (59), 16:28, 18/09/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    Нынче php уже сложнее джавы. Джава это образец стабильности в наше время в противовес веб-фронтенду, где меняется всё по 100500 раз в год!
     

  • 1.63, Аноним (63), 16:52, 18/09/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Хвостовую рекурсию она всё ещё не умеет?
     
     
  • 2.129, iZEN (ok), 18:58, 21/09/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Странный вопрос. Правильнее спрашивать: может ли язык и его среда выполнения оптимизировать хвостовую рекурсию.
     

  • 1.126, Аноним (126), 15:57, 20/09/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ну теперь то майнкрафт лагать не будет?
     

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



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

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