Java 9 — Вы уже перешли? Нет? И не надо ...!?

    Недели две назад InfoQ напомнил, что официальная поддержка Java 9 заканчивается… в Марте 2018г. (т.е. через 20 дней :)


    Вот cсылка на официальный EOL от Oracle, в которой в разделе "Java SE Public Updates" черным по английскому говорится, что Java 9 будет поддерживаться до Марта 2018, а Java 8до Января 2019 (или позже) и Декабря 2020 (или позже).


    Уф сколько интересного…
    Почему у Java 8 две даты? Что значит загадочное (или позже)? И что, черт возьми, это все значит для нас — разработчиков.


    Почему у Java 8 две даты?
    Пояснения ко второй дате немного туманны и не дают забыть, как устроена компания Oracle изнутри.


    Oracle does not plan to migrate desktops from Java 8 to later versions via the auto update feature. Individuals who require Java SE for non-corporate desktop use will continue to receive updates through at least December 2020. Instead of relying on a pre-installed standalone JRE, we encourage application developers to deliver JREs with their applications. More details will be made available through early 2018.

    Давайте разберем этот абзац построчно ибо он того стоит.


    Oracle не планирует обновлять рабочие станцие с Java 8 на более поздние версии через опцию auto update.

    И не надо. Хоть у кого-то эта штука "включена"? Не знаю ни одного такого:)


    Физические лица, которым требуется Java SE для использования на некорпоративных рабочих станциях будут получать обновления (через auto update) как минимум до Декабря 2020.

    Т.е. если вы забыли как это "зло" отключить оно еще год будет вам напоминать о себе. А что будет, если после января 2019 Java 8 останется на установленной на "корпоративной" рабочей станции?


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

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


    Более подробно мы расскажем об этом в начале 2018.

    ЧТО!? Что вы там курите...


    Я это абзац читаю как


    У нас много свободных юристов и если вы поставите на работе обновление Java 8 свежее Декабря 2018г., то мы придем к вам.
    Но это еще не точно.

    Мне неоднократно доводилось слышать от американских знакомых о попытках Oracle проводить проверки соблюдений лицензионных соглашений около Java технологий (в том числе при использовании коммерческих компонент, развертывание через Docker с "автоматическим" соглашением на лицензионный договор и пр.)


    Java 9 — зло которые мы так долго ждали?
    Отгадка кроется в разделе "Oracle Java SE Support Roadmap*" (обратите внимание на ссылку в названии раздела — к ней дано пояснение, что все даты приведены "для примера" — короче, очередные юридические "отмазки").


    То, что мы называли Java 9 (а также Java 10, которая еще даже не вышла :) — это "промежуточные" не LTS версии Java со сроком жизни 7 месяцев. Ближайшим Java LTS релизом будет Java 11 (18.9 LTS), которая выйдет в Сентябре 2018г.


    Мне кажется, что Java 9 и Java 10 — это версии "от разработчиков разработчикам": новый GC, jigsaw, API и даже немного "сахара". Используйте это все, разрабатывайте, но, по возможности, продуктивно не используйте до 18.9 LTS aka Java 11.


    Такие дела, коллеги. А какие версии JVM у вас сейчас в продуктивной эксплуатации?


    P.S. В сухом остатке — кажется, что Java 9 и Java 10 — это почти то, что мы совсем недавно называли release candidates.

    Какие версии JVM у вас сейчас в продуктивной эксплуатации?

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

    Поделиться публикацией
    Похожие публикации
    Ой, у вас баннер убежал!

    Ну, и что?
    Реклама
    Комментарии 35
    • +1
      Из активных проектов один на Java 6 (Oracle Java), два на Java 7 (IBM J9).
      • –3
        Java 9 сломана. Да и сам сталкивался с ситуацией, когда проекты, которые нормально компилировались в предыдущих версиях JDK, переставали собираться в 9-й из-за подобных багов.
        • 0
          RC :) Я почти решил на нее переходить…
          • 0
            С каких пор необходимость тюнить настройки GC стала называться словом «сломана»? Да, надо тюнить. И не только GC. Это нормально.
            • 0
              А причём тут настройки GC? Или просевшая производительность — это по-вашему единственная проблема 9-й версии?
          • +1
            … то незабываемое чувство, когда версия языка меняется быстрее чем версия проэкта…
            • 0
              Сидя на Java 8, ощущение от Java 9 такое же, как было от Windows Millenium. Т.е. забавно конечно, но не понятно чем оно настолько лучше Win 98, что стоило бы переползать. Тогда многие стали ждать Win XP…
              • –1
                вы хотели сказать win2k?
                • +1
                  Нет, Вин2к — отличная стабильная штука, новая ядро. А миллениум (по отзывам) самая глючная 9х.
                  • +1
                    Нет, win2k и millenium вышли практически одновременно и это были параллельные ветки. Win2k была развитием NT ядра, которое в итоге победило, но на тот момент win2k была сугубо рабочим инструментом (с играми тяжело там было). Потом вышла Win XP, которая стала win2k для людей. Так что ждем Java 10 )
                    • 0
                      Вы зря считаете что я не застал это время. Более чем застал dos 3.22 и ниже.
                      Далее — IMHO:

                      Всего чего крайне не хватало для домашнего пользователя в winNT (поддержка USB, нормальной версии directX и др.) — ожидалось в win2000, которая могла стать нормальной домашней платформой.

                      И к 2000-му, больше ждали win2000 — тогда XP еще не была анонсирована.
                      А ME вышла только летом. Поэтому за эти полгода, кто был готов пробовать что-то новое — поставили 2к.

                      Миллениум обещался быть шагом вперед по сравнению с 98. Но оказался той же 98-й с обновленными драйверами и навешанными украшениями. Основные проблемы остались (собственно они и не могли уйти без смены ядра ОС).

                      К выходу ME, очень многие успели опробовать 2k pro, и успеть привыкнуть к огромным достоинствам и некоторым недостаткам — полгода это много!
                      Поэтому переезд на ME подавляющему большинству показался шагом назад.

                      Да, возможно в 2000 не все старые игры работали, как в ME, но ведь в основном играли в достаточно небольшой список топовых игр, которые шли нормально (тот же starcraft, doom3, quake и тому подобные) и проблем не испытывали, а вот надежность — выросла в разы.

                      P.S. Между прочим, в первые годы у XP хватало хейтеров, ибо она была более требовательна по ресурсам, да и до выхода первого SP хватало проблем.
                      • 0
                        У меня в линолиуме отваливалось всё что можно и нельзя.
                        То что тв-тюнер не пошёл, это ладно, но то что отваливалась видеокарта (Riva TNT 2 Pro — в те времена была простенькой) — это было феерично.
                        Особо приколько когда через некоторое время после загрузки дрова на чипсет отваливались, заменяясь универсальными.
                        Я до ХР перебивался сидя то в НТ, то в 98, то перебирая разные пингвинов.
                    • +1
                      Windows Millenium Edition (ME) — это последняя ОС линейки Win9x. Windows 2000 — это одна из ОС линейки NT. Это разные ОС.
                    • +2
                      Я бы сказал, что Java9 для меня это про JVM + API, а не про синтаксические изменения в самом языке. Хотя type inference Java 10 (var a=1;) тоже ничего. Java 9 — immutable collections, stream changes, options improvement, http improved API и т.д.

                      Мне это все сильно напоминает Java 6 после Java 5.
                      • 0
                        Windows ME была продолжением (и как бы завершением) линейки Win 3.1/95/98. Windows XP — это Windows 2k со свистелками и перделками (а если убрать их, то неотличима от Win2k), и это продолжение линейки NT.
                        • +1
                          Блин, я почувствовал себя таким старым, когда вижу что уже реально есть люди, нуждающиеся в подобных разъяснениях :(
                    • +3
                      Oracle не планирует обновлять рабочие станцие с Java 8 на более поздние версии через опцию auto update.

                      И не надо. Хоть у кого-то эта штука "включена"? Не знаю ни одного такого :)

                      А зачем отключать автообновление (по крайней мере, обычному пользователю)? На случай, если появится регрессии, или есть другие причины?


                      Лично я столько в своё время наслушался про "Очередная уязвимость в Java, мы все умрём!!!!111", что отключение автообновлений для меня выглядит странно (хотя и не факт, что это и правда создаёт так много опасностей для пользователя при условии, что апплеты отключены). По этой же причине несколько странной выглядит официальная рекомендация разводить на компьютерах пользователей зоопарк устаревших версий.

                      • 0
                        Автообновления Java — это та штука, которая задалбывает вылезать в самый неподходящий момент и раздражает вообще всех пользователей?
                        • 0
                          Всяко лучше, чем окно шифровальщика. Да и ставится по-умолчанию нечётная ветка, где в обновлениях исправляют только уязвимости.
                          • 0
                            Нет. Дело в том, что из-за навязчиво неадекватно сделанной системы обновлений, которыая регулярно требует повышения привилегий еще до начала своей работы — её все тупо удаляют.
                            Зачем вообще ПО для апдейта требует повышения привилегей на старте? Это что за паттерн?
                            • 0
                              вы интерфейсы на swing видели? каких паттернов еще требовать от этих людей? перезагружаться не надо перед обновлением — и на том спасибо.
                      • +1

                        Java 8, кое-где 6.
                        9 только на своих проектах. Но она сырая, куча библиотек и приложений на ней не работает. Вот последний пример — logstash.

                        • +3
                          Расскажите пожалуйста как проходит день разработчика на Java с версией < 6.
                          • +4

                            Так же, как и на любой другой версии Java. Встречал проекты на Java > 6, рабочий день на которых — пытка. Встречал проекты, мало изменившиеся с того момента, когда их создали 10+ лет назад на Java 1.4, и рабочий день на них — вполне приятен. Ощущения от работы на проекте зависят не столько от того, НА ЧЁМ он написан, сколько от того, КЕМ он написан.

                          • 0

                            Write once, run anywhere — пытаюсь применить это к java 9 со сроком поддержки в 7 месяцев

                            • 0

                              В продакшене были версии Java 6, 7 и 8. И всегда прекрасно себя чувствовал.
                              Непривычно было только один раз года 4 назад, когда с проекта на Java 7 перешёл на проект с Java 6: но к отсутствию dimond operator, try-with-resources, multi-catch exception привык быстро (только некоторые наработки пришлось портировать).

                              • 0

                                Из того, что может (лично меня) побудить перейти на Java 9 — это стандартный годный HTTP-клиент и jshell, но с этим и подождать можно.

                                • +2
                                  А у нас тут в С++ еще модули не завезли. Живем с хедерами. Плак-плак… Часы компиляции на проект, плак-плак.
                                  • +3
                                    Рейнхольт открытым текстом сказал, что жить «от получки до получки», «от LTS до LTS» — это не самая лучшая идея. Изменений может накопиться так много, что перейти уже не получится. Релизы с коротким циклом — это полноценные настоящие релизы, на них очень сильно рекомендуется переходить.

                                    Наконец-то Java будет ощущаться как современная технология с быстрым релизным циклом, а не как десятилетнее говно мамонта. Это чудесно!

                                    Да, придётся кое-что адаптировать и переписывать. Это нормально. Во всём мире, во всех остальных технологиях (включая конкурирующий C# .NET) так делают постоянно.
                                    • 0

                                      Я Java бы выучил только за то,
                                      Что раз написав — используй легко.
                                      Релизы не часто, но верность хранит
                                      И качеству кода, и стилю.
                                      Как часто бывает, когда любой наш коммит
                                      Останется с нами на годы?
                                      Совместимости ради полюбишь и ты,
                                      Друг мой, Java исходные коды.

                                      • 0
                                        А не как десятилетнее говно мамонта С++
                                        • +1
                                          Да, придётся кое-что адаптировать и переписывать. Это нормально. Во всём мире, во всех остальных технологиях (включая конкурирующий C# .NET) так делают постоянно.

                                          Такая бяка только в .NET Core встречалась на ранних этапах. В обычном же .NET, программа написанная на C# v1 — прекрасно будет работать во всех последующих версиях без всяких адаптаций, переписываний или перекомпиляций.
                                        • 0

                                          oracle, такие oracle.

                                          • 0
                                            Хех. Оригинальная идея же была — напиши однажды, откомпилируй, запускай везде. Сейчас получается — прихвати с собой среду, в которой ты уверен, что скомпилированное заведётся. В чём тогда профит по отношению к Qt + C++, например? Всяк бинарную сборку под каждую платформу собирать…

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

                                            Самое читаемое