Используете ли вы Java 7?

     

    Only registered users can participate in poll. Log in, please.

    Используете ли вы Java 7?

    • 5.1%Да, в моей компании используется в production183
    • 9.7%Да, использую в своих проектах344
    • 5.6%Да, использую для всяких мелочей198
    • 1.3%Нет, но в моей компании скоро перейдут48
    • 5.2%Нет, но скоро начну использовать в своих проектах184
    • 10.4%Нет, но попробовал368
    • 60.3%Нет, и даже не пробовал2126
    • 2%Другой вариант, расскажу в комментариях71
    Share post
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 72

      0
      Хотелось бы услышать и причины, по которым ответившие «нет» не используют Java 7.
        +4
        Я ждал появления свойств как в C#, еще со времен Java 5. Имхо, разработчики языка Java сильно недооценивают значение синтаксического сахара для разработчиков программ. Да и шаблоны в C# поудобнее generic-ов будут (пишу и на C# и на Java, хотя считаю себя джавистом).
          +3
          «Шаблонов как в C#», скажем так, в Java не будет в обозримом будущем (надеюсь, никогда), а просто всякий там синтаксический сахар явно не фишка Java.
            +2
            А почему «надеюсь»? По мне, так RTTE было одним из самых больших фэйлов.
              –3
              Может RTTI?
                +2
                RTTI — Run-time type information из c++, gvsmirnov видимо имеет ввиду Type Erasure.
                +1
                А почему «надеюсь»? По мне, так RTTE было одним из самых больших фэйлов.
                Э… ну так-то оно так, но есть варианты, как это можно было иначе? :)
            0
            Причины нужны чтобы что-то использовать, не?
              +1
              В общем случае да, но с версиями чего-нибудь обычно наоборот: люди обновляются как только становится доступным апдейт. Особенно, если есть полная обратная совместимость.
                +5
                Продукт сыроват, баги в нем находят, никто не хочет на продакшен, за который клиенты платят много денег выкладывать пока еще возможно где-то кривую java 7 ибо потом будут получать люлей разработчики за то что не так работает или упало. Во вторых скажем прога которая разрабатывалась года 3 на java 6, какой смысл её на семерку тянуть? ведь куча бизнес логики и прочее, сделать рефакторинг не реально, хотя бы потому, что клиенты постоянно требуют нового функционала и времени на рефакторинг мало, а тут еще и переезд на java 7 что влечет глобальное тестирование всего функционала. Слишком дорогое удовольствие.
                На java 7 начнут переезжать тогда когда выпустят для него пару обновлений и оттестят на некоммерческих проектах (ведь там охотней обновляют по), чтобы можно было сказать — «Ставь java 7 глобального фейла не будет».
                Не зря же сейчас огромное количество крупных бизнес решений работает на delphi, хотя все понимают, что его дни сочтены, но переписать такие объемные продукты очень сложно, а тем более в существующих решениях сотни багов отловлены.
                Положение дел — диктует бизнес.
          • UFO just landed and posted this here
              +1
              1) Баги в Glassfish;
              2) Нечем собрать код кавередж репорт по человечески (cobertura, emma не поддерживают, jacoco поддерживает, но его не хватает);
                0
                3) Для MacOs она ещё бета.
                0
                Мы в 7-ке наткнулись на не совсем баг, а типа фичи — сортировка стала падать на паре классов, в которых некорректно (не симметрично) было реализовано сравнение. 6-я версия использовала другой алгоритм сортировки, и там эти баги не проявлялись. А так как у нас есть пока старые версии серверов, до обновления которых дойдет не скоро, приходится ждать. А кроме этой проблемы, переход был абсолютно прозрачным (то есть новые версии были собраны и заработали сразу).
                  +2
                  Старый алгоритм сортировки может быть включён параметром -Djava.util.Arrays.useLegacyMergeSort=true
                    0
                    Хорошая мысль, спасибо!
                +4
                1) Нет весомого повода перейти, ни одной действительно killer-feature.
                2) С одной из первых версий была жестокая бага с циклами, повсюду ходили рекомендации не переходить на Java 7 пока всё не обкатится более менее.
                  –2
                  2) — 64-битный софт вообще в среднем более бажный, чем 32.
                  –1
                  Если имеется ввиду та эталонная Java 7, которая OpenJDK, то по понятным причинам в продакшене её применять не годится. Потому лично мы и не применяем. При этом, как сказали выше, и смысла то вроде нету.
                    +4
                    Мне например причины непонятны :)
                      0
                      Причины в том, что OpenJDK не готова к нормальному режиму ынтерпрайза. Много косяков, часть не работает, часть надо допилить (шрифты etc). Мы по-честному бились, пытались и в итоге просто забили. Да и тут много на эту тему перетёрто уже было :)
                      0
                      А каковы причины? Пока еще не обкатана? Или содержит критические баги?
                        0
                        JAXB в OpenJDK работает коряво
                          0
                          А что означает «коряво»?
                            0
                            Значит, что были проблемы с генерацией кода по xml — перешли на сановскую jdk 1.6, проблемы ушли.
                      +8
                      Зашибись!
                      Людей просят высказать, что им не нравиться в Java… и все посты с такой критикой — заминусованы. Так дело не пойдет. Вы еще тестировщиков бить начните за то что они в вашем «идеальном софте» баги находят.

                      PS
                      Каждому человеку, не побоявшемуся высказать свое мнение — спасибо. Отнеситесь к минусам с пониманием что-ли…
                        +2
                        Этой осенью на Java 7 у нас не завелся WebLogic 10.3.2, так что пока остались на Java 6. А так был картбланш. Не могу сказать, что мы сильно расстроились.
                          0
                          Хм… Весьма странно, ведь и то и то вроде как от Оракл…
                            0
                            А что он сказал о причине «незавода»? :)
                            0
                            Очень интересная статистика, вообще, получается. Интересно, что на этот счёт думают маркетологи Oracle?
                              +2
                              Маркетологов оракла волнуют ИТ директора а не разработчики.
                                0
                                Тем не менее, разработчики могут дать реальную картину использования (или не использования) продукта. Интересно то, как маркетологи объясняют подобную ситуацию, и насколько критичной её считают.
                                +1
                                Ну Java не .NET, тут смена версий процесс небыстрый.
                                  0
                                  Не скажите. Иные на .NET 2 все еще пишут. На худой конец, в 3.5, но если из кода выкинуть var-ы, то будет спокойной в 2 компилиться.
                                +3
                                пробовал, проект не взлетел. На данный момент под Oracle JDK 1.7.0_u2 работают две IDE, но в продакшене для Glassfish 3.x используется Sun JDK 1.6.26. Уговариваю заказчиков дать время на попытки перейти на 7, аргументируя тем, что каноникал скоро заменит пакеты сановской шестой джавы на пустышки в partner репозиториях и все наша структура автоматизации перестанет работать.
                                Свои проекты пишу на OpenJDK 7 + Glassfish 3.1.x
                                  +9
                                  Поставил на продакшн мелкий проект на Java7, все ок. Понадобилось поставить в другое место, где Java7 нет и долго не будет. За полдня переписал на Java6. И знаете что — нет ни одного действительно удобного синтаксического сахара, за который можно держаться руками.

                                  Diamond operator — прекрасно заменяется Guava: Map<Integer, List> map = Maps.newHashMap();
                                  switch в строках — ни разу не понадобился, а так цепочку else if никто не отменял
                                  try(Exception1 | Exception2) — ну чуть дольше писать, да, но тоже нечастая операция
                                  try (ресур с автоматческим освобождением при выходе) — потенциально интересная фича, но пока не так уж много классов поддерживают интерфейс AutoCloseable чтобы часто использовать
                                  числа вида 1_000_000 — такое чувство, что ввели фичу от безысходности, лишь отрапортовать, «у нас в проекте Coin в Java7 будет целых 5 новых фич!». Настолько редко нужная штука, как мне кажется, что даже не знаю…
                                    +2
                                    Вообще-то AutoCloseable это предок, а не наследник Closeable, его поддеживают все.
                                      0
                                      ааа, извиняюсь за неточность.
                                    +6
                                    А почему все вспоминают только язык? Java это ещё и:
                                    1) бибилиотеки — добавлены, например, новые классы NIO и очень много чего другого, смотрите whats new.
                                    2) виртуальная машина — работа над повышением производительности не прекращалась, можно использовать новый сборщик мусора G1, также новая инструкция invokedynamic.
                                      +4
                                      G1 и в 1.6 есть
                                        +3
                                        java.nio.file — Apache Commons IO выглядит лучше
                                        File change notifications — полезная штука, аналоги есть конечно
                                        Fork and Join — полезно, но не всем нужно
                                        G1 — давно же есть?

                                          +5
                                          Из опыта тестирования этого G1 в 1.6 и 1.7:
                                          1. пишем класс который будет генерить много объектов (простейший цикс с пачкой new Object())
                                          2. запускаем с отключенным ескейп анализом (-XX-DoEscapeAnalysis) и включенным детальным логом по gc
                                          3. дефолтные сборщики, что на 1.6 что на 1.7 работают вменяемо
                                          4. на 1.7 G1 работает так же как и дефолтный (скорость выполнения всего класса, максимальный размер алоцированной памяти, время программы проведенной в gc)
                                          5. на 1.6 G1 в 10 раз больше времени проводит за чисткой мусора и соответсвенно тест занимает в 10 раз больше времени

                                          В 1.7 после перехода на новый регион корректно очищает предыдущий
                                          В 1.6 пока весь max не выжрет будет аллоцироваться в новый регион, а уже потом stop the world и чистка всего и вся.

                                          С -XX+DoEscapeAnalysis включенным по дефолту конечно все нормально в обоих версиях, но данный пример для меня был хорошим показателем, что в 1.7 G1 допилен на новый уровень
                                            0
                                            Либо, возможно, 7-ка просто игнорирует явное отключение escape analysis? Исходники не смотрел, но надо бы.
                                              0
                                              По логу работы gc сразу видно отключен escape analysis или нет, поэтому лезть в исходники нет необходимости.

                                              В моем простейшем примере при включенном escape analysis gc должен срабатывать 1 раз перед самым выходом из программы, все остальные чистки проводятся без него, так как анализ позволяет отследить недоступный объект и сразу его грохает.

                                              А вот когда анализ отключен, то количество вызовов должно быть намного больше 1, что и наблюдалось.

                                              Еще раз уточню картину:
                                              1. все знают что в g1 память разбивается на набор регионов, когда в регионе нету места, то он помечается полным и объекты находящиеся в нем отправляются на эвакуацию (что живые перемещаются в другие регионы, мертвые прибиваются).
                                              2. в 1.7 почти так и происходило, по логу за время работы использовалось 2-3 региона, т.е. пишем в один, чистим другой, переключаемся и повторно заполняем, поэтому и расход памяти был не намного выше заданного на старте минимума (256мб). Количество gc отличается от 1 несколькими порядками.
                                              3. в 1.6 происходило заполнение всей памяти отведенной под max, после этого запускался stw, чистилось несколько gb памяти, после этого опять начиналось заполнение всей доступной памяти
                                              4. как уже выше говорилось при escape analysis использование памяти ниже, скорость работы выше, количество срабатываний gc не превышает 2х.
                                        0
                                        очень просто — сильно заметная нестабильная работа, а то и вообще неработоспособность некоторых проектов при переходе на 7. этого более чем достаточно не использовать
                                          0
                                          Думаю ее вообще скипнут и осенью будут переходить на восьмую. Так как на презентации седьмой обещали новую восьмую ровно через год.
                                            0
                                            На java day говорили что 8-ая java будет только летом 2013, и что переходят на 2х годичный цикл выпуска java.
                                              0
                                              Я был на презентации джавы у них в их головном офисе, они говорили 8 джава будет ровно через год, потому как 7ую в полном обьеме не успевали и они решили разделить релиз, а потом уже раз в два года
                                                0
                                                Я тоже там был летом :) Но 10 февраля они говорили про лето 2013.
                                                Нашёл пресс релиз: www.oracle.com/us/corporate/press/512956

                                                Plans for the next version of Java SE 8 are moving forward and Oracle is announcing a revised roadmap for a release with expanded scope, with availability expected in summer 2013.
                                          • UFO just landed and posted this here
                                              –3
                                              В Android нет Java.
                                              • UFO just landed and posted this here
                                                  –1
                                                  Вы пишете на языке Java для платформы Android. Скомпилированный байт-код преобразуете в код для DEX-машины. В Android нет Java.
                                                  • UFO just landed and posted this here
                                                      –1
                                                      Oracle судится с Google именно по этому поводу. Google не считает, что регистровая машина Dalvik является виртуальной машиной Java, которая в оригинале построена на принципах стековой архитектуры. К тому же, программный стек рантайма Android не базируется на библиотеках Java™ SE и ME. Это как бы Java, но Java™ не является.
                                                      • UFO just landed and posted this here
                                                          0
                                                          Блин… ну вот есть такие зануды… все считают что это Java, пишут под Android на Java…
                                                          Да, там есть технические и прочие нюансы… все, кто пишет, это знают и понимают что к чему.
                                                          Но всегда найдется зануда который будет всем доказывать что Java это не Java…
                                                            +1
                                                            Поддержка одного языка программирования не означает поддержки его референсной реализации — платформы, как того требует Oracle. Google эту ситацию понимает и старается максимально дистанцироваться от всякого упоминания Java в своей платформе Android. Java для Android только язык программирования, и ничего более. А вот программисты, использующие этот язык и средства разработки на Java, к сожалению, этого не понимают, для какой платформы, собственно, они пишут.

                                                            В своё время похожая ситуация возникла с Microsoft, которая изобрела собственные расширения для Java™. Компания Sun подала в суд на незаконное присвоение торговой марки продукту Microsoft, который не являлся имплементацией спецификаций, и выиграла дело. Microsoft пришлось возмещать экономический вред в размере 20 млн. долл. и заморозить развитие собственной MS JVM 1.1.4, во многом опережающей время реализации платформы.
                                                              0
                                                              Я же говорю — зануда.
                                                              Ну и что? Кому интересны эти терки в контексте данной заметки?
                                                              Я пишу на Java. И мне насрать референс или нет… надо будет писать с учетом Microsoft Java, буду учитывать ее особенности. Когда пишу под andriod, учитываю его особенности. Java от этого не перестает быть Java-ой.
                                                              Зачем ваше занудство здесь?
                                                                +2
                                                                > Зачем ваше занудство здесь?

                                                                Зачем заминусовали мои ответы?

                                                                Я не могу ответить тем же, кроме как объяснить свою позицию.
                                                                  0
                                                                  Собственно я не минусовал.
                                                                  Просто не люблю такие занудства не по делу…
                                                0
                                                Пока только на домашнем компе. В Ubuntu 11.10 теперь ставится OpenJDK 7 по-умолчанию.
                                                  +4
                                                  Пункт «Нет, и даже не пробовал» выбирают и те, кто не пишет на Java в принципе :)
                                                  Двусмысленный пунктик получился.
                                                    0
                                                    Не использую 7ю версию т.к. под Mac OS последний релиз 6.0.30 и 7ки еще нет т.к. apple сама подготавливает релизы под свою платформу.
                                                      0
                                                      >т.к. apple сама подготавливает релизы под свою платформу.

                                                      Уже нет
                                                      www.apple.com/pr/library/2010/11/12Oracle-and-Apple-Announce-OpenJDK-Project-for-Mac-OS-X.html
                                                        0
                                                        О спасибо. Кстати релиз JAVA 6.0.30 64битный под мак жутко глючит и тормозит, надо зайти в finder->программы->утилиты->Настройки JAVA и в приоритетах VM 32битную перетащит на вверх, перед 64битной. Тогда JAVA приложения просто начинают летать. К примеру Eclipse в маке на 64битной JAVA жустко тормозит.
                                                          0
                                                          Не за что. Я сам не на маке, просто помню, что давно была новость.
                                                          А насчет 64битной Java и Eclipse — не помню деталей, но мне кажется, что и на винде с этим были проблемы.
                                                      0
                                                      После столь фатальных багов в первых версиях — торопиться с переходом крупных проектов на Java 7 просто неразумно.
                                                        +1
                                                        Я сижу на Scala. Так что единственный плюс для меня — изменения в стандартных библиотеках. Будет проект, на котором они пригодятся — буду использовать.
                                                          0
                                                          В IBM Websphere Application Server есть только в версии 8.5, которая еще Beta, а когда заказчики смогут на нее перейти, то это вопрос еще как минимум пары-тройки лет.

                                                          Only users with full accounts can post comments. Log in, please.