The OpenNET Project / Index page

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

Компания Oracle опубликовала Java SE 12

20.03.2019 10:32

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

Java SE 12 отнесён к категории выпусков с обычным сроком поддержки, обновления для которого будут выпускаться до следующего релиза. В качестве ветки с длительным сроком поддержки (LTS) следует использовать Java SE 11, обновления для которого будут выпускаться до 2026 года. Прошлая LTS-ветка Java 8 будет поддерживаться до декабря 2020 года. Следующий LTS-релиз намечен на сентябрь 2021 года. Напомним, что начиная с выпуска Java 10 проект перешёл на новый процесс разработки, подразумевающий более короткий цикл формирования новых релизов. Новая функциональность теперь развивается в одной постоянно обновляемой master-ветке, в которую включаются уже готовые изменения и от которой раз в шесть месяцев ответвляются ветки для стабилизации новых выпусков.

Из новшеств Java 12 можно отметить:

  • Добавлена экспериментальная поддержка сборщика мусора Shenandoah, работающего с минимальными приостановками (Low-Pause-Time Garbage Collector). Планировщик развивается компанией Red Hat и примечателен использованием алгоритма, сокращающего время остановок во время сборки мусора за счёт проведения чистки параллельно с выполнением Java-приложений. Размер вносимых сборщиком мусора задержек предсказуем и не зависит от размера кучи, т.е. для куч в 200 MB и 200 GB задержки будут идентичны (не выходят за пределы 50 мс и обычно укладываются в 10 мс);
  • В состав включён набор для проведения точечных тестов производительности (microbenchmark), позволяющий организовать непрерывное тестирование производительности различных компонентов кодовой базы и упрощающий добавление собственных тестов;
  • Обеспечена предварительная поддержка новой формы выражений "switch", не требующей использования оператора "break" и позволяющей объединять повторяющиеся метки. Например, вместо
    
       switch (day1) {
           case MONDAY:
           case FRIDAY:
           case SUNDAY:
               System.out.println(6);
               break;
       ...
       int numLetters;
       switch (day2) {
           case MONDAY:
           case FRIDAY:
           case SUNDAY:
               numLetters = 6;
               break;
       ...
    
    новые выражения позволяют указать
    
       switch (day1) {
           case MONDAY, FRIDAY, SUNDAY -> System.out.println(6);
       ...
       int numLetters = switch (day2) {
        case MONDAY, FRIDAY, SUNDAY -> 6;
       ...
    
  • Представлен API JVM Constants (java.lang.invoke.constant), позволяющий описать все типы загружаемых констант, используемых в файлах с Java-классами и в компонентах runtime;
  • Добавлена поддержка компактного форматирования чисел (NumberFormat.Style.SHORT). Например, вместо 1000 может быть выведено "1K", а вместо 1000000 - "1M";
  • Добавлен новый флаг "-XX:+ExtensiveErrorReport" для вывода более детальных сведений об ошибках в случае краха приложения;
  • В реализацию TLS добавлена поддержка потокового шифра ChaCha20 и алгоритма аутентификации сообщений (MAC) Poly1305;
  • Предложен один унифицированный порт для архитектуры AArch64 (ранее развивалось два порта aarch64 и arm64, теперь оставлен только порт aarch64);
  • По умолчанию на основе предлагаемого по умолчанию списка классов в процессе сборки JDK обеспечена генерация архивов CDS (Class-Data Sharing), обеспечивающих совместный доступ приложений к общим классам. При помощи CDS общие классы могут размещаться в отдельном совместно используемом архиве, что позволяет ускорить запуск приложений и снизить накладные расходы. Предоставление архивов CDS сокращает время запуска и позволяет избавить пользователей от выполнения "-Xshare:dump" для создания CDS;
  • В сборщик мусора G1 добавлена поддержка отменяемой чистки смешанных коллекций (Abortable Mixed Collections), позволяющая оборвать процесс необязательной стадии чистки, если превышено максимальное время приостановки на сборку мусора;
  • В сборщике мусора G1 реализована возможность возвращения операционной системе неиспользуемых областей памяти при неактивности приложения.
  • В сборщиках мусора G1 и Parallel появилась возможность выноса старых данных из кучи на альтернативные устройства памяти, такие как NV-DIMM;
  • В сборщик мусора ZGC (Z Garbage Collector) добавлена возможность выгрузки неиспользуемых классов (class unloading) для высвобождения занимаемых ими структур данных. Выгрузка производится в параллельном потоке и не влияет на выполнение Java-программ;
  • Для Linux реализован новый опциональный механизм запуска процессов POSIX_SPAWN (jdk.lang.Process.launchMechanism = POSIX_SPAWN), позволяющий обойти некоторые редко возникающие проблемы при ответвлении дочерних процессов. По умолчанию продолжает применяться механизм VFORK;
  • Отмечается, что библиотека Swing (client-libs/javax.swing) ограничена поддержкой только старых выпусков GTK, использование версии 3.20 и новее приводит к проблемам при отрисовке некоторых элементов интерфейса. При наличии в системе новых версий GTK в качестве обходного пути рекомендуется запускать приложения с опцией "-Djdk.gtk.version=2.2" для отката на GTK2+.


  1. Главная ссылка к новости (http://mail.openjdk.java.net/p...)
  2. OpenNews: Первый стабильный выпуск Corretto 8, LTS-дистрибутива Java 8 от Amazon
  3. OpenNews: Компания Oracle опубликовала Java SE 11
  4. OpenNews: Oracle планирует убрать из Java встроенную поддержку сериализации
  5. OpenNews: Система машинного обучения для синтеза типового кода на языке Java
  6. OpenNews: Компания Oracle опубликовала Java SE 10 и прекратила поддержку Java SE 9
Лицензия: CC-BY
Тип: Программы
Ключевые слова: java, jdk
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (112) Ajax | 1 уровень | Линейный | Раскрыть всё | RSS
  • 1.2, Аноним (2), 10:40, 20/03/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +7 +/
    Что то мне этот switch напоминает... Где же они его идею позаимствовали...
     
     
  • 2.3, Попугай Кеша (?), 10:43, 20/03/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ха-ха! Инновации...
     
     
  • 3.5, Аноним (2), 10:47, 20/03/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Именно, с учетом того что прошло уеву тучу лет с момента появления такого синтаксиса)
     
     
  • 4.36, Дядя (?), 13:05, 20/03/2019 [^] [^^] [^^^] [ответить]  
  • –2 +/
    жаберам ссышь в глаза - всё божья роса
     
  • 2.16, йййй (?), 11:17, 20/03/2019 [^] [^^] [^^^] [ответить]  
  • +8 +/
    Для общего развития - а откуда?
     
     
  • 3.18, Oleg Khlystov (?), 11:32, 20/03/2019 [^] [^^] [^^^] [ответить]  
  • +5 +/
    из kotlin
     
     
  • 4.21, max (??), 11:41, 20/03/2019 [^] [^^] [^^^] [ответить]  
  • +4 +/
    это фиаско :-/
     
     
  • 5.57, анон (?), 18:21, 20/03/2019 [^] [^^] [^^^] [ответить]  
  • –2 +/
    это нормально когда язык развивается и наполняется новыми улучшениями. Ждем := сахарок
     
     
  • 6.67, Илья (??), 20:29, 20/03/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Таким образом в c напихали огромную кучу не всем нужного синтаксиса Например г... текст свёрнут, показать
     
     
  • 7.88, Онаним (?), 09:06, 21/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > Например геттер можно написать 4 разными способами:
    > int GetAge() {return _age; };
    > int GetAge() =>_age;
    > int GetAge { get { return _age; } }
    > int GetAge =>_age;

    Только первые два - это методы, а собственно геттеры - последние два (полная и упрощенная записи). Два способа - не так уж много для запоминания.

    > Встроили linq с sql подобным синтаксисом:

    Когда был жив Linq-to-SQL, было по-своему удобно. Но в целом да, не особо оправданная фича.

    > А джава в этом плане просто неторопясь собирает проверенные временем решения.

    Ключевое слово - "не торопясь" ) Сколько лет джаве потребовалось, чтобы реализовать свой Linq под названием Stream API? И получилось как-то так себе (спасибо кривой реализации дженериков).

     
     
  • 8.98, Илья (??), 23:04, 21/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Зато это отличное подспорье для вкусовщины, которой хотелось бы вообще не видеть... текст свёрнут, показать
     
  • 4.61, НяшМяш (ok), 19:25, 20/03/2019 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Из JavaScript же )
     
  • 4.84, user124 (?), 01:54, 21/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Может наоборот, бесполезный kotlin позаимствовал многое из java?
     
  • 3.33, Аноним (33), 12:12, 20/03/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Большинство фич приходит в жаву из скалы. Это второй по популярности жвм язык после самой жавы. Которому внезапно уже 15 лет от роду.
     
     
  • 4.37, Аноним (37), 13:56, 20/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Уже третий
     
  • 4.63, Аноним (63), 19:39, 20/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Попрошу заметить, что Скала уже прекратила развитие. А новая компания Одерского не выпустила ни одного релиза с момента прекращения существования предыдущей компании.
     
     
  • 5.75, Борщдрайвен бигдата (?), 22:52, 20/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    https://github.com/scala/scala/pulse/monthly
    https://www.scala-lang.org/events/
    https://github.com/scala/scala/releases
    https://contributors.scala-lang.org/
    http://dotty.epfl.ch/
     
     
  • 6.77, Аноним (77), 23:14, 20/03/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    И что?


    Scala 2.12.0
    @adriaanm adriaanm released this on Nov 3, 2016


    С тех пор даже 2.13 не вышла. Прошло 3 года.

     
  • 5.113, Junior frontend developer (?), 07:08, 23/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Что вы несете? 2.13 на подходе и третья готовится
     
     
  • 6.115, Аноним (115), 09:22, 23/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > 2.13 на подходе

    уже 3 года....

    > третья готовится

    И, скорее всего, в состоянии готовки и останется.....

    > Что вы несете?

    Факты и ничего личного. Новая компания Одерского была создана под обслуживания корпоративных клиентов на Java. Предыдущая - занималась развитием Scala. Вот и вся разница. В настоящее время Scala - не более чем закрытый академический проект без реальной коммерческой поддержки, с проблемами миграции на JDK12.

     
  • 3.34, shjfbg (?), 12:42, 20/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    https://doc.rust-lang.org/book/match.html
     
  • 3.41, YetAnotherOnanym (ok), 14:36, 20/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Наверное, синтаксис гардов где-то подсмотрел.
     
  • 2.28, пгуыыцрщ (?), 11:55, 20/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Это больше похоже на внедрение аргументов в защиту от миграции на котлин (что происходит массово). "Зачем котлин, если эти фичи есть в ява?"

    Только не взлетит, ибо сахара в котлине гораздо больше, а все фичи из него запилить неполучится.

     
  • 2.42, Jh (?), 14:38, 20/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    а тот вообще из Си позаимствовали. какой ужас
     
     
  • 3.51, Аноним84701 (ok), 16:16, 20/03/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > а тот вообще из Си позаимствовали. какой ужас

    Учитывая, что тот же паскалевский намного меньше напоминал "таблицу прыжков":
    [code]
       CASE foo of
           -1: bar:=0;
          0..99 : bar:=50;
          100..999 : bar:=100;
          ELSE bar:=150;
       END;
    [/code]
    действительно ужас.

     
  • 2.46, Аноним (46), 15:26, 20/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Неужели из C?
     

  • 1.4, Аноним (4), 10:45, 20/03/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    опять занялись ненужными улучшениями!!

    алиасы на название типов (и генериков) - когда?

    юникс-сокеты (именованные каналы, если windows) -- когда? я как должен писать две программы общающиеся друг с дружкой -- через СЕТЕВЫЕ сокеты (на ::1) чтоль гонять данные от одной ко второй?

    обработка юникс-сигналов -- когда?

    общая память и общие системные очереди между разными процессами -- когда?

    как мне вообще писать на ява, если оно ничего не умеет? на jni чтоль половину кода писать?

    яже не прошу чего-то неординарного типа возможность компилирования и загрузки ebpf-фрагментов в ядро!! я же про базовые вещи

     
     
  • 2.10, Я (??), 10:59, 20/03/2019 [^] [^^] [^^^] [ответить]  
  • –5 +/
    А какие альтернативы? Питон -- не умеет в многопоточность, кресты -- стрельба по ногам, новомодные штуки типа go или js вообще ад.
     
     
  • 3.14, имя (?), 11:16, 20/03/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    а что не так с Go ?
     
     
  • 4.17, Я (??), 11:30, 20/03/2019 [^] [^^] [^^^] [ответить]  
  • –6 +/
    А что там? Область применения неясна, спроса на него ирл я не видел, как и крупных проектов на нём.
     
     
  • 5.22, Лапчатый девляпс бубунтёнак (?), 11:43, 20/03/2019 [^] [^^] [^^^] [ответить]  
  • +5 +/
    > Область применения неясна, спроса на него ирл я не видел, как и крупных проектов на нём.

    Ой! Ты меня таки смог удивить.

     
  • 5.23, Djam (ok), 11:44, 20/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    k8s например, ну очень маленький малыш....
     
     
  • 6.64, Я (??), 19:41, 20/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Нишевый серверный проект можно хоть на асме написать. В то время как пишут один кубернетес, пишется пара тысяч джава-проектов.

    Вот syncthing -- более живой пример, но у него благодаря go куча проблем -- то они не могли с inotify нормально работать, то адовые тормоза при передаче (не процессора, а просто скорость намного ниже реального соединения).

     
  • 5.47, лалик (?), 15:32, 20/03/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    ну есть там один такой маленький, Docker
     
  • 5.74, Александр Сербул (?), 21:54, 20/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    InfluxDB не маленькая
     
  • 5.79, Аноним (79), 00:33, 21/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Область применения сервер приложений для API. Спрос есть в развитых компаниях где у руля стоят технические специалисты, а не менеджер с курсов менеджера. Крупные проекты начиная от всяких DigitalOcean закансичвая российским Ozon.
     
  • 3.31, InuYasha (?), 12:08, 20/03/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А что не так с Си++? Рукопопие в 21ом веке же излечимо.
     
     
  • 4.80, Аноним (79), 00:35, 21/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Менеджера пакетов и системы сборок штатной нет, а так нормальный такой язык.
    Хотя вроде претендует сейчас Конан и СиМайк, но опять таки половина так половина сяк половина под линух половина под венду.
     
  • 3.62, НяшМяш (ok), 19:27, 20/03/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > новомодные штуки типа ... js

    простите, посмеялся

     
  • 2.12, receipt (?), 11:14, 20/03/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    "алиасы на название типов (и генериков) - когда?" - а разве можно добавить алиас на дженерике при стирании? Или вам не нужна обратная совместимость?

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

     
  • 2.15, onekosha (?), 11:16, 20/03/2019 [^] [^^] [^^^] [ответить]  
  • –5 +/
    Смотрел новый стандарт С++. "опять занялись ненужными улучшениями!!" Сборщика мусора нет. Когда? Свойств нет. Когда? Сравнение с образцом нет. Когда? Диапазоны? ...

    Выше был тролинг. (По функционалу С++ могу ошибаться, не пользуюсь). Язык программирования подбирается под конкретно рещаемую задачу. Если таких нужных Вам вещей нет в Java, может поискать другой язык, где это есть, и реализовать задачу.

     
     
  • 3.27, Урри (?), 11:54, 20/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Вы путаете библиотеки, фичи и синтаксический сахар. Если меня, например, задолбало писать тонну текста, заворачивая переменные в геттеры/сеттеры (на самом деле уже нет, я написал свой транслятор) и я хочу эту фичу в языке - почему надо искать другой язык, вместо улучшения этого?
     
  • 2.35, лютый жабист___ (?), 13:00, 20/03/2019 [^] [^^] [^^^] [ответить]  
  • +3 +/
    >юникс-сокеты (именованные каналы, если windows) -- когда? я как должен писать две программы общающиеся друг с дружкой -- через СЕТЕВЫЕ сокеты (на ::1) чтоль гонять данные от одной ко второй?

    сколько лет JNDI ? Странно, что ты про это не слышал.

    >как мне вообще писать на ява, если оно ничего не умеет?

    Не пиши.

     
  • 2.38, Аноним (38), 14:07, 20/03/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > я как должен писать две программы общающиеся друг с дружкой -- через СЕТЕВЫЕ сокеты (на ::1) чтоль гонять данные от одной ко второй?

    loopback-интерфейс в ядре давно работает через memcpy

     
     
  • 3.83, Xasd5 (?), 01:05, 21/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    а setfacl как делать на этот твой localhost?

    или ты один из тех кто решает все проблемы в линуксе через sudo chmod 777 ? :-)

     
  • 2.40, YetAnotherOnanym (ok), 14:34, 20/03/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > общая память и общие системные очереди между разными процессами -- когда?

    Джо Армстронг смотрит на тебя с любопытством и сочувствием.

     
  • 2.45, Аноним (45), 15:18, 20/03/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Успешно общался по юникс сокетам при помощи netty. А так да, Ява позиционирует себя как кроссплатформенную платформу (извиняюсь за каламбур), поэтому юникс сокетов в Ява se нет
     
     
  • 3.68, X4asd (ok), 20:34, 20/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > Ява позиционирует себя как кроссплатформенную платформу (извиняюсь за каламбур), поэтому юникс сокетов в Ява se нет

    и что не так с кросплатформенностью юникс-сокетов?

    юникс-сокеты существуют ВО ВСЕХ платформах (кроме DOS/Windows). unix-сокеты охренительно кросплатформенны.

    а вот тебе пример с уже существующими решениями связаными с DOS/Windows : https://docs.oracle.com/javase/8/docs/api/java/nio/file/attribute/PosixFilePer -- PosixFilePermissions выбрасывают ошибку на DOS/Windows, а почему точно также нельзя было сделать для unix-сокетов?

     
     
  • 4.81, Аноним (79), 00:38, 21/03/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Слушайте напишите для себя один раз расширение работающее через UNIX сокеты и радуйтесь, а для Windows платформы найдите там специалиста по mailbox или pipe помоему так она там называлась и будет вам кросплатформенная абстракция. Для отладки можете взять какую-нибудь TCP реализацию на случай когда все пойдет не так. А вообще не пойму у вас с производительностью уперлось все уже? Масштабировались с самого начала или нет?
     
  • 2.69, Илья (??), 20:40, 20/03/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > общая память и общие системные очереди между разными процессами -- когда?

    Вы просто наверное не поняли еще, что процессы не должны шарить между собой память

     
  • 2.76, Аноним (76), 23:14, 20/03/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Обработка сигналов есть в jvm около 20 лет, можете не ждать.
    Для unix сокетов вы можете воспользоваться сторонней библиотекой
    что такое системные очереди не знаю, возможно тоже доступно как и 2 предыдущих.
     
  • 2.103, iZEN (ok), 09:08, 22/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    В Java для межпроцессного взаимодействия лет двадцать существует RMI/JRMP.
     

  • 1.13, lsh (?), 11:16, 20/03/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Складывается впечатление, в Java в качестве улучшений языка в основную ветку попадают весьма странные вещи. Мне пока неизвестно, почему именно switch удостоился такого внимания, особенно в таком странном стрелочном синтаксисе вместо двоеточия, поэтому с JEP-ом ознакомлюсь позже. Кроме того, почему бы не добавить в язык реально более нужные вещи как async/await поверх CompletableFuture; генераторы вместо вручную зубодробительных Iterator и, может, Stream + если развить тему дальше, то и для InputStream/OutputStream/Reader/Writer; получение полноценной информации о типе (а не о загруженном классе); method-refs в текущем классе с помощью какого-нибудь class::doSomething, а не SomeLongVerboseClassName::doSomething; именованные параметры, чтобы избавиться от ненужных билдеров; неявная автогенерация кода для декораторов вместо тонн методов в абстрактных ForwardingClass; for-else и т.д. и т.п.
     
     
  • 2.19, Я (??), 11:33, 20/03/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Возможно, объём работ. Тебе дают по плану 2 месяца и говорят -- выбирай фичу. А в этот период влазит только свич, ну или брать генераторы и сделать релиз в 3 раза позже.
     
  • 2.20, max (??), 11:40, 20/03/2019 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Долго расписывать не хочется, но приведу пару примеров. Async/Await не вводят, потому что планируют Fiber, который является более мощным инструментом -> смотрим проект Loom. По поводу switch и стрелок... это preview, детали -> смотрим проект Amber. Автогенерация кода (я так понимаю, getters/setters/hashCode/equals/toString) может не понадобится в виде a-la lombok -> смотрим проект Valhalla.
    В итоге: если действительно интересно, то надо потратить немного времени на интернеты, многие вопросы не возникнут. Советую доклады JDK Language Summit.
     
  • 2.70, Илья (??), 20:58, 20/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > именованные параметры, чтобы избавиться от ненужных билдеров

    именованные параметры не помогут избавиться от билдеров.

     

  • 1.24, Аноним (24), 11:48, 20/03/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +6 +/
    > вместо 1000 может быть выведено "1K", а вместо 1000000 - "1M"

    Ну наконец-то. Все же на дворе 2к19, как-никак.

     
     
  • 2.44, microcoder (ok), 14:48, 20/03/2019 [^] [^^] [^^^] [ответить]  
  • –3 +/
    > Все же на дворе 2к19

    Что Вас заставляет писать 'k' вместо 0? Какие приемущества, что это даёт?

     
     
  • 3.52, zomg (?), 16:23, 20/03/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    кнопка k находится на home row при слепом наборе. удобнее набирать =)
    ну и, конечно, 2 килогода звучит лучше, чем 2 тысячи лет. очевидно.
     
     
  • 4.53, Andrey Mitrofanov (?), 16:27, 20/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > кнопка k находится на home row при слепом наборе. удобнее набирать =)

    MMXIX !   Чтоб сифири не мешали.

    > ну и, конечно, 2 килогода звучит лучше, чем 2 тысячи лет. очевидно.

     
  • 4.65, Аноним (63), 19:41, 20/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    2к года - это 2048 лет?
     
  • 2.54, Аноним (54), 16:51, 20/03/2019 [^] [^^] [^^^] [ответить]  
  • –4 +/
    2к19 = 2019
     
     
  • 3.55, Аноним (54), 16:52, 20/03/2019 [^] [^^] [^^^] [ответить]  
  • –2 +/
    edit:
    2к19 = 2190
     

  • 1.25, Аноним (25), 11:48, 20/03/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Смерть GO   - они так гордились своим GC
     
     
  • 2.58, анон (?), 18:25, 20/03/2019 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Вот это наброс! Браво.
     
  • 2.87, leap42 (ok), 05:40, 21/03/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Гошный gc какбе в 10-100 раз быстрее НОВОГО gc Java. Там есть чем гордиться.
     
     
  • 3.89, Шерстяной (?), 09:31, 21/03/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    http://gchandbook.org/
    Мальчик, почитай умных дяденек, чтобы не позориться, неся ахинею про то, в чеи не разбираешься.
     
     
  • 4.99, leap42 (ok), 05:23, 22/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > http://gchandbook.org/
    > Мальчик, почитай умных дяденек, чтобы не позориться, неся ахинею про то, в
    > чеи не разбираешься.

    по существу то есть что сказать? что я должен узнать из книжки 2011 года, когда нормальных GC ещё не существовало? средняя остановка GOGC измеряется микросекундами и она почти всегды быстрее одной милисекунды.

    почитайте лучше как развивался GOGC после выхода вашей брошюрки:

    https://blog.golang.org/ismmkeynote

     
     
  • 5.102, лютый жабист___ (?), 08:45, 22/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    >по существу то есть что сказать?

    Проблемы нет сделать pauseless GC. Просто он будет съедать неадекватно много производительности и ОЗУ. Его вообще-то уже сделали, Azul называется.

    Гошному ГЦ до жабкиного как до луны... в чём плюс жабки, для неинтерактивного приложения можно взять самый дубовый параллельный, он иногда будет STWшить минутами, но итоговые ресурсы, потраченные на ГЦ будут супернизкими. Для критичного к задержкам софта можно выбрать другой ГЦ.

    А в ГО, как понимаю, гвоздями прибит один ГЦ, который ест до 80% проца и до 200% ОЗУ (от активной кучи). Ну его такого на....

     
     
  • 6.104, leap42 (ok), 10:34, 22/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    за Azul спасибо, не знал, аж интересно стало

    > А в ГО, как понимаю, гвоздями прибит один ГЦ, который ест до 80% проца и до 200% ОЗУ (от активной кучи). Ну его такого на....

    мимо

    https://golang.org/pkg/runtime
    The GOGC variable sets the initial garbage collection target percentage. A collection is triggered when the ratio of freshly allocated data to live data remaining after the previous collection reaches this percentage. The default is GOGC=100. Setting GOGC=off disables the garbage collector entirely. The runtime/debug package's SetGCPercent function allows changing this percentage at run time. See https://golang.org/pkg/runtime/debug/#SetGCPercent.

    https://benchmarksgame-team.pages.debian.net/benchmarksgame/faster/go.html

     
     
  • 7.110, лютый жабист__ (?), 17:37, 22/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    >The GOGC variable sets the initial garbage collection target percentage

    Ну причём тут это? В жабке штук 5 совершенно разных ГЦ со своими фичами и достоинствами. У всех есть по десятку крутилкок в духе "sets the initial garbage collection target percentage" и многого другого.

    ГОшный ГЦ вроде как имеет дизайн УСТАРЕВШЕГО жабиного CMS (concurrent mark sweep), с отключенным STW. Жабин CMS делает долгий STW только когда совсем плохо, а ГО видимо говорит кря и жрёт оперативу и проц.

    Бисер надоело метать... Безпаузовый ГЦ в 95% случаев не нужен. Например у сервера приложений wildfly вообще параллельный ГЦ по дефолту и никаких пауз никогда не замечал.

     
     
  • 8.111, _ (??), 05:23, 23/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    И все как один - лютое оно Ни один не позволяет не отжирать жаве все корки и... текст свёрнут, показать
     
     
  • 9.116, лютый жабист__ (?), 12:20, 23/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    в из ж высунь... текст свёрнут, показать
     
  • 5.109, анонн (?), 17:27, 22/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    >> http://gchandbook.org/
    >> Мальчик, почитай умных дяденек, чтобы не позориться, неся ахинею про то, в
    >> чеи не разбираешься.
    > что я должен узнать из книжки
    > 2011 года, когда нормальных GC ещё не существовало?

    Деревянные были, на перфокартах, в то седой древности?

     
  • 3.93, лютый жабист___ (?), 11:32, 21/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    >Гошный gc какбе в 10-100 раз быстрее НОВОГО gc Java

    Быстрее Epsilon GC в 100 раз? ))))

    Вообще, в GO какой-то недоGC, деталей помню. Поэтому хоть в 1000 раз пусть будет быстрее.

     
     
  • 4.112, _ (??), 05:36, 23/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    >Вообще, в GO какой-то недоGC, деталей помню. Поэтому хоть в 1000 раз пусть будет быстрее.

    Да просто ты понимаешь что жаба - всио! :-) Вот тебя и пучит. А GC гошники сделали весьма недурственный. Хотя какие в дупу гошники - гугель его сделал, ГУ-ГЕЛЬ! Для себя ... ну и нам перепало :)

     

  • 1.26, Урри (?), 11:52, 20/03/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    > все ранее написанные Java-проекты без изменений будут работоспособны при запуске под управлением новой версии

    У меня gradle сломался.

     
     
  • 2.29, Anonim (??), 12:00, 20/03/2019 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Да он вообще вещь в себе. Сам сломался, сам костылей наставлял, сам заработал...
     

  • 1.30, Аноним (33), 12:02, 20/03/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    LTS не бывает в отрыве от вендора, а он в статье не указан. Лтс в сертифицированной жаве забесплатно собирается предоставлять только Амазон. Остальные вендоры - только за деньги. И у них собственные лтсы, не бывает просто "java lts". Опенждк в линуксах это несертифицированная жава, на свой страх и риск, независимо от лтсов.
     
     
  • 2.82, Xasd5 (?), 01:02, 21/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > Опенждк в линуксах это несертифицированная жава

    которая работает лучше чем сертифицированная -- особенно когда дело касается работы с графикой/шрифтами и как следствие динамической линковкой с новой порцией lib*.so :-)

     
  • 2.85, Аноним (85), 02:08, 21/03/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > несертифицированная жава, на свой страх и риск

    какой ужас

     

  • 1.32, InuYasha (?), 12:10, 20/03/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Похоже, что люди вконец разучились соображать, что же, всё-таки, хорошо, а что - плохо. (
     
     
  • 2.43, YetAnotherOnanym (ok), 14:47, 20/03/2019 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Осмелюсь высказать крамольное предположение, что люди - разные. Кому поп, кому попадья, а кому попова дочка. Кому арбуз, а кому свиной хрящик. И так далее. Что один считает остро-насущно необходимым, то другому - эталонно-ненужное ненужно.
     
  • 2.49, Аноним (49), 15:50, 20/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Ну так заработай теперь на своей уникальности.
     

  • 1.39, Аноним (79), 14:25, 20/03/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Привет, а async/await уже реализован в Java?
     
     
  • 2.48, Аноним (49), 15:50, 20/03/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Нет потому что асинк авейт не нужен.
     
  • 2.56, Аноним (33), 17:01, 20/03/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Корутины для жавы существуют как стороняя либа. Ну а в целом жава не нужна—есть котлин. В ещё более целом и котлин не нужен—есть раст.
     
     
  • 3.59, анон (?), 18:26, 20/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    И раст тоже не нужен поскольку есть Golang)
     
     
  • 4.71, Аноним (71), 21:19, 20/03/2019 [^] [^^] [^^^] [ответить]  
  • +5 +/
    И все они не нужны, ибо есть божественный C.
     
  • 4.86, Аноним (33), 02:39, 21/03/2019 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Голанг — это который по дизайну языка застрял в 1960-ых? Не смешите.
     
     
  • 5.100, Dmitry77 (ok), 08:27, 22/03/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    зато быстрый. как будто запускаешь программы 60-х на современном железе
     
  • 3.94, Аноним (-), 11:55, 21/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Сравниваем количество написанного на Java/Kotlin (hint: Android) с растом и понимаем что нужно, а что - нет.
     

  • 1.50, Попугай Кеша (?), 16:05, 20/03/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Чем оно лучше Clojure/Kotlin/Scala?
     
     
  • 2.66, Аноним (63), 19:45, 20/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    При всей странности вопроса, интересно, а запустятся ли на ней скала-продукты? Есть подозрение, что разработчики Скалы окончательно на неё забили. Про Clojure/Kotlin сомнений нет. Работоспособность обеспечат.
     
     
  • 3.90, Попугай Кеша (?), 09:41, 21/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    А что не так со Scala?
     
     
  • 4.92, Аноним (92), 11:22, 21/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > А что не так со Scala?

    Отмирает. А так - всё ок. Продукты, которые на Скале написаны, не могут сейчас быть запущены на JDK 12.

     
     
  • 5.95, Попугай Кеша (?), 17:23, 21/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Не знал, спасибо. Я тогда уж Clojure для себя )
     
     
  • 6.105, Andrey Mitrofanov (?), 11:18, 22/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > Не знал, спасибо. Я тогда уж Clojure для себя )

    Осторожнее https://gist.github.com/richhickey/1563cddea1002958f96e7ba9519972d9 там.

     
     
  • 7.106, Попугай Кеша (?), 15:12, 22/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    >> Не знал, спасибо. Я тогда уж Clojure для себя )
    > Осторожнее https://gist.github.com/richhickey/1563cddea1002958f96e7ba9519972d9
    > там.

    Спасибо. Прочтем

     
  • 7.107, Попугай Кеша (?), 15:16, 22/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    >> Не знал, спасибо. Я тогда уж Clojure для себя )
    > Осторожнее https://gist.github.com/richhickey/1563cddea1002958f96e7ba9519972d9
    > там.

    Все по делу Рич говорит.

     
  • 5.118, rex (??), 12:00, 28/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    паника всё;
    зачем ей на каждой мелкой версии запускаться
     

  • 1.60, Аноним (60), 18:57, 20/03/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Лишь бы не дотнет, лишь бы не дотнет...
     
     
  • 2.73, Аноним (73), 21:29, 20/03/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    С дотнетом всё хорошо. Запилили кроссплатформенную замену WPF и WinForms и портируют на неё проги.
     
     
  • 3.91, Попугай Кеша (?), 09:41, 21/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Чет давно не слежу. Что за замена WPF, да еще и кроссплатформенная?
     
     
  • 4.108, КО (?), 16:23, 22/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Ну так - если есть две платформы (Винда 23 бит и Винда 64 бит, ну или Вида 7 и Винда 10, ну на крайняк Винда 1803 и 1809) то она уже кросс платформенная
     

  • 1.72, Аноним (73), 21:27, 20/03/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    >Напомним, что начиная с выпуска

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

    Также напоминаю - билды Java > 11 идут под проприетарной лицензией, требующей оплаты, свободные же либо ставьте из пакетов, либо (для винды) - собирайте из исходников.

     
     
  • 2.78, Аноним (78), 23:27, 20/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > Также напоминаю - билды Java > 11 идут под проприетарной лицензией,

    https://jdk.java.net/11/

    GNU General Public License, version 2, with the Classpath Exception.

     
     
  • 3.97, Аноним (73), 22:35, 21/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    openjdk и Java SE - разные вещи. openjdk - спо, Java SE - проприетарь.
     
     
  • 4.117, Аноним (78), 12:21, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Чукча не читатель, чукча писатель?

    По ссылке:
    > production-ready open-source builds of the Java Development Kit, version 11.0.2, an implementation of the Java SE 11.0.2 Platform

    Еще раз:
    > implementation of the Java SE

     
  • 2.96, max (??), 17:24, 21/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    ну речь скорее о выходе java 12 - в частности openjdk;
    oraclejdk базируется на openjdk, и действительно - за это хотят $$$;
    если использовать openjdk - платить не надо (например, можно самому собрать; можно взять сборку у zulu или других товарищей);
     

  • 1.101, Dmitry77 (ok), 08:30, 22/03/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Чем хороша Java - у неё хорошая кросс-платформенность.
    Но сейчас появилась платфома на которой она не работает - iOS

    В перспективе Dart может работать на всех 5 платформах (наравне с js)

     
  • 1.114, Junior frontend developer (?), 07:14, 23/03/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Переводчик новости совершенно не понял суть новых switch. Фокус в том, что они выражения (expressions), а не инструкции (statements).
     

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



    Спонсоры:
    Слёрм
    Inferno Solutions
    Hosting by Ihor
    Хостинг:

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