Меняющийся мир Java

автор vadim


Vaadin недавно выпустил новое исследование о состоянии Java на предприятии. В сочетании с другими источниками этот обзор предлагает хороший взгляд на эволюцию Java. Общий взгляд свидетельствует о жизненной силе и даже о возрождении интереса к Java, поскольку она продолжает обеспечивать прочную основу для создания приложений самых разных размеров и видов использования.

Я покопался в отчете Ваадина о состоянии Java в 2023 году в Enterprise Report, а также в нескольких других. Эта статья обобщает то, что я считаю наиболее важными достижениями в корпоративной Java на сегодняшний день.

Идти в ногу с Java

За последнее десятилетие Java претерпела длинную череду постепенных улучшений. В настоящее время мы находимся на пороге более значительных изменений благодаря рефакторингу языка Java в Project Valhalla и обновлениям параллелизма Java в Project Loom. Эти предстоящие изменения в сочетании с соображениями безопасности делают особенно важным постоянное обновление версий Java.

Исследования Ваадина показывают, что разработчики, использующие Java, до сих пор не отставали от обновлений версий. Двадцать шесть процентов респондентов сообщили, что они используют версию 17 или новее; 21% находятся в процессе модернизации; и 37% планируют обновить.

Эти результаты согласуются с исследованием New Relic, показывающим, что Java 11 становится текущим стандартом LTS (долгосрочной поддержки), постепенно вытесняя Java 8. скоро станет базовым обновлением для Java. Следующим выпуском LTS будет Java 21, который в настоящее время запланирован на сентябрь 2023 года.

Угроза кибербезопасности

Результаты опроса показывают, что безопасность является серьезной проблемой для разработчиков Java, и на то есть веские причины. Обнаружение уязвимости Log4j пролило яркий свет на уязвимости кода в приложениях Java и других местах. Кибербезопасность — это медленный ураган, который со временем только набирает силу.

В отчете Vaadin указано, что 78% разработчиков Java считают «обеспечение безопасности приложений» своей основной задачей; 24% описывают это как серьезную проблему; и 54% говорят, что это своего рода вызов.

Java сама по себе является очень безопасной платформой. Но, как и любой другой язык, он открыт для сторонних уязвимостей. Написание и развертывание безопасных Java-приложений требует соблюдения передовых методов обеспечения безопасности на протяжении всего жизненного цикла приложения и стека технологий. Даже федеральное правительство через CISA серьезно относится к защите программного обеспечения с открытым исходным кодом и отслеживанию уязвимостей и призывает к внедрению архитектур с нулевым доверием.

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

Опыт разработчиков

Согласно исследованию Vaadin, 76% респондентов считают наем и удержание разработчиков серьезной или отчасти сложной задачей. Это, конечно, общеотраслевая проблема, поскольку выгорание и неудовлетворенность разработчиков создают серьезные трудности как в привлечении, так и в удержании хороших разработчиков программного обеспечения.

Возможно, лучше всего думать об удержании разработчиков в свете опыта разработчиков (или DX). Как и другие программисты, Java-программисты хотят работать в среде, которая поддерживает наши усилия и позволяет использовать наши навыки и творческий потенциал. Поддерживающая среда включает в себя инструменты и процессы разработки, а также общую культуру организации.

Один из способов улучшить опыт разработчиков — использовать надежную инфраструктуру devops, которая оптимизирует и обеспечивает согласованность на других стрессовых этапах разработки, таких как развертывание. Существует взаимодействие между devops и опытом разработчиков. Улучшение инструментов и процессов, используемых разработчиками, облегчает нам их обслуживание и обеспечивает адаптивную корректность.

Облачные и автономные развертывания

Цифры развертывания большие в исследовании Vaadin. Облачная инфраструктура и бессерверные платформы — облачные среды — рассматриваются как важная эволюция приложений Java. В настоящее время 55% приложений Java развернуты в публичных облаках. На локальный и частный хостинг по-прежнему приходится 70% развертываний приложений. На Kubernetes и безсерверные решения приходится 56% развертываний, распределенных между общедоступным облаком, локальными и PaaS.

Среди бессерверных поставщиков лидирует Amazon Web Services (AWS): 17 % респондентов заявили, что развертывают свои Java-приложения с помощью AWS Lambda. Согласно ответам на опрос, на бессерверные платформы Microsoft Azure и Google Cloud Platform приходится 4% всех развертываний.

После локальных серверов и виртуальных машин локальный Kubernetes является наиболее распространенным стилем развертывания, который используют 29% респондентов.

Эти цифры указывают на экосистему Java, которая продолжает двигаться в сторону облачных технологий, но по-прежнему имеет большую часть функций, работающих на собственных серверах. Многие Java-магазины считают необходимым внедрить облачные платформы. Но некоторые разработчики по-прежнему предпочитают самостоятельные платформы и фреймворки, а не привязанность к бизнес-модели облачного провайдера «вычисления в обмен на аренду».

