LINUX.ORG.RU

Вышел первый релиз-кандидат Java 10

 , ,


2

5

Ещё осенью была 9, а уже 10.

Ссылка для скачивания: http://jdk.java.net/10/

Если коротко: на все баги ниже P1 (т.е. критические) забвивают и переносят на следующие релизы. Релизы будут раз в полгода с поддержкой 6 месяцев (минимум), время от времени будет LTS с поддержкой 3 года (минимум).

Из фич:

  • Ключевое слово var для типов переменных
  • Красивый интерфейс чтобы писать свои GC
  • Параллельная полная сборка мусора (full GC, чистит весь управляемый хип)
  • Классы теперь можно класть в «разделяемые библиотеки»
  • Допердолили юникод немного
  • Graal можно использовать как JIT-компилятор в обычной поставке OpenJDK (не девелоперской), но это работает только на 64-битных линуксах
  • cacerts теперь не пустой, и TLS работает из коробки

Более подробно я расписал на Хабре (т.к. здесь не влезет): https://habrahabr.ru/company/jugru/blog/349024/

★★★★☆

Взял книжку на амазоне по 9 джаве. Уже месяц руки не доходят изучить.

А уже 10-ка на подходе.

>_<

Deleted
()
Последнее исправление: merhalak (всего исправлений: 1)
Ответ на: комментарий от upcFrost

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

hippi90 ★★★★★
()

JEP 296: Консолидация леса исходников JDK в едином репозитории
Наводится порядок в репозиториях. Широкой общественности обычно не интересно.

Там по ссылке интересно:

Non-Goals
Adding the FX sources to the JDK forest is not part of the proposal.

Deleted
()
Последнее исправление: merhalak (всего исправлений: 2)
Ответ на: комментарий от upcFrost

не-системный код вообще не сломается

по поводу системного кода (Spring, Bytebuddy, etc) есть всего одна рекомендация - обновиться до самой свежей стабильной версии (или той, про которую создатели сказали, что она работает с Java 9)

но вообще, Java 9 - это уже прошлое. Не должно возникать вопроса «что сломается из-за модулей» - это нужно было попробовать год назад, когда Девятка была в релиз-кандидате как сейчас. Можно считать этот вопрос закрытым

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

stevejobs ★★★★☆
() автор топика
Ответ на: комментарий от stevejobs

Экий ты шустрый! А девятку кто-нибудь уже использует после восьмой стабильной явы? А ты говоришь о десятке :)

dave ★★★★★
()

Java 10

Java X же!

Ключевое слово var для типов переменных

NOOOÔÖÒÓŒØŌÕ!

на все баги ниже P1 (т.е. критические) забвивают и переносят на следующие релизы. Релизы будут раз в полгода с поддержкой 6 месяцев (минимум), время от времени будет LTS с поддержкой 3 года (минимум).

Похоже на первоапрельскую шутку.

Deleted
()
Ответ на: комментарий от stevejobs

Java 9 - это уже прошлое

Какой-то хипстотой повеяло.

Radjah ★★★★★
()
Ответ на: комментарий от Deleted

Когда любой тред приходит к сейфпоинту, вызывается JVMный коллбек, это называется handshake. Это делает или VMка когда блокирует тред, или сам тред. Раньше было ограничение, что можно делать только 1 хендшейк в 1 момент «времени». С другой стороны, внутри одного хендшейка можно было агрегировать и дёрнуть кучу тредов разом. Чтобы во время хэндшейка не случился глобальный сэйфпоинт на всё (и виртуалка подвисла), там был какой-то механизм, который включал в хэндшейк только нужное. В новой реализации будет возможность остановить не пачку тредов, а индивидуальный тред (очень просто: тред будет доступен не напрямую, а через указатель, и указатель будет переключаться на защищенную память в случае останова). Это позволит локализовать ад по сейфпоинтингу в рамках одного треда - того, который нужен. Но сделать это непросто, поэтому пока это реализуют только на самых податливых платформах: x86_64 и SPARC. Более подробно хз, это какая-то весьма системная фича )

