Java-разработчики несколько лет подряд уверенно занимают третье место в списке самых востребованных ИТ-специалистов в России, а сам язык Java твёрдо удерживает первенство среди самых популярных языков программирования. В то же время и на этом рынке существуют проблемы, недостаточно квалифицированные специалисты, противостояние между коммерческими предложениями и open source продуктами. Ведущий Java Developer Advocate в IBM Себастиан Дашнер рассказал «Хайтеку» о том, что случилось с Java EE, чем недовольны разработчики и что нам ждать в ближайшее время.
Себастиан Дашнер — ведущий Java Developer Advocate в IBM, Java-чемпион, эксперт в области Enterprise Java, известный спикер и консультант.
Java EE — Java Platform, Enterprise Edition — набор спецификаций и соответствующей документации для языка Java, описывающий архитектуру серверной платформы для задач средних и крупных предприятий.
Отличительный мир Java
— Вы часто говорите о сообществе Java как об отдельной экосистеме. Какие у нее особенности по сравнению с другими направлениями ИТ?
— Что делает комьюнити Java особенным, так это не только высокая популярность платформы в мире, но и то, что само сообщество, как я это ощущаю, очень тепло относится к своим членам. Люди очень добры и помогают друг другу, например, смотрят проекты с открытым исходным кодом, советуют и делятся опытом. По всему миру проходит множество встреч и конференций, посвященных Java, где спикеры и участники делятся знаниями.
— Java-разработчики часто жалуются на собственную недостаточную эффективность. Это проблема их менталитета, самой платформы или недостаточной осведомленности о современных методах разработки?
— Когда я вижу неэффективные проекты, понимаю, что это происходит главным образом из-за недостатка знаний или применения устаревших методов разработки, например, из-за низкого качества кода, плохой архитектуры или несовершенных методологий. На самом деле платформа Java предлагает очень эффективные средства разработки, если их применять правильно.
В большинстве случаев проблемы, с которыми сталкиваются люди, — это не ошибка самой технологии, а её неправильное применение.
Себастиан Дашнер, IBM
— С чем связано переименование Java EE в Jakarta EE? Это не нанесет удара по самому бренду Java?
— Java EE была переименована в Jakarta EE, поскольку компания Oracle не позволила Eclipse продолжать использование этого названия с префиксом Java. Oracle является владельцем прав на торговую марку Java. Лично я был не рад услышать, что мы больше не можем использовать это название в технологическом сообществе. После поиска нового бренда Jakarta EE показалось самым подходящим, поскольку Джакарта является столицей острова Ява, и название уже использовалось для этой технологии. Суффикс EE делает бренд знакомым для тех, кто слышал про Java EE раньше.
Ломать, кодить, строить
— Чем Eclipse MicroProfile отличается от Jakarta EE? Будут ли они обмениваться когда-нибудь своим функционалом?
— Eclipse MicroProfile содержит часть технологий Enterprise Java, отличных от Java EE или первой версии Jakarta EE. Последний включает в себя гораздо больше технологий, включая устаревшие и унаследованные спецификации, которые традиционно были частью EE. MicroProfile основан на небольшом подмножестве только современных стандартов, а также предлагает для расширения Enterprise Java собственные проекты, такие как Config, Fault Tolerance или Metrics, что необходимо в эпоху облачных микросервисов.
— Один из ваших лозунгов «IT should solve problems, not create ones» (с англ. «ИТ должны решать проблемы, а не создавать их» — «Хайтек»). Вы уверены, что сообщество сможет удержаться от глобальных расколов?
— Да, этот лозунг касается не только Java, но и ИТ в целом. Я видел много компаний, которые рассматривали свои инвестиции в ИТ исключительно как затраты, а не как возможность идти вперед. Информационные технологии могут стать огромным стимулом роста, если мы будем думать о таких инновациях, как глобальные коммуникации или инфраструктура. Традиционные компании, которые осознали, что теперь они являются ИТ-корпорациями, успешно используют этот инструмент в своих интересах.
— Очень странно видеть от IBM open source версии свои коммерческих продуктов. Это хорошо рассчитанный маркетинговый ход или неизбежные последствия развития этого рынка?
— На самом деле IBM уже много лет занимается открытым исходным кодом. Но да, мир ПО движется к open source продуктам, что прекрасно и имеет смысл. Разработчики создают будущее, которое может разрушить или привести к успеху сегодняшние компании. Если эти люди используют какие-то технологии дома или на сторонних проектах, с гораздо большей вероятностью они будут учиться и использовать эту технологию в коммерческих проектах. Если мы посмотрим на любой современный стек в корпоративном ПО, то большая его часть — бесплатные продукты с открытым исходным кодом, для которых доступны коммерческие предложения по поддержке. Это очень интересное сочетание: дать возможность отдельным разработчикам или небольшим стартапам использовать технологии бесплатно, но в то же время предлагать коммерческую поддержку при необходимости.
— Насколько хорошо с облачными технологиями в Jakarta? В каких контейнерах её можно использовать, какие инструменты оркестрации применимы?
— Jakarta EE и Enterprise Java очень хорошо подходят для современных облачных технологий, во многом благодаря MicroProfile и его расширению до EE. Эти технологии очень хорошо вписываются в современные стеки, основанные на контейнерах, Kubernetes, Istio и других. Что касается оркестровки контейнеров, то на сегодняшний день Kubernetes является де-факто стандартной технологией.
Kubernetes — открытое ПО от Google для автоматизации развёртывания, масштабирования и управления контейнеризированными приложениями.
Контейнеризация — метод виртуализации, при котором ядро операционной системы поддерживает несколько изолированных экземпляров пространства пользователя вместо одного. Эти экземпляры (контейнеры) с точки зрения пользователя полностью идентичны отдельному экземпляру операционной системы.
Istio — open source проект, разработанный при сотрудничестве команд из Google, IBM и Lyft. Он решает некоторые сложности, возникающие в приложениях, основанных на микросервисах.
— Когда Jakarta EE наконец станет устойчивой к сбоям?
— Мы уже видели fault tolerance (устойчивость к сбоям — «Хайтек») в MicroProfile и подобные решения, которые поддерживают отказоустойчивость в Enterprise Java. Версия Jakarta EE 8, выпущенная в сентябре 2019 года, технически идентична Java EE 8, но разработчики уже сейчас могут ее использовать вместе с MicroProfile, чтобы сделать свои приложения отказоустойчивыми. Это очень эффективное решение, которое уже поддерживается несколькими рантаймами, такими как Open Liberty, Payara Server или Tom EE.
— Еще один ваш лозунг «Я считаю, что ИТ — это шанс, а не фактор стоимости». Разве в этом нет противоречия — компании делают большие деньги на ИТ-продуктах сегодня?
— ИТ — это определенно наш шанс сделать мир лучше. Как я уже говорил, ИТ могут стать мощным средством развития, их всегда следует рассматривать именно с этой точки зрения. Нужно сосредоточиться на том, как мы можем решать проблемы и улучшать мир, и только потом — какие технологии выбрать. Я верю, что Java подходит для этой цели. Но, в первую очередь, всегда следует думать о том, чтобы предложить лучшее решение нашим клиентам и, в идеале, сделать мир лучше.