JavaRush /Java блог /Random /Кофе-брейк #21. Интеграция Python с Java. Знакомимся с Ja...

Кофе-брейк #21. Интеграция Python с Java. Знакомимся с Jakarta EE и Eclipse MicroProfile

Статья из группы Random

Интеграция Python с Java? Почему бы и нет!

Источник: Jaxenter Кофе-брейк #21. Интеграция Python с Java. Знакомимся с Jakarta EE и Eclipse MicroProfile - 1Вообще-то, объединение системного программирования и языков сценариев — это не странная новая концепция: просто ее редко используют. Для языков программирования, у которых есть общий двоичный интерфейс приложения, вполне возможно объединение в одну библиотеку или исполняемый файл. И хотя это немного усложняет задачу, существуют инструменты, которые могут в этом помочь. Python и Java фактически дополняют друг друга. Например, вы можете использовать один из них для типичных подзадач, а другой — как скриптовый язык для расширения настроек вашего приложения. Что касается интеграции других языков, то, например, JavaScript обычно не используется вне веб-браузеров, по крайней мере, по сравнению с другими скриптовыми языками, такими как Perl, Tcl, Visual Basic и Python. Однако все эти языки обычно объединены с другими языками. Python традиционно совмещают с C и C ++, тогда как Visual Basic часто является языком сценариев выбора для C ++ на платформе Windows. А Perl, как и Tcl, обычно используются в C/Unix. Python используется немного чаще в Windows, так как он легко интегрируется с архитектурой Microsoft Scripting Host, а также с COM. Кроме того, он также отлично подходит для инструментов MacOS.

Почему Java и Python?

Python — это объектно-ориентированный скриптовый язык, что делает его хорошей парой для Java. В сочетании с интерпретатором Python, полностью написанным на Java, таким как Jython, вы можете писать целые апплеты на Python, которые могут затем работать в любом JDK-совместимом браузере, с почти таким же быстрым выполнением кода, как и в C/CPython. Интерпретатор Jython переводит исходный код Python непосредственно в байт-код Java, что дает ему невероятную скорость. А вот другие решения Java-сценариев (Java/TCL, Java/Perl и др.) присоединяют JVM к реализации C на этих языках, что не только создает проблему переносимости, но и сами эти решения не так легки, как хотелось бы.

Как лучше всего использовать Java и JPython вместе?

Есть целый ряд проверенных инструментов, которые реализуют Python на Java или наоборот, так что вы можете выполнять команды одного языка на другом. Вот краткий список некоторых лучших инструментов для интеграции Python с Java:
  • Jython — Python, реализованный на Java.
  • JPype — позволяет с помощью Python запускать команды Java.
  • Jepp — Java, встроенный в Python.
  • JCC — генератор кода C ++ для вызова Java из C ++/Python.
  • Javabridge — пакет для запуска и взаимодействия с JVM от CPython.
  • Py4j — позволяет запускать на Python команды Java.
  • Voc — элемент инструмента BeeWare. Преобразует код Python в байт-код Java.
  • p2j — конвертирует код Python в Java. Больше не разрабатывается.
Существует несколько подходов к использованию этих инструментов. Каждый имеет свои преимущества и недостатки. Например, вы можете создать прототип всего приложения в Jython, а после нескольких циклов тестирования и перепроектирования переписать все на Java. Это позволяет вам воспользоваться преимуществами повышенной гибкости и скорости разработки скриптовых языков на ранних этапах вашего проекта. Однако ваш конечный продукт должен быть немного более детализированным, чем если бы вы просто начали писать только на Java. И если вы беспокоитесь о библиотеках пользовательского интерфейса, то Jython может подключиться к тем же UIL, что и обычная Java, поэтому конвертирование Java должно пройти без проблем. Тем не менее, всё не так просто, если вы пытаетесь построить большой проект. Вы, вероятно, столкнетесь с недостатком различных компонентов и слоев, имеющих независимые циклы разработки, такие как компоненты верхнего уровня. Конечно, вы можете переписать отдельные компоненты в Java по мере приближения к выпуску стабильной версии или просто с самого начала написать некоторые свои компоненты исключительно на Java. Еще один вариант — переписать только те компоненты, для которых важна производительность. Таким образом, вы можете оставить высокоуровневые компоненты в Jython, что означает, что нужно переписать только компоненты более низкого уровня, а в некоторых случаях вам вообще не придется ничего переписывать.

Знакомство с Jakarta EE и Eclipse MicroProfile

Источник: DZone Вы еще не слышали про Jakarta EE и Eclipse MicroProfile? Значит, пришло время познакомиться с тем, как развивался стандарт Java Enterprise. Обе эти технологии наверняка станут вам полезны в будущем, поскольку отлично подходят для создания облачных и современных корпоративных приложений..

Что такое Jakarta EE?

Jakarta EE — это набор спецификаций (JAX-RS, CDI, JPA, JSON-P и др.) для написания корпоративных приложений на Java. Эти спецификации являются документами, определяющими API и взаимодействие технологии. Кофе-брейк #21. Интеграция Python с Java. Знакомимся с Jakarta EE и Eclipse MicroProfile - 2Документы спецификации похожи на интерфейсы с формальными определениями, и фактическая реализация этих интерфейсов зависит от поставщика сервера приложений (например, WildFly, Open Liberty, Payara, TomEE). Чтобы поставщик не реализовал спецификацию неправильно, каждая спецификация предоставляет комплект совместимости технологий (КСТ). Это набор тестов для проверки соответствия реализации той или иной спецификации. После того как сервер приложений передает КСТ для всех спецификаций, он соответствует всему стандарту. В течение многих лет Java EE был стандартным способом написания корпоративных приложений. Java EE (ранее назывался J2EE) долгое время поддерживался Oracle. В 2017 году Oracle решила больше не развивать корпоративный стандарт под своей эгидой и передала его Eclipse Foundation. По юридическим причинам им пришлось провести ребрендинг и продукт решили назвать Jakarta EE. Вы можете найти все спецификации Jakarta EE на официальном сайте, также вы можете получить дополнительную информацию о том, как сейчас работает процесс спецификации, на сайте Eclipse Foundation.

Что такое Eclipse MicroProfile?

Поскольку процесс выпуска и адаптации новых функций для Java EE был довольно медленным, группа поставщиков и членов сообщества решила в 2016 году создать MicroProfile. Основная цель этого проекта состояла в том, чтобы помочь разработчикам идти в ногу со временем, а также в оптимизации существующей платформы для архитектуры микросервисов. В настоящее время Eclipse MicroProfile содержит двенадцать спецификаций. Четыре из них также являются частью Jakarta EE. Это позволяет создавать автономные приложения исключительно с MicroProfile. Все спецификации не зависят от производителя, а реализация поставляется с сервером приложений. Спецификации Jakarta EE можно рассматривать как прочную основу для создания корпоративных приложений. Вдобавок к этому Eclipse MicroProfile заполняет пробел в построении распределенных систем, поскольку эта технология следует методологии приложений Twelve-Factor.
Комментарии (1)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
27 апреля 2020
Почти ничего не понятно, но очень интересно!