Java любим разработчиками за его всеохватывающую универсальность, возможность легкого развертывания и миграции. В сентябре прошлого года вышел Java 17, первый выпуск языка с долгосрочной поддержкой (Long-Term Support, LTS) после Java 11 в 2018 г. Джемия Сиус, директор по связям с разработчиками New Relic, рассказывает на портале The New Stack, как выход этого релиза повлиял на индустрию разработки ПО.
В сегодняшней разросшейся индустрии ПО ни один разработчик не в состоянии полностью овладеть всеми доступными языками программирования. Но хотя многие должны будут использовать несколько языков в рамках одной роли, лишь несколько языков-столпов найдут широкое применение в различных отраслях и приложениях.
Примечательно, что Java остается невероятно популярным среди разработчиков спустя более 25 лет после его публичного выпуска Sun Microsystems. В индексе популярности языков программирования, который анализирует частоту поиска учебников по языку в Google, Java является вторым в мире с 18%, уступая только Python.
Java любим разработчиками за его всеохватывающую универсальность, возможность легкого развертывания и миграции. Он не зависит от платформы и может беспроблемно переходить от одной компьютерной системы к другой. Java предлагает тысячи библиотек, которые позволяют разработчикам быстро создавать новые приложения и оттачивать свои навыки, ответы на любой вопрос содержат десятилетиями накапливавшаяся документация и база отраслевых знаний.
Чтобы лучше понять Java и его роль в экосистеме разработки ПО, New Relic провела исследование «State of Java in the Ecosystem-2022», основанное на сборе анонимной информации от миллионов приложений, предоставивших данные о производительности. В сентябре прошлого года вышел Java 17, первый выпуск языка с долгосрочной поддержкой (LTS) после Java 11 в 2018 г. Произошли ли значительные изменения в индустрии разработки ПО после выхода этого релиза?
Новые фавориты и изменение лояльности
За последние два года разработчики перевели значительную часть приложений на Java 11, продемонстрировав привлекательность LTS-релиза. Хотя по состоянию на март 2020 г. подавляющее большинство приложений работало на Java 8 (84,48%), сейчас почти половина (48%) приложений использует в производстве Java 11, по сравнению с 46,5% на Java 8. По понятным причинам, Java 17 еще не занял значительных позиций. Однако за несколько месяцев с момента выпуска он уже превзошел не-LTS (промежуточные) версии Java 6, Java 10 и Java 16.
В целом, не-LTS версии Java имеют крайне низкий уровень внедрения по сравнению с LTS-релизами. Хотя некоторые производители поставляют исправления для не-LTS версий Java, большинство из них этого не делают, что может приводить к нежеланию разработчиков переходить на промежуточные версии. По данным New Relic, Java 14 является самой популярной среди не-LTS версий Java, в то время как Java 10 и Java 16 занимают последние места.
Эволюция Java с открытым исходным кодом
Пятнадцать лет назад Sun сделала один из самых значительных шагов в Open Source-движении, объявив, что Java перейдет в разряд Open Source. Этот процесс начался с основной платформы Java, но через год он расширился и включил в себя открытый комплект средств разработки Java (OpenJDK). Со временем движение за открытый исходный код привело к интересной эволюции, поскольку разработчики перешли от Sun (теперь Oracle) к другим источникам распространения JDK.
В 2020 г. Oracle доминировала на рынке Java, примерно 75% пользователей полагались на JDK этой компании. Однако за последние два года произошла значительная демократизация. Хотя Oracle по-прежнему лидирует на рынке с долей 34,5%, 22% рынка захватила Amazon. Кроме того, четыре других поставщика занимают долю рынка не менее 5%: Eclipse Adoptium (11,5%), Azul Systems (8,2%), Red Hat (6%) и IcedTea (5,4%).
Переход Java на Open Source ставит язык на путь к более удобному и адаптируемому будущему. Более того, решение Sun Microsystem послужило важным примером для других Open Source-компаний, что привело к появлению таких важных открытых инструментов, как Kubernetes и OpenTelemetry.
Контейнеры занимают центральное место
Помимо Java, значительно возросла важность контейнеризации приложений для облачных вычислений. Согласно последнему ежегодному опросу Cloud Native Computing Foundation, 93% респондентов в настоящее время используют или планируют использовать контейнеры в производстве. Анализ данных о приложениях, проведенный New Relic, показывает, что эта тенденция распространяется и на Java, поскольку более 70% Java-приложений выполняются в контейнерах.
Конечно, контейнеры меняют способы использования разработчиками вычислительных ресурсов и памяти. Инженеры, использующие контейнеры, гораздо чаще запускают приложения с использованием менее четырех ядер, и они чаще менее требовательны к памяти. Однако разработчики должны помнить о том, что эти решения могут повлиять на другие важные приложения, такие как сборка мусора, поскольку стремление к запуску кода меньшего объема может ограничить преимущества инструментов, разработанных для больших сред.
Сегодня Java является фундаментальным элементом разработки ПО, и каждое новое развитие языка приводит к более широкому изменению тенденций в отрасли. Используя Java в качестве объектива, мы можем лучше понять, как создаются, развертываются и совершенствуются самые важные инструменты и решения.