The OpenNET Project / Index page

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

Выпуск Java SE 14

18.03.2020 08:40

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

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

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

  • Добавлена экспериментальная поддержка сопоставления c образцом в операторе "instanceof", которая позволяет сразу определить локальную переменную для обращения к проверенному значению. Например, можно сразу писать "if (obj instanceof String s && s.length() > 5) {.. s.contains(..) ..}" без явного определения "String s = (String) obj".
    Было:
    
       if (obj instanceof Group) {
         Group group = (Group) obj;
         var entries = group.getEntries();
       }
    
    Теперь можно обойтись без определения "Group group = (Group) obj":
    
       if (obj instanceof Group group) {
         var entries = group.getEntries();
       }
    
  • Добавлена экспериментальная поддержка нового ключевого слова "record", предоставляющего компактную форму для определения классов, позволяющую обойтись без явного определения различных низкоуровневых методов, таких как equals(), hashCode() и toString(), в случаях, когда данные сохраняются только в полях, поведение работы с которыми не меняется. Когда в классе используются типовые реализации методов equals(), hashCode() и toString(), в нём можно обойтись без их явного определения:
    
       public record BankTransaction(LocalDate date,
                                  double amount,
                                  String description) {}
    
    Данное объявление приведёт к автоматическому добавлению реализаций методов equals(), hashCode() и toString() в дополнение к конструктору и методам, контролирующим изменение данных (getter).
  • Стандартизирована и включена по умолчанию поддержка новой формы выражений "switch", не требующей указания оператора "break", позволяющей объединять повторяющиеся метки и допускающей использование не только в форме оператора, но и как выражения.
    
       var log = switch (event) {
           case PLAY -> "User has triggered the play button";
           case STOP, PAUSE -> "User needs a break";
           default -> {
               String message = event.toString();
               LocalDateTime now = LocalDateTime.now();
               yield "Unknown event " + message + 
                  " logged on " + now;
           }
       };
    
  • Расширена экспериментальная поддержка текстовых блоков - новой формы строковых литералов, позволяющих включать в исходный код многострочные текстовые данные без применения в них экранирования символов и сохраняя исходное форматирования текста в блоке. Обрамление блока осуществляется тремя двойными кавычками. В Java 14 в текстовых блоках реализована поддержка escape-последовательности "\s" для определения одного пробела и "\" для объединения со следующей строкой (игнорирования перевода строки, когда нужно вывести очень длинную строку). Например, вместо кода
    
       String html = "<HTML>" +
       "\n\t" + "<BODY>" +
       "\n\t\t" + "<H1>\"Java 14 is here!\"</H1>" +
       "\n\t" + "</BODY>" +
       "\n" + "</HTML>";
    
    можно указать:
    
       String html = """
       <HTML>
         <BODY>
           <H1>"Java 14\
     is here!"</H1>
         </BODY>
       </HTML>""";
    
  • Расширена информативность диагностики при возникновении исключений NullPointerException. Если раньше сообщение об ошибке лишь ссылалось на номер строки, то теперь в нём детализируется какой из методов вызвал исключение. Расширенная диагностика пока включается только при запуске с флагом "-XX:+ShowCodeDetailsInExceptionMessages". Например, при указании данного флага исключение в строке
    
       var name = user.getLocation().getCity().getName();
    
    приведёт к выводу сообщения
    
       Exception in thread "main" java.lang.NullPointerException: Cannot invoke "Location.getCity()" 
       because the return value of  "User.getLocation()" is null
       at NullPointerExample.main(NullPointerExample.java:5):5)
    
    которое позволяет понять, что метод Location.getCity() не был вызван, а User.getLocation() вернул значение null.
  • Реализован предварительный вариант утилиты jpackage, позволяющей создавать пакеты для самодостаточных (self-contained) Java-приложений. Утилита базируется на javapackager из JavaFX и позволяет формировать пакеты в форматах, родных для различных платформ (msi и exe для Windows, pkg и dmg для macOS, deb и rpm для Linux). Пакеты включают все необходимые зависимости.
  • В сборщик мусора G1 добавлен новый механизм распределения памяти, учитывающий специфику работу на крупных системах, использующих архитектуру NUMA. Новый распределитель памяти включается при помощи флага "+XX:+UseNUMA" и позволяет существенно поднять производительность на NUMA-системах.
  • Добавлен API для отслеживания на лету событий JFR (JDK Flight Recorder), например для организации непрерывного мониторинга.
  • Добавлен модуль jdk.nio.mapmode, предлагающий новые режимы (READ_ONLY_SYNC, WRITE_ONLY_SYNC) для создания отображаемых байтовых буферов (MappedByteBuffer), ссылающихся на энергонезависимую память (NVM).
  • Реализован предварительный вариант API Foreign-Memory Access, позволяющий Java-приложениям безопасно и эффективно получить доступ к областям памяти, вне кучи Java, манипулируя новыми абстракциями MemorySegment, MemoryAddress и MemoryLayout.
  • Объявлены устаревшими порты для ОС Solaris и процессоров SPARC (Solaris/SPARC, Solaris/x64 и Linux/SPARC) c намерением удалить данные порты в будущем. Перевод указанных портов в разряд устаревших позволит сообществу ускорить разработку новых возможностей OpenJDK, не тратя время на поддержание особенностей, специфичных для Solaris и SPARC.
  • Удалён сборщик мусора CMS (Concurrent Mark Sweep), который два года назад был отмечен устаревшим и остался без сопровождения (на смену CMS давно пришёл сборщик мусора G1). Кроме того, объявлено устаревшим применение комбинации алгоритмов сборки мусора ParallelScavenge и SerialOld (запуск с опциями "-XX:+UseParallelGC -XX:-UseParallelOldGC").
  • Обеспечена экспериментальная поддержка сборщика мусора ZGC (Z Garbage Collector) на платформах macOS и Windows (ранее поддерживался только в Linux). ZGC работает в пассивном режиме, насколько это возможно минимизирует задержки из-за сборки мусора (время остановки при использовании ZGC не превышает 10 мс.) и может работать как с небольшими, так и с огромными кучами, размером от нескольких сотен мегабайт до многих терабайт.
  • Удалены инструментарий и API для сжатия JAR-файлов с использованием алгоритма Pack200.


  1. Главная ссылка к новости (http://mail.openjdk.java.net/p...)
  2. OpenNews: Выпуск Java SE 13
  3. OpenNews: Oracle будет поддерживать Java SE 8/11 до 2030 года, а Solaris 11 до 2031 года
  4. OpenNews: Python опередил Java по числу проектов на GitHub
  5. OpenNews: Доступен Jakarta EE 8, первый выпуск после передачи Java EE проекту Eclipse
  6. OpenNews: Oracle меняет лицензию на сборки Java SE. Red Hat взял на себя сопровождение OpenJDK 8 и 11
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/52559-java
Ключевые слова: java, jdk, oracle, openjdk
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (127) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 09:06, 18/03/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –8 +/
    В дебиане, убунту и граале будет нескоро.
     
     
  • 2.2, заминированный тапок (ok), 09:23, 18/03/2020 [^] [^^] [^^^] [ответить]  
  • +6 +/
    в смысле нескоро
    https://www.oracle.com/java/technologies/javase-jdk14-downloads.html
    Linux Debian Package jdk-14_linux-x64_bin.deb
     
  • 2.3, заминированный тапок (ok), 09:25, 18/03/2020 [^] [^^] [^^^] [ответить]  
  • +4 +/
    есть и PPA
    а если речь про стандартные репы, то скакой стати данному пакету вообще там быть
     
     
  • 3.5, Аноним (5), 09:28, 18/03/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Во-первых оно там есть, если речь про OpenJDK 14
     
     
  • 4.6, заминированный тапок (ok), 09:31, 18/03/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    речь про Oracle
     
     
  • 5.44, JL2001 (ok), 11:49, 18/03/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > речь про Oracle

    с чего про оракл? зачем оно мне, если есть OpenJDK ? чай меня требование регулятора о договоре на суппорт не теребит

     
     
  • 6.63, Аноним (63), 13:59, 18/03/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Дело не только в суппорте, но еще и в том, что надо делать лицензионные отчисления чтобы использовать в продакшене Oracle JDK.
     
     
  • 7.78, Аноним (78), 18:16, 18/03/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Для Oracle JDK надо, для OpenJDK нет. Тем более, что Oracle не единственная компания, которая предоставляет тех. поддержку.
     
     
  • 8.89, Michael Shigorin (ok), 21:11, 18/03/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Да и JDK тоже http bell-sw com СПб ... текст свёрнут, показать
     
  • 8.104, Wilem (?), 22:55, 18/03/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Что б ты понимал, не существует сборки жавы под названием OpenJDK OpenJDK - это... текст свёрнут, показать
     
     
  • 9.105, Аноним (105), 05:01, 19/03/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Между прочим, менее кривой и косой чем тот же icedtea его сборки А openj9 воо... текст свёрнут, показать
     
  • 9.109, Аноним (109), 08:47, 19/03/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Забыл про https developers redhat com products openjdk download Кстати, сотру... текст свёрнут, показать
     
     
  • 10.117, Wilem (?), 13:06, 19/03/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Это для RHEL За деньги Похоже на правду, спасибо Первый раз это вижу, через г... текст свёрнут, показать
     
     
  • 11.135, Cloud (ok), 23:11, 16/07/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Есть же ещё Zulu community ... текст свёрнут, показать
     
  • 7.79, JL2001 (ok), 18:25, 18/03/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Дело не только в суппорте, но еще и в том, что надо
    > делать лицензионные отчисления чтобы использовать в продакшене Oracle JDK.

    зачем вам именно Oracle JDK ?

     
  • 3.73, Sergey722 (ok), 17:03, 18/03/2020 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Есть https://libericajdk.ru/ (или что то же самое https://bell-sw.com/).
    Там пока 14 версии нет, но, думаю скоро завезут.
    Это не Оракл, но на мой вкус приятный дистр.
    Есть сборка с JavaFX, кому надо (мне надо).
    Есть куча способов ставить: пакеты/архивы, докер-образы, репки (для Debian устанавливал).
    Есть видео о том как они его делают (в частности, что JCK и другие тесты гоняют): https://youtu.be/ClENwenPkrw.
    Есть возможность купить поддержку (и есть возможность не покупать), сам правда не пробовал.
    Кому актуально: оно есть в реестре российского ПО.

    З.Ы.: Ещё есть сборки от Азул и прочих, про кого хуже знаю...
    З.З.Ы.: В дистрах сборки тоже можно использовать, но, на сколько я знаю, JCK только сборка в RHEL проходит.

     
     
  • 4.80, Аноним (80), 18:25, 18/03/2020 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Беллсофт - это в основном бывшие сотрудники питерского офиса Sun и Oracle, которые не один год участвовали в разработке и сопровождении JVM, пока их Oracle не уволил в рамках "оптимизации".
     
     
  • 5.90, Michael Shigorin (ok), 21:12, 18/03/2020 [^] [^^] [^^^] [ответить]  
  • –7 +/
    > пока их Oracle не уволил в рамках "оптимизации"

    Насколько помню, совпало как раз с истериками про #russianhackers.

     
  • 4.106, Технополис (ok), 05:38, 19/03/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Не для рекламы, а для работы, мы рекомендуем именно эти сборки, так как только у них есть комплекты для систем разной разрядности, и у них есть варианты со встроенных JavaFX. Самая лучшая и гибкая комплектация. И сами трудимся в их JVM и клиентам рекомендуем. В общем спасибо ребятам за работу.
     
     
  • 5.110, Sergey722 (ok), 09:30, 19/03/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Мы пока только при разработке пробуем, но всё ок.
    Есть небольшой (т.к. есть вокэраунд) недостаток их сборок против Азуловских и Оракловых: почему-то нет jfxsrc.zip (архива с сорцами JavaFX).
    Воркэраунд: они выкладывают не только сборки но и архив с исходниками (всего JDK). Из этого архива можно выдрать JavaFX и зазиповать. Размер zip-файла правда большой мегабайт 100 получается (видимо, много лишнего), но это никак не влияет...

    Для наших клиентов могут быть существенны не технические, а "бумажные" факторы: присутствие в реестре российского ПО, всякие сертификации (там что-то про официальную совместимость с Аста линукс и с "православными" криптосистемами).

     
  • 2.4, artenox (?), 09:27, 18/03/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > убунту

    Возможно, будет здесь https://launchpad.net/~openjdk-r/+archive/ubuntu/ppa
    13 есть даже для 12.04.
    Еще здесь от Oracle https://www.oracle.com/java/technologies/javase-jdk14-downloads.html но только x64.
    Для 19.04 и новее есть в репозитории.

     
     
  • 3.8, заминированный тапок (ok), 09:37, 18/03/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    либо Oracle LTS: https://launchpad.net/~linuxuprising/+archive/ubuntu/java
     
  • 2.57, Аноним (-), 13:32, 18/03/2020 [^] [^^] [^^^] [ответить]  
  • –5 +/
    дебиан и убунту кому-нибудь на production server интересны?...
     
     
  • 3.82, пох. (?), 19:15, 18/03/2020 [^] [^^] [^^^] [ответить]  
  • +6 +/
    совершенно неинтересны - работают себе.

    А вот обмазаться распоследней только-что-из-под-хвоста "мамой клянусь - обратная совместимость!" версией прямо на production server - это интересно, но лучше чтоб не у меня.

     

  • 1.7, Аноним (7), 09:33, 18/03/2020 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • –10 +/
     

     ....ответы скрыты (3)

  • 1.11, Аноним (11), 09:45, 18/03/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Интересно почему ключевое слово называется record.
     
     
  • 2.14, Аноним (10), 10:00, 18/03/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    https://en.wikipedia.org/wiki/Record_(computer_science)
     
  • 2.30, Аноним (30), 11:00, 18/03/2020 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Что бы не struct
     
  • 2.37, anonimous (?), 11:26, 18/03/2020 Скрыто ботом-модератором     [к модератору]
  • +6 +/
     
  • 2.53, коржик (?), 12:57, 18/03/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    чтобы не data class (kotlin)
     
  • 2.69, Аноним (69), 15:56, 18/03/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Потому что «запись» (в таблице). В Паскале это ключевое слово тоже было, например.
     
  • 2.107, lockywolf (ok), 05:54, 19/03/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Интересно почему ключевое слово называется record.

    В Схеме тоже record.

     

  • 1.12, Аноним (12), 09:49, 18/03/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    На Соляру положили болт, эх...
     
  • 1.13, Аноним (13), 09:59, 18/03/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    Java упорно пытается догнать C# по удобству.
     
     
  • 2.21, proninyaroslav (ok), 10:33, 18/03/2020 [^] [^^] [^^^] [ответить]  
  • –3 +/
    И котлин в т.ч
     
     
  • 3.31, Аноним (31), 11:01, 18/03/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    2 сапога пара, только котлин на какое место?
     
  • 2.113, Im banana man (?), 10:57, 19/03/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Пока догонит, народ на Kotlin пересядет. Уже процесс начался. Среди знакомых Java-разрабочтиков все потихоньку переползают на Kotlin. Для Android новые фичи сперва на Kotlin выходят, потом на Java
     
     
  • 3.126, Виталий (??), 11:59, 21/03/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Никуда народ с Java не пересядет Посмотри на динамику, Java за год набрала ещ... большой текст свёрнут, показать
     
     
  • 4.133, java_ent_dev (?), 01:34, 23/03/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Вы все верно пишите.
    Котлин не пригоден для серьезных проектов. Зачем закладывать грабли в проект?
    Нужность его под сомнением была еще с момента его появления, а сегодня и подавно нет смысла его использовать. Кому нужны фичи пересядут на более свежую жаву.
     
  • 3.128, java_ent_dev (?), 00:32, 23/03/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Все строго наоборот, жава уже набрала новых фич которые ожидались и нужность котлина отпала.
    Тем более есть тот же lombok, который убирает рутину.
     

  • 1.15, Аноним (-), 10:07, 18/03/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    есть сомнения, что java в ближайшее время будет потеснена C#, потому что netcore freeopensource и netcore работает под linux
     
     
  • 2.18, Аноним (10), 10:15, 18/03/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Этому вашему сырому неткору@Linux до уровня энтерпрайза как лебедю, щуке и раку пешком до луны. Если дотнет еще более-менее взрослая и серьезная платформа, то "неткор" - просто рекламная демка с расчетом на то, что пользователи захотят перестать быть 3rd class citizen-ами и перейдут на дотнет@Вантуз. А что касается сишарпа, то пик увлечения им пришелся на 2012 год, с тех пор он идет только на спад.
     
     
  • 3.27, javaIsGoingDead (?), 10:48, 18/03/2020 [^] [^^] [^^^] [ответить]  
  • +4 +/
    а разве NetCore 3.1 не LTS?

    >> Если дотнет еще более-менее взрослая и серьезная платформа, то "неткор" - просто рекламная демка

    вроде из net framework в netcore переносятся api, а  в ноябре 2020 планируется .net 5, который
    будет основан на netcore, mono, net framework.
    Причём этот net 5 обещали таким же freeopensource, как netcore, и этот net 5 будет заменой netcore, mono, net framework.

    >> А что касается сишарпа, то пик увлечения им пришелся на 2012 год, с тех пор он идет только на спад.

    это как раз именно то, что с java происходит из-за нескольких причин: из-за политики Oracle(в том числе лицензионной), и из-за того, что есть kotlin, scala

     
     
  • 4.36, artenox (?), 11:18, 18/03/2020 [^] [^^] [^^^] [ответить]  
  • –3 +/
    > в ноябре 2020 планируется .net 5

    Интересно, будет ли поддержка Win7. Наверное, нет.

     
     
  • 5.98, пох. (?), 22:02, 18/03/2020 [^] [^^] [^^^] [ответить]  
  • +/
    в смысле "удастся ли что-то так занятно поломать, чтобы оно в win7 не работало"?
    А то "поддержка"-то и так кончилась, но ведь надо ж еще добиться чтобы чем-то отличалось, кроме внешнего оформления интерфейса...

     
     
  • 6.108, artenox (?), 08:33, 19/03/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > поломать

    Уж это они могут. 4.X версии с плясками ставятся на необновленную систему без интернета, а в последнее время и интернет не помогает.

     
  • 4.97, пох. (?), 22:00, 18/03/2020 [^] [^^] [^^^] [ответить]  
  • +/
    >> А что касается сишарпа, то пик увлечения им пришелся на 2012 год,
    >> с тех пор он идет только на спад.
    > это как раз именно то, что с java происходит из-за нескольких причин

    только если это про жабу, то год был где-то 2002й. С тех пор - "только на спад".
    Потому что есть C# и .net

    Единственным сомнительным конкурентным преимуществом до недавнего времени было именно отсутствие .net на шва...6ешпла...халявных, короче, платформах, чтоб за лицензию клятому мелкософту не плотить! Но тут орацл делает ход конем, и выясняется, что кто не желал компании зла дань платить - будет платить втрое.

     
  • 3.87, Урри (?), 20:11, 18/03/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Так было раньше, когда оракл не забил на обратную совместимость. У нас софт до сих пор приходится гонять под 8 версией, так как все выше не работают.
    При этом восьмую теперь хрен просто так поставишь без бубнов.
     
     
  • 4.99, пох. (?), 22:03, 18/03/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Так было раньше, когда оракл не забил на обратную совместимость.

    не было. Точно такой же "socket error" бывал при попытке вместо пятой версии взять шестую - в распрекрасные древние дни владычества sun.

    > При этом восьмую теперь хрен просто так поставишь без бубнов.

    не понял, а я что вчера поставил такое?

     
  • 2.19, Аноним (19), 10:21, 18/03/2020 [^] [^^] [^^^] [ответить]  
  • +4 +/
    > есть сомнения, что java в ближайшее время будет потеснена C#

    т.е. Вы сомневаетесь в том, что ява будет потеснена? Или имелось ввиду что "Есть сомнения, что ява устоит под натиском сишарпа в ближайшее время?"

     
     
  • 3.22, bOOster (ok), 10:39, 18/03/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    С шарп нужен только виндузятникам. Остальным он по боку - а если учитывать что количество серверов под управлением Выньды медленно, но уверенно идет вниз - Сшарп закончится асболютно индентично.
     
     
  • 4.60, Аноним (-), 13:42, 18/03/2020 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Для того, чтобы C# скончался, достаточно банкротства Микрософта. А произойти это может очень быстро. Начало этого года очень хорошо иллюстрирует хрупкость нашего мира. Не надо думать, что Микрософт - устойчивая компания. У них нет каких-то ключевых продуктов, которые не могут быть заменены за пару месяцев.
     
     
  • 5.66, Аноним (66), 15:05, 18/03/2020 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Альтернативы винде нет исключительно потому, что как только выйдешь за пределы своего дивана - сразу столкнешься с тем, что прикладного софта нет. И переписывать его никто не собирается.
     
     
  • 6.68, Аноним (-), 15:46, 18/03/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > прикладного софта нет. И переписывать его никто не собирается.

    В игрушки играть что ли? Бизнес-приложения уже лет 15 как строят на веб-основе. И ничего, кроме современного браузера им не нужно. А серверы - уже лет 10, как тотально линуксы.

     
     
  • 7.86, Она нас (?), 19:50, 18/03/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А современного браузера (нормального, подчеркиваю, еще раз) тоже нет. Одна ненастраиваемая куча мэйнстрима. Или старьё, которое и половину вэба открыть не может.
     
     
  • 8.88, Аноним (-), 20:32, 18/03/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Вот с чем уж точно проблем нет, так это с браузером Если не использовать виндов... текст свёрнут, показать
     
     
  • 9.94, Она нас (?), 21:42, 18/03/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Да проблема только одна Чем дальше, тем они все хуже и хуже Тяжелее, жирнее, п... текст свёрнут, показать
     
  • 6.102, JL2001 (ok), 22:48, 18/03/2020 [^] [^^] [^^^] [ответить]  
  • –3 +/
    > Альтернативы винде нет исключительно потому, что как только выйдешь за пределы своего
    > дивана - сразу столкнешься с тем, что прикладного софта нет. И
    > переписывать его никто не собирается.

    не знаю чего там у вас за мир, а весь мой прикладной и профессиональный софт есть на лине

     
  • 5.114, Im banana man (?), 10:59, 19/03/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Ключевые продукты:
    XBox
    MS Office
    Azure
     
     
  • 6.122, Аноним (-), 13:32, 19/03/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > XBox

    игровых автоматов и без микрософта достаточно

    > MS Office

    А он кому, вообще, нужен в локальном варианте?

    > Azure

    AWS, Google, локальные провайдеры с демпинговыми ценами. Нее?


    И где, в итоге, место микрософту?

     
  • 4.91, Аноним (91), 21:15, 18/03/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Выходите из анабиоза, .net Давно в докере есть под линуксом
     
     
  • 5.132, java_ent_dev (?), 01:24, 23/03/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    И кому это интересно и главное зачем?

    Берешь жаву которая работает везде и инструменты для разработки, которые тоже работают везде.
    Берешь документацию, фреймворки и примеры, которых в избытке.
    Далее находишь себе высокооплачиваемую работу с возможностью работать за границей, если так уж хочется.
    Хочешь пиши гуй, веб, андройд, ембеддед, биг дэйта и черта в ступе.

    И не морочишь себе голову унылыми костылями, адепты которых за$рали все комменты.
    Что вы тут делаете?

     
  • 3.50, anonymous (??), 12:19, 18/03/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Разделяйте уже JVM как платформу и Java как язык. Там и языков много и реализаций есть как минимум три. Причём в отличие от дотнета есть единый стандарт, которому все три реализации следуют. Чисто языковыми фичами яву не продавишь.

    Дотнет по уровню развития платформы где-то между питоном и явой находится.

     
     
  • 4.56, Аноним (-), 13:31, 18/03/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Разве это не была рекламная компания Sun называть словом java язык программирования, виртуальную машину, и т.д. ?
     
  • 4.70, Аноним (69), 15:58, 18/03/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Знакомьтесь: .NET Standard
    https://docs.microsoft.com/ru-ru/dotnet/standard/net-standard
     
     
  • 5.130, java_ent_dev (?), 01:02, 23/03/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Вы ознакомились? Этого достаточно.
    Говно не обязательно пробовать на вкус, если уже по запаху понятно, что это говно.
     
  • 4.71, Аноним (69), 16:02, 18/03/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    У платформы Java больше наработок, это факт. Зато у .NET более продуманная и чистая архитектура (не идеальная, но всё же с учётом ряда ошибок и наследственных проблем Java): честные generic-типы, быстрый Reflection и т.д.

    Как язык C# однозначно обходит Java по удобству (имею приличный опыт с обоими), это тоже фактор.

     
     
  • 5.129, java_ent_dev (?), 01:00, 23/03/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Это фактор писать хелловорлды на глючной винде, предварительно за нее как следует заплатив.
    Серьезные проекты где много кода не крутят на винде, если с головой все в порядке.

    Большинство сидит на 8-ке и никого в реальности не парят ни вами надуманные проблемы,
    ни наследственные проблемы жавы.
    Кому нужны фичи, берут новые релизы.

    Причем тут огороженные шарпей вообще не понятно.

    Да перспективы жава разработчика в разы шире, того, кто выбрал шарпей.
    Вот это реальный фактор.


     
  • 4.115, Im banana man (?), 11:00, 19/03/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Kotlin же использует JVM
    Clojure использует JVM

    Отличные языки, кстати

     
  • 2.124, Виталий (??), 17:38, 20/03/2020 [^] [^^] [^^^] [ответить]  
  • +6 +/
    На чем это основано? Давайте посмотрим на статистику

    20 лет самый популярный язык программирования https://www.tiobe.com/tiobe-index/

    вся bigdata (hadoop, spark,flink, hbase,cassandra,dynamodb) - java
    весь enterprise - java
    вся мобильная разработка под android - java
    большинство популярных IDE(IDEA,Eclipse,NetBeans) -java
    доставка платного видео  (netflix, youtube) - java
    messaging  (kafka, aws sqs) - java
    сервера сборок  (jenkins, hudson, teamcity) - java
    bug issue tracking (jira/youtrack) - java
    сервера артифактов (nexus, artifactory) - java

    И где тут С#?
    Тут даже python - то место не нашлось, а он  популярнее с# раза в два.

     
     
  • 3.131, java_ent_dev (?), 01:11, 23/03/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Это основано на фантазиях студентов, которых принудительно заставили учить шарпея.

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

    Жава догоняет шарпея!!! Воу!!
    Ну если только она его уже раз 20 уже опередила по кругу.
    Выдают унылый скрпированный с жавы костыль за нечто серьезное.

     

  • 1.16, lockywolf (ok), 10:10, 18/03/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Новый switch лисповенький.
     
     
  • 2.47, JL2001 (ok), 12:06, 18/03/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Новый switch лисповенький.

    это лямбды лисповенькие, а свичу рикошетом досталось

     
     
  • 3.49, lockywolf (ok), 12:14, 18/03/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >> Новый switch лисповенький.
    > это лямды лисповенькие, а свичу рикошетом досталось

    Ну, свич -- та же лямбда.

     
     
  • 4.120, Аноним (69), 13:16, 19/03/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >>> Новый switch лисповенький.
    >> это лямды лисповенькие, а свичу рикошетом досталось
    > Ну, свич -- та же лямбда.

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

     

  • 1.17, Аноним (17), 10:14, 18/03/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    А есть трансляторы кода из Явы в Яваскрипт?
     
     
  • 2.24, Аноним (24), 10:40, 18/03/2020 [^] [^^] [^^^] [ответить]  
  • +7 +/
    Да, 120 к. в час.
     
     
  • 3.62, Аноним (63), 13:49, 18/03/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Вы хотели сказать в месяц?
     
     
  • 4.74, Аноним (69), 17:16, 18/03/2020 [^] [^^] [^^^] [ответить]  
  • +4 +/
    > Вы хотели сказать в месяц?

    Он хотел сказать «копеек».

     
  • 2.26, Аноним (19), 10:48, 18/03/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Такие трансляторы/компиляторы из языка в язык кажись правильно называть транспайлером (транспилятором). Раньше у гугла был GWT, да сдох. Ему на смену пилят J2CL

    https://habr.com/ru/company/haulmont/blog/430378/

    Но мое мнение - пора уже все затачивать на трансляцию сразу в WebAssembly

     
     
  • 3.127, Petr (??), 14:00, 21/03/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Транслятор - с языка на язык, компилятор - с языка на что то более низкоуровневое.
    pile - куча, груда, стопка, ворох, штабель, кипа, пачка. Если вы относитесь к своему коду как к куче непонятно чего, то транспилите пожалуйста на здоровье.

    С WebAssembly - да.

     
     
  • 4.134, Аноним (134), 15:06, 25/03/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Вы неуч
    https://ru.wikipedia.org/wiki/%D0%A2%D1%80%D0%B0
     
  • 2.33, Аноним (33), 11:03, 18/03/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Был GWT, активно использовался в 2007-2013 годах, кажись на нем был написал google wave и evernote. Это не только транслятор, там был какой-то рантайм который бандлился в генерируемый js, RPC для коммуникации между сервером и клиентом.

    Что-то похожее на GWT можно сейчас получить если взять TypeScript + Webpack + библиотека для коммуникаций.

     
  • 2.42, КО (?), 11:42, 18/03/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В каком-то смысле gwt, но уж больно заброшенный.
     
  • 2.43, КО (?), 11:43, 18/03/2020 [^] [^^] [^^^] [ответить]  
  • +/
    В каком-то смысле gwt, но уж больно заброшенный проект
     
  • 2.116, Im banana man (?), 11:01, 19/03/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Были попытки на WASM
     

  • 1.20, Дихлофос (?), 10:22, 18/03/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    я в андройд приложениях до сих пор использую jdk 1.8.0_151
     
     
  • 2.52, Аноним (52), 12:29, 18/03/2020 [^] [^^] [^^^] [ответить]  
  • +/
    В андроиде есть котлин, поэтому не критично
     
     
  • 3.61, Дихлофос (?), 13:47, 18/03/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    не юзаю котлин
     
     
  • 4.84, НяшМяш (ok), 19:45, 18/03/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > андройд

    хотя бы словарь заюзай

     
     
  • 5.103, Дихлофос (?), 22:54, 18/03/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    не выпендривайся!
     

  • 1.23, Аноним (23), 10:40, 18/03/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    А вот в Котлине всё это уже давно есть.
     
     
  • 2.25, Аноним (24), 10:41, 18/03/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Да кому это нужно в Kotlin-е и в целом и для Java уже не актуально.
     
     
  • 3.51, Аноним (52), 12:28, 18/03/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Котлин это лучший язык программирования, который существует на данный момент
     
     
  • 4.54, Аноним (54), 13:03, 18/03/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Бреслав, перелогиньтесь!
     
  • 4.55, коржик (?), 13:05, 18/03/2020 [^] [^^] [^^^] [ответить]  
  • +/
    В котлине всё нормально кроме конструкторов, которые расползлись по всему определению классов. Первычный конструктор, вторичный конструктор, унаследованный конструктор, init {}.
    Половина приватных полей в конструкторе, половина в теле класса.

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

     
     
  • 5.65, Аноним (33), 15:05, 18/03/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Если это доставляет неудобства, значит у вас там этого много, а значит у вас должны уже ввести конвенции по коду, это такая дока которая определяет единый стиль. Затем нужно посмотреть какие возможности дают доступные статические анализаторы, для kotlin это прежде всего встроенный анализатор в IDEA, есть есть возможность определить на не желаемый вариант ворнинг то сделать, экспортировать настройки статической проверки и расшарить в команде, для чего обычно держат инфраструктурный проект (со всеми конфигами).

    Так делают во всех сколько нибудь больших проектах на устоявшихся языках, а вот то что делают языки в которых можно сделать что-то только одним способом мне не нравится, вроде именно с такими мыслями создавали GO.

     
  • 4.72, Аноним (69), 16:04, 18/03/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Ну да, куда там F#.
     
  • 4.118, NameName (?), 13:14, 19/03/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Котлин это плохой фанфик на не очень хороший оригинал.
     
  • 4.125, Виталий (??), 22:51, 20/03/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    https://docs.google.com/spreadsheets/d/1pG04eMdC_2u3t7Tab9J8sSoKQ1zZfm5B0vtYuO
     

  • 1.28, YetAnotherOnanym (ok), 10:51, 18/03/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Расширена экспериментальная поддержка текстовых блоков - новой формы строковых литералов, позволяющих включать в исходный код многострочные текстовые данные без применения в них экранирования символов и сохраняя исходное форматирования текста в блоке. Обрамление блока осуществляется тремя двойными кавычками. В Java 14 в текстовых блоках реализована поддержка escape-последовательности "\s" для определения одного пробела и "\" для объединения со следующей строкой (игнорирования перевода строки, когда нужно вывести очень длинную строку).

    А такого не было? Ну охренеть...

     
     
  • 2.29, Аноним (29), 10:59, 18/03/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Не было. Это новый оператор """
     
  • 2.41, Аноним (41), 11:42, 18/03/2020 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Да все эти строки раньше выглядели очень энтерпрайзненько. Да и теперь продолжат так выглядеть ктож на эту джаву в ближайшее время перейдет.
     
     
  • 3.59, Аноним (-), 13:38, 18/03/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    На ближайшие лет 10, альтернативы Java нет. Котлин - это хорошо, но без внешней поддержки (например Оракл обложит всех патентными ограничениями), массовым он не станет. Так и останется языком для Андроид-приложений.
     
     
  • 4.96, SE (?), 21:52, 18/03/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Уже давно понятно, что котлин существует только благодаря гугловой лени развивать андроид. Это единственное что его держит при жизни. За доказательсвами может поискать работу на котлине.
     

  • 1.32, Аноним (31), 11:02, 18/03/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    webstart есть? Нет? Уносите.
     
     
  • 2.58, Аноним (-), 13:35, 18/03/2020 [^] [^^] [^^^] [ответить]  
  • +/
    https://start.spring.io/
     
  • 2.64, Аноним (31), 14:04, 18/03/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Последняя версия для Windows - 8-ка от Red Hat.
     
  • 2.76, Аноним (76), 17:39, 18/03/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    И не будет. Что апплеты на джаве, что вебстарт, что переписать нетскейп на джаву все не полетело. Ну не приспособлен язык к этому и все тут. "Я же говорил место такое, а ты все руки из ...".
     

  • 1.40, Аноним (41), 11:41, 18/03/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    """ это очень нужная фича. Которая нужна была как минимум 15 лет назад. Хотя сейчас тоже нужна.
     
     
  • 2.48, JL2001 (ok), 12:10, 18/03/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > """ это очень нужная фича. Которая нужна была как минимум 15 лет
    > назад. Хотя сейчас тоже нужна.

    а как туда вставить строку начинающуюся с таба или с пробела?

     
     
  • 3.67, Аноним (67), 15:37, 18/03/2020 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Я так понимаю прямо в редакторе кода. Строки в Java хранятся в UTF-16.
     
  • 3.75, Аноним (76), 17:35, 18/03/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Ну так взять и поставить пробел в начале. Форматирование начинается от начала строки в редакторе.

    Причем точно такое же поведение у """ в питоне и в 2 и в 3 даже внутри функций где текст внутри функции отделен 4-мя пробелами от начала строки. Такую конструкцию даже там надо писать от начала строки в редакторе и все корректно отобразится.

     
     
  • 4.81, JL2001 (ok), 18:31, 18/03/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Ну так взять и поставить пробел в начале. Форматирование начинается от начала
    > строки в редакторе.
    > Причем точно такое же поведение у """ в питоне и в 2
    > и в 3 даже внутри функций где текст внутри функции отделен
    > 4-мя пробелами от начала строки. Такую конструкцию даже там надо писать
    > от начала строки в редакторе и все корректно отобразится.

    судя по виденым примерам кода - форматирование от начала строки до, возможно, начала букв String html = - игнорируется (в виденрых мной примерах строчки - с отступом)
    уже предвкушаю что же будет если у одного разраба отступы в пробелах, а у второго в табах

     

  • 1.83, Анонымоус (?), 19:35, 18/03/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    International use restrictions

    Due to limited intellectual property protection and enforcement in certain countries, the source code may only be distributed to an authorized list of countries. You will not be able to access the source code if you are downloading from a country that is not on this list. We are continuously reviewing this list for addition of other countries.

    Так что, исходники доступны или не очень?

     
     
  • 2.100, анон (?), 22:20, 18/03/2020 [^] [^^] [^^^] [ответить]  
  • +/
    получается, что java - это не freeopen-source, а только притворялась freeopen-source?
     
  • 2.111, Аноним (111), 09:51, 19/03/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Из Крыма доступны, тута смотрел http://hg.openjdk.java.net/jdk/jdk14/file/6c954123ee8d

    А вот исходники Chromium, Go или Android без vpn не стянуть. Свобода она такая.

     
  • 2.112, Аноним (109), 10:02, 19/03/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Скачать исходники: hg clone https://hg.openjdk.java.net/jdk/jdk14/

    Лицензия на исходники: https://hg.openjdk.java.net/jdk/jdk14/file/6c954123ee8d/LICENSE

     

  • 1.92, Аноним (91), 21:16, 18/03/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Сюда бы ссылочку на статью Graal VM, Shenandoah, ZGC и всё-все
     
  • 1.93, Аноним (93), 21:23, 18/03/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    >Данное объявление приведёт к автоматическому добавлению реализаций методов equals(), hashCode() и toString() в дополнение к конструктору и методам, контролирующим изменение данных (getter).

    Но ведь геттер не изменяет данные?

     
     
  • 2.119, NameName (?), 13:15, 19/03/2020 [^] [^^] [^^^] [ответить]  
  • +/
    каааакой вы скучный
     
  • 2.121, Аноним (69), 13:20, 19/03/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >>Данное объявление приведёт к автоматическому добавлению реализаций методов equals(), hashCode() и toString() в дополнение к конструктору и методам, контролирующим изменение данных (getter).
    > Но ведь геттер не изменяет данные?

    Вы где-то в Java нашли модификатор функции (не переменной) а-ля const в C?

     

  • 1.101, Анонимс (?), 22:43, 18/03/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    А где там интересн на JRE ссылк?
     
  • 1.123, Аноним (123), 18:12, 19/03/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    а есть ли некое подобие java ee beans но только для новой джавы и так же хорошо? мож кто хорошо знает 11+ и имеет огромный опыт разработки напишет такое? я б честно купил такую книгу.
     

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



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

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