stevejobs ★★★★☆
() автор топика
Ответ на: комментарий от Deleted

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

stevejobs ★★★★☆
() автор топика
Последнее исправление: stevejobs (всего исправлений: 1)
Ответ на: комментарий от stevejobs

если ты делал thread.stop

его запретили же давно (Легитимно остановить поток, нынче можно только блокировкой.) Яж и думал толи его возвращают, толи лёгкие потоки думают делать.

Deleted
()

Пропустил достаточно важные фичи

Java Improvements for running in Docker containers

Вместо этого во какую радость упомянул - можно писать свой GC. На это как раз всем срать.

Классы теперь можно класть в «разделяемые библиотеки»

Это так ты JEP-310 решил описать?

vertexua ★★★★★
()
Ответ на: комментарий от stevejobs

но вообще, Java 9 - это уже прошлое

ага, уже. ща только с восьмой все слезут. а некоторые так вообще с 1.5

upcFrost ★★★★★
()
Ответ на: комментарий от Deleted

NOOOÔÖÒÓŒØŌÕ

да не боись. ща еще скобки на отступы заменят, уберут private-public, и жабка наконец-то станет почти пузончиком

upcFrost ★★★★★
()
Ответ на: комментарий от vertexua

Про докер непонятно. Это не заявлено как мажорная фича, нет соответствующего JEPа, ну или по крайней мере - нет в этом списке: http://openjdk.java.net/projects/jdk/10/

Нашёл только багфикс уровня P4: https://bugs.openjdk.java.net/browse/JDK-8196595

Ну и драфт жёпы: http://openjdk.java.net/jeps/8182070

Не хочу обидеть (у меня тоже к ним есть претензии xD), но похоже у Оракла это задача не первой важности...

Откуда ты узнал про этот багфикс?

stevejobs ★★★★☆
() автор топика

У меня вопрос давно назрел.

Почему разработчики Java и IBM, что называется, в упор не видят FreeBSD?

iZEN ★★★★★
()
Ответ на: У меня вопрос давно назрел. от iZEN

Почему разработчики Java и IBM, что называется, в упор не видят FreeBSD?

потому что они на кладбище с металлоискателем не ходят

upcFrost ★★★★★
()
Ответ на: комментарий от anonymous

что auto, что diamond периодически сходят с ума

upcFrost ★★★★★
()
Ответ на: комментарий от dave

Я вот не могу перейти на 9 из-за отсутствия официальной 32-битной сборки. Куча серверов на Windows 2003 32-битной и никто их в ближайшие годы трогать не собирается. Видимо 8 будет как Java 6 - на долгие года. Благо не самая плохая версия.

Legioner ★★★★★
()
Ответ на: комментарий от upcFrost

А что тут интересного? В чём может быть непонимание?

Legioner ★★★★★
()

Параллельная полная сборка мусора

В хачкиле это уже сколько десятков лет?

anonymous
()
Ответ на: комментарий от Legioner

6 было на долгие года потому что долго не было 7.

А тут уже 10...

Кстати, народ, а скомпилированный java 9 код будет работать на jvm 8?

Deleted
()
Ответ на: У меня вопрос давно назрел. от iZEN

Насколько понимаю, официально, фокус отдаётся трём платформам: GNU/Linux, macOS и Windows. Все 64-битные. Windows несколько отстаёт по качеству поддержки (например, инфраструктура сборки там сильно хуже и требует Cygwin). Про FreeBSD ничего не знаю. Можешь попробовать собрать сам и рассказать о результатах на Хабре или ЛОРе.

Если честно, я даже не знаю, как FreeBSD на компьютер установить, не то что собрать там что-то...

stevejobs ★★★★☆
() автор топика
Последнее исправление: stevejobs (всего исправлений: 1)
Ответ на: комментарий от anonymous

А должны?

