"Что загорится в 2022 году? Чему научиться? Эта статья участвует«Поговорим о технологических тенденциях 2022 года»Требуют документов"
Данная статья является переводом, первоисточник выглядит следующим образом.
- Авторы: Майкл-Редлих, Бен-Эванс
- Оригинальная ссылка:Отчет о тенденциях в Java — декабрь 2021 г.
🤞 Персональная домашняя страница:@青城Sequencer Stone
🤞 Преимущества вентилятора:Добавить фан-базуОдин на один задавайте вопросы и получите богатый шаблон резюме, улучшите учебные материалы и так далее, сделайте фигурного короля новой эры!
Key Takeaways
- Java 11 has reached parity with Java 8 in terms of market share.
- Java 11 достиг паритета с java8 с точки зрения доли рынка.
- Quarkus, introduced after Micronaut and Helidon, continues to be a popular framework and has "crossed the chasm" into the Early Majority space.
- Представленный после Micronaut и Helidon, Quarkus по-прежнему остается популярным фреймворком и «преодолел пропасть» в пространстве раннего большинства.
- Containers have broken through and are now the way that the majority of Java applications are deployed.
- Контейнеры совершили прорыв, и теперь большинство Java-приложений развертываются таким образом.
- Microsoft furthers its commitment to Java with the release of their own downstream distribution of OpenJDK and having joined the Java Community Process. Microsoft Build of OpenJDK is a new participant in the OpenJDK downstream distribution space.
- Microsoft еще больше укрепила свою приверженность Java, выпустив собственный дистрибутив OpenJDK и присоединившись к процессу сообщества Java. Сборка Microsoft OpenJDK — это новый игрок в пространстве распространения OpenJDK.
- Spring Framework 6 and Spring Boot 3, scheduled for GA releases in 2022, will be a major overhaul of these projects to adopt modularity. Spring Native has emerged as a new tool to convert existing Spring Boot applications, written in Java or Kotlin, to GraalVM native images.
- Выпуск общедоступных версий Spring Framework 6 и Spring Boot 3 запланирован на 2022 год, и они станут значительным улучшением внедрения модульности для этих проектов. Spring Native появился как новый инструмент для преобразования существующих приложений Spring Boot (написанных на Java или Kotlin) в собственные образы GraalVM.
- MicroStream has emerged as a new participant in the Java ecosystem.
- Он стал новым участником экосистемы Java.
- After years of stagnation, VS Code is shaking things up in the Java IDE space.
- После многих лет застоя VS Code меняет ландшафт javaide.
This article provides a summary of how the InfoQ Java editorial team currently sees the adoption of technology and emerging trends within the Java space.
В этой статье кратко изложено, как редакция InfoQ Java в настоящее время рассматривает внедрение технологий и новые тенденции в области Java.
We focus on Java the language, as well as related languages like Kotlin and Scala, the Java Virtual Machine (JVM), and Java-based frameworks and utilities.
Мы ориентируемся на язык Java и связанные с ним языки, такие как Kotlin и Scala, виртуальную машину Java (JVM), а также платформы и утилиты на основе Java.
We discuss trends in core Java, such as the adoption of new versions of Java, and also the evolution of frameworks such as Jakarta EE, Quarkus, Micronaut, Helidon, MicroProfile and MicroStream.
Мы обсудили тенденции развития ядра Java, такие как принятие новой версии Java, а также эволюцию таких платформ Jakarta EE, Quarkus, Micronaut, Helidon, MicroProfile и MicroStream и других.
This report has two main goals:
Этот отчет преследует две основные цели:
- To assist technical leaders in making mid- to long-term technology investment decisions.
- Помогайте технологическим лидерам в принятии среднесрочных и долгосрочных решений об инвестициях в технологии.
- To help individual developers in choosing where to invest their valuable time and resources for learning and skill development.
- Помогите отдельным разработчикам выбирать, где вкладывать свое ценное время и ресурсы для развития и развития навыков.
This is our third published Java trends report. However, this topic has received ample news coverage as we have been internally tracking Java and JVM trends since 2006.
Это наш третий отчет Java Trends. Тем не менее, мы отслеживаем тенденции Java и JVM внутри компании с 2006 года, и эта тема хорошо освещена.
Чтобы помочь ориентироваться в текущих и будущих тенденциях на InfoQ и QCon, мы используем ментальную модель «преодоления пропасти» для технологического успеха, впервые предложеннуюGeoffrey Moore in his bookМы пытаемся определить идеи, которые соответствуют тому, что Мур назвал ранним рынком, где «клиентская база состоит из технологических энтузиастов и провидцев, которые хотят опередить либо возможность, либо надвигающуюся проблему».
Чтобы помочь определить текущие и будущие тенденции на InfoQ и QCon, мы используем ментальную модель технологического успеха «Преодоление пропасти», впервые предложенную Джеффри Муром в его одноименной книге. Мы пытаемся найти идеи, которые соответствуют тому, что Мур называет «рынком ранней стадии», «рынком с клиентской базой, состоящей из технических энтузиастов и провидцев, которые хотят опередить возможности или надвигающиеся проблемы».
As we have done for the 2020 and 2019 Java trend reports, we present the internal topic graph for 2021:
Как и в случае с нашими отчетами Java Trends за 2020 и 2019 годы, мы предоставляем внутреннюю тематическую карту на 2021 год:
For context, here is our internal topic graph for 2020
Ниже представлена наша внутренняя тематическая карта на 2020 год.
Aside from some new technologies having been identified in the Innovators space, notable changes include: defining versions of Spring (and their related projects), Jakarta EE and Scala into different categories. We decided on this approach to avoid generalizing these technologies into one category when varying degrees of maturity and adoption exist.
Помимо открытия некоторых новых технологий в области инноваций, заметные изменения включают: определение версий Spring (и связанных с ним проектов), Jakarta EE и Scala как отдельных категорий. Мы решили использовать этот подход, чтобы избежать обобщения этих технологий в одну категорию, когда существуют разные уровни зрелости и принятия.
Spring Framework 6 and Spring Boot 3, scheduled for GA releases in late 2022, will be going through an overhaul to adopt modularity and will require JDK 17+ and Jakarta EE 9. A preview has recently been made available with the first milestone release of Spring Framework 6.
Spring Framework 6 и Spring Boot 3, общедоступный выпуск которых запланирован на конец 2022 года, будут переработаны, станут модульными и потребуют наличия JDK 17+ и Jakarta EE 9. Недавно, с выпуском первой промежуточной версии Spring Framework 6, стала доступна предварительная версия.
Introduced at the beginning of 2021, Spring Native is a new tool to convert existing Spring Boot applications, written in Java or Kotlin, to GraalVM native images and is in the very early stages of development.
Представленный в начале 2021 года Spring Native — это новый инструмент для преобразования существующих приложений Spring Boot (написанных на Java или Kotlin) в собственные образы GraalVM, который все еще находится на очень ранних стадиях разработки.
Scala 3, released earlier this year, was overhauled with many new features, new syntax and the much-anticipated new Dotty compiler that has been under development for a number of years.
Выпущенная ранее в этом году, Scala 3 была переработана, добавлено множество новых функций, новый синтаксис и долгожданный новый компилятор Dotty, который разрабатывался годами.
Earlier this year, Microsoft furthered their commitment to the Java programming language when they introduced Microsoft Build of OpenJDK, their own downstream distribution of OpenJDK.
Ранее в этом году Microsoft запустила Microsoft Build, собственный нисходящий дистрибутив OpenJDK, продолжая использовать язык программирования Java.
AdoptOpenJDK joined the Eclipse Foundation and was immediately renamed Adoptium. The transition to Adoptium included the creation of an Eclipse Working Group and a split of AdoptOpenJDK into multiple sub-projects under the Adoptium top level project: Eclipse AQAvit, Eclipse Temurin and Eclipse Temurin Compliance.
Присоединился к AdoptOpenJDK Eclipse Foundation и сразу же сменил название на Adoptium. Переход на Adoptium включал создание рабочей группы Eclipse и разделение AdoptOpenJDK на несколько подпроектов в рамках проекта верхнего уровня Adoptium: Eclipse AQAvit, Eclipse Temurin и Eclipse Temurin Compliance.
JDK 17
Beckwith: Java is now a more vigorous enforcement of OOP principles via JEP 403: Strongly Encapsulate JDK Internals. Vector computation via a platform-agnostic Vector API. The language additions, such as Records, and JVM improvements, such as project Valhalla, remove many verbosities and further embrace the concept of immutability, thus providing opportunities for performance optimizations.
Благодаря jep403: Strong Encapsulation of JDK Internals, Java теперь обеспечивает более строгое соблюдение принципов ООП. Векторные вычисления на основе независимого от платформы Vector API. Добавлены такие языки, как Records, а также улучшения JVM, такие как проект Valhalla, устранены многие подробные ошибки и дополнительно реализована концепция неизменности, открывающая возможности для оптимизации производительности.
Mihalceanu: This year pleasantly surprised Java developers with both LTS and non-LTS Java releases. The Java 17 release was the confirmation that many of those preview features are now generally and long-term available. It also added a sense of urgency for some projects that still run on Java 8 to migrate to a newer version. Java 17 is the LTS that fulfilled the lifelong dream of having helpful NullPointerExceptions.
Михалчану: Любимый в этом году Один разработчик Java выпустил как LTS, так и не-LTS версии Java. Выпуск Java 17 подтверждает, что многие функции предварительного просмотра теперь общедоступны и доступны в течение длительного времени. Это также добавило ощущения срочности перехода некоторых проектов, все еще работающих на Java 8, на новую версию. 17 — это LTS, который осуществил мечту всей жизни об исключении нулевого указателя.
Rahman: As always, all parts of the Java ecosystem remain lively. This speaks to the fundamental strength of Java. I think Java SE 17 has been particularly well received, especially features like Records. Runtimes like WildFly, Payara and Open Liberty are adopting Java SE 17. While some developers have adopted Java SE 11, Java SE 8 remains remarkably sticky. It is possible Java SE 17 will finally change that.
Рахман: Как всегда, все части экосистемы Java по-прежнему активны. Это иллюстрирует фундаментальные преимущества Java. Я думаю, что Java SE 17 особенно приветствуется, особенно такие функции, как записи. Такие среды выполнения, как WildFly, Payara и Open Liberty, используют Java SE 17. В то время как некоторые разработчики приняли Java SE 11, Java SE 8 все еще очень липкая. 17 может в конечном итоге изменить это.
Ritter: The release of JDK 17 has been significant. This means developers now have a new long-term support (LTS) release from all the OpenJDK distributions. For those not wishing to upgrade their Java version every six months to remain as stable and secure as possible, this is an important release.
Риттер: Выпуск JDK 17 имеет большое значение. Это означает, что у разработчиков теперь есть новые выпуски с долгосрочной поддержкой (LTS) из всех дистрибутивов OpenJDK. Это важный выпуск для тех, кто не хочет обновлять свою версию Java каждые шесть месяцев, чтобы сделать ее максимально стабильной и безопасной.
I like the way that we are seeing more small language features added to the platform more quickly than we've ever seen before. This is thanks to the six-month release cadence, which also makes both incubator modules and preview features practical.
Мне нравится, что мы видим, что на платформу с беспрецедентной скоростью добавляется больше небольших языковых функций. Это возможно благодаря шестимесячному графику выпуска, который также делает модули инкубатора и функции предварительного просмотра практичными.
There are also some interesting developments in how the JVM can work in a cloud environment such as the new project in OpenJDK called co-ordinated restore at checkpoint (CRaC). Features, like records, are great for developing new code.
Есть также некоторые интересные изменения в том, как JVM работает в облачных средах, например, новый проект в OpenJDK под названием совместное восстановление в контрольной точке (CRaC). Такие функции, как ведение журнала, очень полезны для разработки нового кода.
Evans: The release of Java 17 LTS, and the ability to finally start deploying code that leverages Records and Sealed Types, as well as JFR Streaming for monitoring groups of JVMs. The path towards standardization in the Observability space - especially OpenTelemetry. Early signs of a consensus emerging around what it means for Java to be statically deployed ("Static Java"). I also think Panama will be a bigger deal than people expect.
Эванс: выпуск Java 17 LTS и, наконец, возможность начать развертывание кода, использующего записи и запечатанные типы, а также возможность JFR Streaming отслеживать группы jvm. Нормализованные пути к наблюдаемым пространствам — особенно opentelementry. Формируются первые признаки консенсуса в отношении того, что означает статическое развертывание Java («Статическая Java»). Я также думаю, что Панама будет важнее, чем люди ожидают.
Downstream Distributions of OpenJDK
Costlow: There are too many non-differentiated JDK distributions out there now. Microsoft has one, Eclipse has Adoptium with Temurin, Oracle has theirs and an OpenJDK build, Azul, AWS Corretto, Red Hat, Liberica, SAP Machine, etc. I'm seeing a proliferation of these, but it's hard to keep them straight. Snyk's survey seemed relatively in line with what I see in terms of usage. Given that they're all compatible, I'd like to see a "Just get me OpenJDK" randomizer in the marketplace to remove a decision for new junior Java devs.
The Eclipse branding in particular is confusing: Adoptium is a group inside Eclipse, which is also a group. Temurin is the thing you use and it is OpenJDK. Imagine learning Java on your own and reading this sentence: "Eclipse Temurin is the name of the OpenJDK distribution from Adoptium." Fewer brand names is better.Костлоу: Существует слишком много однообразных дистрибутивов JDK. У Microsoft есть один, у Eclipse есть Adoptium и Temurin, у Oracle есть свои сборки и сборки OpenJDK, Azul, AWS Corretto, Red Hat, Liberica, SAP Machine и т. д. Я вижу эти вещи все чаще и чаще, но мне трудно их понять. Опрос Снейка, кажется, относительно согласуется с использованием, которое я видел. Учитывая, что все они совместимы, я хотел бы видеть на рынке рандомизатор «Просто дайте мне OpenJDK», чтобы исключить решения новых младших разработчиков Java. Брендинг Eclipse особенно сбивает с толку: Adoptium — это группа внутри Eclipse, которая также является группой. это то, что вы используете, это OpenJDK. Представьте, что вы изучаете Java и читаете это предложение: «Eclipse Temurin — это название дистрибутива OpenJDK от Adoptium».
Janssen: Liberica, which is from Bellsoft, actually offers quite some interesting products which differentiate them from other JDK vendors. For instance, a full JDK which still contains JavaFX. I only know of ojdkbuild which offers a similar build. Next to that, they have more variants of the JDK and the JRE.
Янссен: Liberica от Bellsoft действительно предлагает несколько интересных продуктов, которые отличают их от других поставщиков JDK. Например, полный JDK по-прежнему включает JavaFX. Я только знаю, что ojdkbuild предоставляет аналогичную сборку. Кроме того, у них больше вариантов JDK и JRE.
Azul supports non-LTS versions with minor updates for a longer period of time. Some vendors offer Docker images, etc. So there are some differences, but it's hard for end users to compare them and make a good decision about which one to select.
Azul поддерживает версию без lts, поддерживает небольшие обновления в течение длительного времени. Некоторые провайдеры предлагают образы Docker. Таким образом, есть некоторые различия, но конечному пользователю сложно их сравнить и принять правильное решение о выборе.
Java EE/Jakarta EE
Javaee/Jakarta EE
Rahman: The transition from Java EE to Jakarta EE is one of the largest and most significant technology transfers in our space. That is finally on solid ground with Jakarta EE 9.x. It is very good to see how Jakarta EE 10 is now progressing towards a release early next year. It looks like many of the items in the Jakarta EE Ambassador's Contribution Guide are materializing, closing some long-standing gaps. I think this is a big relief to long term Java EE users.
Рахман: Переход от javaee к Jakarta EE был одним из крупнейших и наиболее важных трансферов технологий в нашей области. Наконец, с Jakarta EE 9.x был заложен прочный фундамент. Приятно видеть, что Jakarta EE 10 продвигается к выпуску в начале следующего года. Судя по всему, многие пункты Руководства для послов по вопросам энергоэффективности в Джакарте реализуются, устраняя некоторые давние пробелы. Я думаю, что это большое облегчение для давних пользователей javaee.
I am also very happy to see Jakarta EE 9.x building momentum. Most runtimes have adopted the javax to jakarta namespace transition including Tomcat and Jetty. Spring Framework 6 is committed to adopting both Java SE 17 and Jakarta EE 9. Similarly, MicroProfile 5 is transitioning to Jakarta EE. According to the 2021 Jakarta EE Developer Survey, a substantial number of developers have already transitioned to the jakarta namespace or are planning to do so.
Я также рад видеть, что Jakarta EE 9.x набирает обороты. В большинстве сред выполнения используется преобразование пространства имен javax в jakarta, включая Tomcat и Jetty. Spring Framework 6 стремится принять Java SE 17 и Jakarta EE 9. Точно так же MicroProfile 5 переходит на Jakarta EE. Согласно опросу разработчиков Jakarta EE 2021 года, значительное количество разработчиков перешли или планируют перейти в пространство имен Jakarta.
The Jakarta EE 10 Core Profile is paving the way for Quarkus and Helidon becoming fully compatible, the MicroProfile Config API is transitioning to the new Jakarta Configuration specification and the same is happening with MicroProfile Context Propagation. It is possible the same will happen with the MicroProfile REST Client and JWT Propagation.
Профиль 10 Core прокладывает путь к полной совместимости между Quarkus и Helidon, API MicroProfile Config переходит на новую спецификацию конфигурации Jakarta, как и распространение контекста MicroProfile. То же самое может произойти с клиентами MicroProfile REST и распространением JWT.
Redlich: With the release of Jakarta EE 9, tooling vendors can support the new jakarta package namespace, development teams can test migration of their applications to the new namespace, and runtime vendors can test and deliver options and capabilities that support migration and backwards compatibility with Jakarta EE 8.
Редлих: С выпуском Jakarta EE 9 поставщики инструментов могут поддерживать новое пространство имен пакетов Jakarta, группы разработчиков могут тестировать миграцию приложений в новые пространства имен, а поставщики среды выполнения могут тестировать и предоставлять поддержку миграций и интеграцию с вариантами обратной совместимости Jakarta EE 8 и Особенности.
Jakarta EE 9 may also be considered a foundation for innovation to drive new features in Jakarta EE 10 and beyond.
Jakarta EE 9 также можно рассматривать как основу для инноваций, позволяющих внедрять новые функции в Jakarta EE 10 и более поздних версиях.
GraalVM/Spring Native
Mihalceanu: Создание нативного исполняемого файла — еще одна тема, часто помечаемая как «наиболее востребованная», поскольку продолжается гонка за более компактными и быстрыми контейнерными приложениями.
Михалчану: Поскольку более мелкие и быстрые суда продолжают конкурировать с прикладными программами, сборка локальных исполняемых файлов — еще одна тема, которую часто называют «наиболее востребованной».
Rahman: It is also very good to see that Spring Native is making progress.
Рахман: Также приятно видеть успехи Spring Locals.
Costlow: I like seeing the role of native apps taking shape, but disappointed by the lack of an actual specification or working group. It seems to be kind of "you get whatever GraalVM happens to do" and it behaves differently at times than a standard JDK - similar but not the same.
Костелло: Мне нравится видеть, как роль нативных приложений обретает форму, но я разочарован отсутствием реальных спецификаций или рабочих групп. Это немного похоже на то, что «GraalVM делает то, что он делает», и иногда он ведет себя иначе, чем стандартный JDK — похоже, но по-другому.
Janssen: Spring Native competes with all the GraalVM and other frameworks with fast startup times and low memory usage.
Конкуренцию GraalVM и другим платформам составляет Spring Native с быстрым запуском и низким использованием памяти.
Silz: Once Spring Boot supports native compilation with GraalVM, fast and small native Java programs will go mainstream. This makes Java more competitive for serverless solutions and may help it in the microservices arena. I say "may" because as of today, I think that the JVM JIT still has better throughput/performance for long-running processes than GraalVM. Either way, that'll get a lot of press and make Java more competitive overall.
Силз: Как только Spring Boot будет поддерживать нативную компиляцию GraalVM, быстрые и небольшие нативные Java-программы станут мейнстримом. Это делает Java более конкурентоспособной среди бессерверных решений и может помочь ей расти в пространстве микросервисов. Я говорю «вероятно», потому что до сих пор я думаю, что JVM JIT по-прежнему имеет лучшую пропускную способность / производительность, чем GraalVM для длительных процессов. В любом случае, это привлекает много внимания и делает Java более конкурентоспособным в целом.
ARM64/Windows on ARM
Beckwith: ARM64 is now commodity hardware. As a result, the presence of Java development kits and the Java runtime environments optimized for deployment on ARM64 have gained mainstream popularity.
Arm64 сейчас является товарным оборудованием. В результате появление Java Development Kits и Java Runtime Environments, оптимизированных для развертывания на arm64, приобрело широкую популярность.
Silz: Java 16 supports Windows on ARM. But I think only Java 17 with ARM on macOS will blow the doors wide-open. I believe about a quarter of all Java developers use Macs. And by the end of 2022, they can only buy Macs with ARM. I expect that this will push both Windows and Linux on ARM to get better, too.
16 поддерживает окна на руке. Но я думаю, что только Java17 с рукой, установленной на MacOS, откроет дверь. Я верю, что около четверти разработчиков Java используют Mac. К концу 2022 года они смогут купить только Mac с рукой. Я надеюсь, что это также толкает Windows и Linux на руке, чтобы быть лучше.
Jakarta EE and MicroProfile Alignment == Cloud Native for Java
Redlich: The MicroProfile and Jakarta EE Working Groups, two complementary initiatives under the auspices of the Eclipse Foundation, have collaborated to form a Cloud Native for Java (CN4J), an alliance to define Jakarta EE and MicroProfile positioning and alignment, both branding and technical for cloud-native technologies.
Redlich: MicroProfile и Jakarta EE Рабочая группа, два дополняют друг друга в поддержку проектов Фонда Eclipse, сформировало сотрудничество для java Cloud Kourne для Java (CN4J), определение jakarta EE и позиционирования и микропрофила, включая облако. Технология для местных брендов и технологий.
Rahman: It is a pleasant surprise to see Quarkus making well-earned headway with both Java EE and Spring developers. It is also very good to see Jakarta EE and MicroProfile alignment finally happening.
Рахман: Мы были приятно удивлены, увидев, что Quarkus добился хороших успехов с разработчиками javaee и Spring. Приятно видеть, что наконец реализовано согласование Jakarta EE и MicroProfile.
JavaFX/Gluon
Costlow: I am extremely impressed at the work that Gluon is doing to make a single JavaFX codebase run across everywhere. Web was the missing piece from before and, frankly, client Java now seems cool again.
Костлоу: Я впечатлен работой, проделанной Gluon, чтобы повсеместно распространить кодовую базу JavaFX. Интернета раньше не хватало, и, честно говоря, клиентская Java теперь снова выглядит круто.
Adopting Modularity
Silz: I think that JPMS tries to solve three problems: class loading woes for app servers; better structuring of the JDK and all Java applications; and reducing the JVM footprint for deployment/runtime.
Силз: Я думаю, что JPMS пытается решить три проблемы: трудности с загрузкой классов для серверов приложений, лучшее построение JDK и всех Java-приложений, а также сокращение объема времени развертывания/исполнения JVM.
But at least when JPMS finally launched after multiple delays, there were good enough solutions for these problems already: OSGI for class loading; Domain-Driven Design/Clean Architecture/Modulith/ArchUnit tests for Java program structure; and ahead-of-time compilation for reduced JVM footprint.
Но, по крайней мере, когда JPMS, наконец, будет выпущена после многих задержек, будут достаточно хорошие решения этих проблем: OSGI для загрузки классов, тесты на предметно-ориентированном проектировании/чистой архитектуре/модуле/архиве для структуры программы Java и заблаговременная компиляция в уменьшить размер JVM.
As few unreliable data points we may have, they all show usage of Java 8 and older either being greater than or equal to that of Java 11 and later. I think this is partly because modules gave Java 9+ the reputation of being "hard to upgrade to from Java 8," as Mark Reinhold acknowledges. That's an unintended consequence of JPMS. And it means that at least half of all Java developers can't use the Java advances of the last seven years because they're stuck on Java 8.
Хотя у нас могут быть некоторые ненадежные данные, все они показывают, что использование Java 8 и выше больше или равно Java 11 и выше. Я думаю, что отчасти это связано с тем, что модули придают Java 9+ репутацию «сложной для обновления с Java 8», как признает Марк Рейнхольд. Это непреднамеренное последствие JPMS. Это означает, что по крайней мере половина разработчиков Java не может использовать достижения Java за последние 7 лет, потому что они застряли на Java 8.
The opportunity cost of working on modules for probably 7+ years means that many other Java improvements either fell to the wayside or only appeared in Java 10 and later. The var keyword for variables, the new switch syntax, and Java records reduce a lot of the boilerplate that Java's infamous for. If those were in Java 9 instead of Java modules, I think Java would be in a better place now because it had better developer productivity.
Стоимость работы над модулем более 7 лет означает, что многие другие улучшения Java либо на полпути, либо появляются только в Java 10 и более поздних версиях. Ключевые слова VAR, новый синтаксис Switch и записи Java уменьшили количество файлов моделей, удобных для аудио Java. Если эти модули будут в Java 9 вместо модуля Java, я думаю, что Java теперь будет лучшим местом, потому что он более эффективен при разработке.
What Has Changed Since Last Year?
Beckwith: Many architects and developers have tamed the GC (garbage collection) pause times due to the improvements to the existing collectors. Many others have tamed the tail latencies by transitioning to low-latency, adaptive GCs for their workloads.
Беквит: Из-за улучшений существующих сборщиков многие архитекторы и разработчики укротили время паузы GC (сборки мусора). Многие другие люди прошли через переход на адаптивную рабочую нагрузку gc с малой задержкой, чтобы укротить конец инкубационного периода.
Evans: Java 11 has essentially reached parity with Java 8 in terms of market share. Containers have broken through and are now the way that the majority of Java apps are deployed. Quarkus continues to mature and gain ground and new fans.
11 в основном достиг того же уровня, что и java8 с точки зрения доли рынка. Контейнеры сломали это, и большинство Java-приложений теперь развертываются таким образом. Quakus продолжает взрослеть, расти и расти и продолжает привлекать новых поклонников.
Redlich: A few Eclipse Foundation Working Groups have been established: MicroProfile, OSGi and Adoptium (formerly known as AdoptOpenJDK). The MicroProfile Working Group and the Jakarta EE Working Group have collaborated on a Cloud Native for Java (CN4J) Alliance initiative.
Редлих: Было создано несколько рабочих групп Eclipse Foundation: MicroProfile, OSGi и AdoptOpenJDK. Рабочая группа MicroProfile и рабочая группа Jakarta Electronic Engineering совместно разработали инициативу Cloud Native for Java (CN4J).
Microsoft furthers its commitment to Java by creating its own downstream distribution of OpenJDK, Microsoft Build of OpenJDK, and by joining the Java Community Process.
Microsoft еще больше укрепила свою приверженность Java, создав собственный нисходящий дистрибутив OpenJDK, сборку Microsoft OpenJDK и присоединившись к процессу сообщества Java.
What is the Java Community Saying?
Beckwith: Pattern matching for switch statements, native image, cloud native-JVM, and JVM on accelerators, project Loom and Graal.
Беквит: Сопоставление шаблонов для операторов switch, собственных образов, облачных JVM и JVM в Accelerator, Project Loom и Graal.
Mihalceanu: Upgrading. Because the Java language evolved, framework features flourished as well. In my experience, writing clean and secure code promptly depends on the practices shared by a team. Nowadays, it is possible to minimize the time spent developing or fixing code with continuous testing and fewer local configurations thanks to some framework built-in capabilities.
Михалчану: Обновление. Благодаря развитию языка Java возможности фреймворка также расцвели. По моему опыту, своевременное написание чистого и безопасного кода зависит от практик, разделяемых командой. Сегодня время, затрачиваемое на разработку или исправление кода, можно свести к минимуму за счет непрерывного тестирования и меньшей локальной настройки благодаря функциям, встроенным в некоторые платформы.
Rahman: Java SE 17 and Quarkus are enjoying the limelight. Kubernetes remains wildly popular. There is early enthusiasm around Spring Native. Folks in the open standard Java community are watching Jakarta EE 10 and MicroProfile/Jakarta EE alignment closely. There is something good happening pretty much for everyone in the ecosystem.
Рахман: Java SE 17 и Quakus находятся в центре внимания. Kubernetes остается чрезвычайно популярным. Первые люди были в восторге от Spring Locals. Люди в сообществе открытых стандартов Java уделяют пристальное внимание Jakarta EE 10 и согласованию MicroProfile/Jakarta EE. В экосистеме происходит что-то хорошее для всех.
Ritter: The focus for pretty much all developers, at least when working on new development, is how to make the most effective use of the cloud, especially through a microservice architecture. Leveraging containers and technologies like Kubernetes and Spring Boot are very powerful when writing these types of applications. I hear a lot of discussion about how to use these.
Ritter: Фокус почти всех разработчиков, по крайней мере, при разработке новых проектов, заключается в том, как наиболее эффективно использовать облако, особенно через архитектуру микросервисов. Используя контейнеры и технологии, такие как Kubernetes и Spring Boot, очень мощные при написании этих типов приложений. Я слышу много дискуссий о том, как их использовать.
Evans: Java 17, Loom, Quarkus.
17. Ткацкий станок, Кваркус.
Что нового и интересного, чего мы не ожидали?
Что нового и интересного мы не ожидали?
Beckwith: I had anticipated the richness of the Java ecosystem and the different JDK vendor flavors of the Java Dev Kits offerings. Still, the sheer participation and the agreement towards the accelerated release cadence were a welcome surprise.
Беквит: Я предвидел богатство экосистемы Java и различные варианты поставщиков JDK, предоставляемых Java Dev Kits. Тем не менее, участие и соглашение об ускоренном выпуске стали долгожданным сюрпризом.
Mihalceanu: What I love about Java is that each release adjusts both the language and the experience of developers. Enhancements such as the new date formatter for period-of-day introduced in java.time.format.DateTimeFormatter and DateTimeFormatterBuilder classes, pattern matching with switch, or the default method toList() in java.util.stream.Stream interface help developers to write cleaner and easier to read code.
Михалчану: Что мне нравится в Java, так это то, что каждая версия адаптирует язык и опыт разработчиков. В java.time.format были введены такие усовершенствования, как средства форматирования даты. Классы DateTimeFormatter и DateTimeFormatterBuilder, сопоставление шаблонов с переключателем или метод по умолчанию toList() в java.util.stream. Потоковые интерфейсы помогают разработчикам писать более чистый и удобный для чтения код.
Ritter: Looking at the Java platform, there wasn't anything we didn't expect and that's a good thing. Now that new features use JEPs to define what they are intended to do, we have a clear roadmap of the things that will be included in Java looking some years into the future. This means developers can be comfortable that there are not going to be big changes that impact backwards compatibility, at least not without plenty of time to evaluate and discuss them.
Риттер: Глядя на платформу Java, мы ничего не ожидали, и это хорошо. Теперь, когда новые функции используют jep для определения того, что они собираются делать, у нас есть четкая дорожная карта того, что будет включено в Java в ближайшие несколько лет. Это означает, что разработчики могут быть уверены, что критические изменения, влияющие на обратную совместимость, не произойдут, по крайней мере, если не будет достаточно времени для оценки и обсуждения этих изменений.
Evans: A new focus on warm start / suspend-and-resume / CRaC technologies from a number of providers, including Azul and Red Hat.
Эванс: новый акцент на теплом старте/паузе и возобновлении/технологии CRaC от многих поставщиков, включая Azul и Red Hat.
Redlich: The emergence of MicroStream, a Java persistence company. While their history goes back to 2013, the company was formally founded in 2019. Since then, they open-sourced MicroStream earlier this year with the release of MicroStream 5.0 and has collaborated with MicroStream has been integrated with Helidon and has just released version 6.0.
Редлих: Появление MicroStream, компании по сохранению Java. Хотя их история восходит к 2013 году, компания официально открылась в 2019 году. С тех пор они выпустили MicroStream 5.0 с открытым исходным кодом в начале этого года и в партнерстве с MicroStream интегрировались с Helidon и только что выпустили версию 6.0.
Silz: After years of stagnation, VS Code is shaking things up in the Java IDE space. It's something new: A cross-platform, cross-language IDE that's fast, has great plug-ins, and is loved by its users! If that sounds like "Eclipse IDE 20 years ago", you're right!
Силз: После многих лет застоя VS Code меняет ландшафт javaide. Вот кое-что новенькое: кросс-платформенная, кросс-языковая IDE, быстрая, с отличными плагинами и любимая пользователями! Если это звучит как «IDE Eclipse 20-летней давности», то вы правы!
VS Code recently boosted its Java capabilities. I expect it to become the best free Java IDE. I think Eclipse recognized that threat and created a Working Group to coordinate a defense. I'm not sure how much IntelliJ will be affected.
Недавно поднял свои возможности Java. Я надеюсь, что это будет лучшая бесплатная Java IDE. Я думаю, что Eclipse осознает эту угрозу, и создать рабочую группу для координации оборонной работы. Я не знаю, повлияет ли это, сколько интеллекта.
One exciting side effect of using VS Code for Java development is that you can easily develop with non-JVM languages. I don't think you can do that in Eclipse at all, or only in a limited way. You can develop with non-JVM languages using JetBrains "All Products Pack", but then you have to launch different IDES that don't share settings, plug-ins, or keyboard shortcuts.
Захватывающий побочный эффект использования VS Code в разработке Java заключается в том, что вы можете легко разрабатывать на языках, отличных от JVM. Я не думаю, что это вообще возможно в Eclipse или только ограниченными способами. Вы можете использовать JetBrains «All Products Pack» для разработки на языках, отличных от jvm, но вы должны запустить другую IDE, которая не использует общие настройки, плагины или сочетания клавиш.
The Java Community
Mihalceanu: I started my Java journey while in university, learning that Java supports Object-Oriented Programming with design patterns and coding best practices. As a professional, I am happy to see that throughout the time, the language has embraced other paradigms as well: functional, reactive thus giving more implementation options without losing the readability. How to choose between each model? Occasionally profile your application, spot bottlenecks, and improve your implementation logic.
Я начал свое знакомство с Java в колледже и узнал, что Java поддерживает объектно-ориентированное программирование с помощью шаблонов проектирования и написания лучших практик. Как профессионал, я рад видеть, что на протяжении всего процесса язык охватывает и другие парадигмы: функциональную, реактивную и, таким образом, предоставляет больше вариантов реализации без потери удобочитаемости. Как выбрать между каждым режимом? Время от времени профилируйте свое приложение, находите узкие места и улучшайте логику реализации.
Yet, no advancement is possible without people. The Java Community is large, vibrant, and welcoming, present both physically and virtually all for one purpose: to share knowledge, improve ourselves, and succeed when facing problems.
Однако прогресс невозможен без него. Сообщество Java — это большое, энергичное и полное энтузиазма сообщество, которое существует как физически, так и виртуально с одной целью: делиться знаниями, совершенствоваться и добиваться успеха перед лицом проблем.
Мальчик, ты не можешь видеть достаточно? нажмите на каменьПодробное описание, Просто нажмите и посмотрите, может быть, будут сюрпризы? Добро пожаловать в поддержкуНравится/Подписывайтесь/Комментируйте, ваша поддержка — моя самая большая мотивация для Gengwen, спасибо!