JavaRush /Java блог /Random UA /Кава-брейк #21. Інтеграція Python з Java. Знайомимося з J...

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

Стаття з групи Random UA

Інтеграція 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, що означає, що потрібно переписати тільки компоненти нижчого рівня, а в деяких випадках вам взагалі нічого не доведеться переписувати. Ще один варіант – переписати лише ті компоненти, для яких важлива продуктивність. Таким чином, ви можете залишити високорівневі компоненти в Jython, що означає, що потрібно переписати тільки компоненти нижчого рівня, а в деяких випадках вам взагалі нічого не доведеться переписувати. Ще один варіант – переписати лише ті компоненти, для яких важлива продуктивність. Таким чином, ви можете залишити високорівневі компоненти в 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 .
Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