Принципиальных технических ограничений нет - OpenJDK8 в сорцах осилили портировать и блоб Oracle Linux JDK 9.0.4 работает.

iZEN ★★★★★
()
Последнее исправление: iZEN (всего исправлений: 1)
Ответ на: комментарий от stevejobs
> java -version
openjdk version "1.8.0_162"
OpenJDK Runtime Environment (build 1.8.0_162-b12)
OpenJDK 64-Bit Server VM (build 25.162-b12, mixed mode)
iZEN ★★★★★
()
Ответ на: комментарий от upcFrost

В жабе всегда был движок для type inference, который собственно и употребляется в дженериках. IntelliJ IDEA постоянно сверяет левую и правую часть выражения и выдает ошибку ещё при редактировании. Имхо, вопрос использования var не столько производственный, сколько политический - нужна ли нам такая фича, и не превратит ли она весь джавакод в говнину

stevejobs ★★★★☆
() автор топика
Ответ на: комментарий от stevejobs

не превратит ли она весь джавакод в говнину

Он и без var...

anonymous
()
Ответ на: комментарий от Deleted

Даже в нигде не используемом языке нормальный GC, а в Ънтерпразе с триллионами долларов вливаний только сейчас осилили.

anonymous
()
Ответ на: комментарий от Legioner

32-битные сборки официально отправлены в глубокую задницу. Помойму, Грааль на 32 битах вообще ни в каком виде не умеет. Но какой-нибудь Azul может продолжать собирать 32-битное в рамках своего вечного дежурства по пересборке всех сборок JDK

stevejobs ★★★★☆
() автор топика
Ответ на: комментарий от anonymous

Там смысл не в параллельной сборке мусора как таковой, а в параллельном full GC. Частично-параллельные куски были всегда. Но будущее за Shenandoah и ZGC, там всё безумно круто. Про Шинанду лучше слушать Алексей Шипилёв, он есть на ютубе. А G1 о котором тут речь - его можно считать плавно устаревающим :)

stevejobs ★★★★☆
() автор топика
Последнее исправление: stevejobs (всего исправлений: 3)
Ответ на: комментарий от stevejobs

Если вместо:

for (Map.Entry<String, String> entry : map.entrySet())
можно будет написать так
for (var entry : map.entrySet())
То этож замечательно, да и никто не жалуется на похожий вывод типов в на kotlin, scala, swift и т.д.?

Aber ★★★★★
()
Ответ на: комментарий от Aber

никто не жалуется на похожий вывод типов в на kotlin, scala, swift и т.д.?

Никто не жалуется, просто потому, что никто не пишет на этих язычках.

anonymous
()
Ответ на: комментарий от stevejobs

Shenandoah

Как GC перемещает живые объекты одновременно с тредами-мутаторами, получающими доступ к этим объектам?

anonymous
()
Ответ на: комментарий от stevejobs

Нет, он и без var всплывает, там даже специальное название этому есть - подъем объявленных переменных :)

Aber ★★★★★
()
Ответ на: комментарий от stevejobs

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

Не нужна! 100% не нужна!

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

Deleted
()
Ответ на: комментарий от anonymous

В си нет ничего и он по праву считается лучшим ЯП в мире. Я хацкиле все идеально и про него никто ничего не знает :)

Чуешь, да?

Deleted
()
Ответ на: комментарий от stevejobs

Имхо, вопрос использования var не столько производственный, сколько политический - нужна ли нам такая фича, и не превратит ли она весь джавакод в говнину

По С++-опыту использования auto - безусловно нужна, если применять в меру, например можно убрать дублирование типа в одной строке вроде BlahBlahBlah x = blahBlahBlahFactoryFactoryFactory.create().create().create()

annulen ★★★★★
()
Ответ на: комментарий от annulen

Когда у тебя тип на 2 страницы, ява как бы говорит тебе «ты дебил». А если убрать эту обратную связь, то совсем потеряться можно и шутки про Factory перестанут быть шутками!

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.