Типы Java-приложений

Неудивительно, что львиная доля Java-приложений приходится на веб-приложения, а настольные приложения составляют лишь 18% всех разрабатываемых продуктов на момент проведения опроса. Что касается состава новых и существующих приложений, использующих Java, то это разнообразная группа. В исследовании Vaadin проводится дальнейшее различие между текущими технологическими стеками и запланированными изменениями в стеке.

Особенно интересно постоянное внимание к полнофункциональным Java-приложениям. Целых 70 % респондентов указали, что для предстоящих проектов запланированы новые полнофункциональные Java-приложения.

Сразу за приложениями с полным стеком стоит внутренняя разработка. По словам респондентов, на серверные API приходится 69% новых инвестиционных планов.

После разработки полного стека и серверной части усилия респондентов по развитию были распределены между модернизацией существующих приложений (57%); разработка гетерогенных (Java с JavaScript или TypeScript) полнофункциональных приложений (48%); перенос существующих приложений в облако (36%); и создание новых внешних интерфейсов для существующих серверных частей Java (29%).

Опрос также дает представление о том, какие интерфейсные фреймворки в настоящее время предпочитают Java-разработчики. Лидируют Angular (37%) и React (32%), за ними следует Vue (16%). Это контрастирует с общей отраслью, где React является наиболее популярным фреймворком. Другие фреймворки, такие как Svelte, не показали достаточно сильных результатов, чтобы попасть в опрос.

Учитывая его популярность и полезность, неудивительно, что Spring активно используется разработчиками Java. 79 % респондентов сообщили об использовании Spring Boot, а 76 % использовали общую среду Spring. Разработчики прогнозируют, что они оба будут продолжать использоваться.

Модернизация и ремонтопригодность

Пятьдесят семь процентов респондентов опроса Vaadin указали, что модернизация является главной задачей планируемых инвестиций. Самой высокой причиной модернизации была ремонтопригодность.

Ремонтопригодность — универсальная и постоянная забота разработчиков всех мастей и стеков. При огромном объеме того, что мы могли бы назвать «унаследованным» кодом — то есть всего, что уже было создано — на Java, есть сильное ощущение, что нам нужно обновить наши существующие системы, чтобы с ними можно было работать и внедрять их в среду. будущее. Это здоровый порыв. Найти волю и деньги для рефакторинга и усиления того, что уже есть, — ключ к любому долгосрочному проекту.

После ремонтопригодности следует безопасность, которую мы уже обсуждали. Однако в данном случае безопасность рассматривается как еще одна причина модернизации: 20 % респондентов поставили безопасность на первое место, 16 % — на второе и 21 % — на третье. Безопасность снова стала разумным и здоровым направлением среди разработчиков.

Java и пользовательский интерфейс

Среди всех проблем, выявленных разработчиками Java, создание «интуитивно понятного и простого UX» кажется самой большой. Это серьезная проблема для 30% и своего рода проблема для 51% разработчиков.

Пользовательский интерфейс — сложная часть любого приложения. У меня сложилось впечатление, что Java-разработчики сильны в создании серверных API и промежуточного программного обеспечения и жаждут найти способ использовать их знакомую технологию для создания всего стека — просто обратите внимание на большой акцент на приложениях Java с полным стеком. Один из респондентов прокомментировал опрос: «Мы хотим использовать Java как для бэкенда, так и для внешнего интерфейса». Возможно, когда-нибудь с WASM это станет возможным.

В настоящее время разработчики Java сталкиваются либо со сборкой в ​​среде JavaScript, такой как React, с использованием технологии, позволяющей кодировать на Java и выводом в JavaScript (например, JavaServer Faces или Google Web Toolkit), либо с использованием среды, которая пытается охватить как Java, так и JavaScript под одним зонтиком, таким как Hilla или jHipster. (Я писал об обоих здесь, в InfoWorld.)

Интеграция Java с другими инструментами

В отрасли в целом разработчики Java перешли к более совершенным методам разработки, таким как CI/CD, а также к внедрению сторонних интеграций. В отчете Vaadin решения для ведения журналов, наблюдения и единого входа (SSO) указаны как наиболее популярные используемые инструменты. Kubernetes, бизнес-инструменты, такие как планирование ресурсов предприятия (ERP) и управление взаимоотношениями с клиентами (CRM), devops и решения для многофакторной аутентификации (MFA), дополняют остальные наиболее часто используемые сторонние инструменты в экосистеме Java.

Заключение

Как и обзор состояния JavaScript для JavaScript, отчет Vaadin о состоянии Java в корпоративном отчете предлагает обширный портрет Java как в том виде, в каком он есть, так и в том, в каком направлении он движется. В целом, похоже, что Java переживает период стабильности в сочетании с развивающимся динамизмом. Вместе они указывают на жизненно важную технологию, готовую к будущему.

Related Posts

Оставить комментарий