Как стать автором
Обновить

Комментарии 37

новый релиз каждые полгода

Если раньше новая версия Java была событием, то теперь это станет полугодовым отчётом работы малоинтересного конвейера.

Ну а как ещё c# догнать-то…
C# существует давно и что-то раньше никто не делал от этого релизы чаще. Мне кажется, виной тут служит набирающие популярность языки на JVM, такие как Groovy, Scala и прежде всего Kotlin.
Скорее, экспансия C# на другие платформы, помимо Windows.
На полях, отличных от Windows, позиции C# пока не так сильны. Не хватает инфраструктуры, фреймворков, инструменты «застряли» в винде и т.д. Между тем, есть Котлин, который по функционалу точно не уступает C# (а в чем-то лучше), и на котором можно использовать все возможности богатого java мира.
Помнится какая-то софтина под вантуз сказала «э, не я не буду устанавливаться т.к. мне надо net framework 4.5.2, а установлен устаревший 4.5!». Ну куда уж жабке до такого великолепия? :)
НЛО прилетело и опубликовало эту надпись здесь
Между релизами j6 и j7 сколько времени прошло? А сколько между n4.5 и n4.5.2? А ещё у вас _в порядке вещей_ требовать версию net framework предыдущего поколения, типа 3.5 много, дай 2.0
НЛО прилетело и опубликовало эту надпись здесь
Все, победили, сдаемся. Забавно, но постоянно в таких спорах, при любом удобном случае, стабильно вспоминают про стирание типов:
https://habr.com/post/352404/#comment_10733822
https://habr.com/post/352404/#comment_10736116
В этой теме проскакивает раза три подобное. А забавно тут именно то, что об этой проблеме приходится слышать от людей, которые на Java не пишут. Джаверы же, по моему опыту, не воспринимают это как Страшную Проблему.
Я java-разработчик воспринимаю это как еще одну неровность языка из-за которой приходиться таскать с собой постоянно объекта класса. Да проблему можно обойти, но высокоуровневый язык програмирования должен упрощать жизнь, а не вставлять палки в колеса.
Никто не говорит, что это хорошо. Да, есть такая проблема. Появилась она не просто так, это был осознанный выбор, который на момент принятия решения, возможно, был лучшим. Речь только про масштаб трагедии.
Проблема в общем подходе java когда однажды принятое, возможно хорошее на тот момент решение, не возможно изменить ввиду обратной совместимости.
НЛО прилетело и опубликовало эту надпись здесь
В моём опыте были 2 Java-программы, одна из которых работала только с 1.6.xx, а другая с 1.6.yy (точные xx и yy уже не помню). Вот это было весело.
Имел опыт работы с программой которая компилировалась только под java 7, но запускалась только на java 8. Связанно с использованием js движка Rhino корректно работающего только в таком режиме.
С# не догнать особенно в плане могучего compatibility оного, когда приходится держать на компе net2, net3, net3.5, net4. Представляю сколько крапа придется ставить ещё через 10 лет
Вот только Kotlin уже набирает обороты по причине того, что слишком давит совместимость. И может случиться, что будет уже не догнать.
Через 10 лет не придется — .NET Standard обратно совместим.
НЛО прилетело и опубликовало эту надпись здесь
Scala это уже давно (3-4 года) например Spark. И я вот так вот сразу не возьмусь назвать проект на c#, сопоставимый по популярности со спарком. У нее есть свои проблемы, но у нее есть и своя постоянная и немаленькая ниша.
Но ведь на КПДВ явно JavaScript…

Да, а какая разница? ;)

Что касается нового JIT-компилятора, то он направлен на улучшение производительности JVM. Прежняя версия JVM была написана на C++, однако в рамках проекта Metropolis большую часть JVM перепишут на Java.

но зачем?

Много причин, как минимум:


  1. Сейчас С2 компилятор очень сложный.
  2. Для работы этого компилятора необходимо выделять дополнительную unmanaged память, что неудобно при старте (не отвечу про детали, к сожалению).
Наверное, чтобы любой Java программист мог форкнуть JVM и допилить что-то свое, например сборку мусора без «остановки мира». В теории это может быть полезно, правда как-то я сомневаюсь, что можно переписать JVM с C++ на Java и при этом увеличить производительность.
Затем же наверно что и Roslyn сделали на C#. В разработке JVM такие головы сидели тут в Питере. Говорят перевели всё теперь в Индию.
Бедняжки…
Надеюсь, что в 11-й наконец выкатят asynchronous jdbc.

в свете var и строковых литералов, предполагаю что работать оно будет на промисах

Оценить API можно уже давно. Можно даже поиграться с sandbox-версией. Сейчас она сделана поверх thread pool'а и не является действительно асинхронной, но релизная версия под капотом будет использовать мультиплексирование.

это был сарказм, если что

Чтобы имплементировать такую «простую и необходимую» вещь как честный асинхронный jdbc сначала хотят добавить (снова!) fibers в яву. Что тянет за собой целый ряд неслабых изменений.

Называется project Loom: cr.openjdk.java.net/~rpressler/loom/Loom-Proposal.html

Если поискать в гугле кто ссылается на эту статью — можно найти обсуждения про асинхронный jdbc.
Подозреваю, что Loom закончат ещё не скоро. Пока можно и на селекторе сделать.
НЛО прилетело и опубликовало эту надпись здесь
JEP 325 (switch expressions)
JEP 326 (raw string literals)
Они до сих пор на стадии Candidate, не вводите в заблуждение.

Вот тут список включенных в релиз JEP и кандидатов для релиза в java 11:
openjdk.java.net/projects/jdk/11
Зарегистрируйтесь на Хабре, чтобы оставить комментарий