Integrace Pythonu s Javou

Všeobecně řečeno, kombinace systémového programování a skriptovacích jazyků není nic nového, jen se to běžně nedělá. Programovací jazyky, které sdílejí společné binární rozhraní aplikace, je možné spojit do jedné knihovny nebo spustitelného souboru, a i když může být trochu obtížné dostat do sebe podpisy dvou jazyků, existují nástroje, které vám s tím pomohou.

Jedním z příkladů spolupráce programovacích jazyků je polyglotský kód. Například stránka 404 na serveru Stack Overflow dokáže vypsat „404“ v jazycích Python, Ruby, Perl, C a několika dalších.

Co se týče konkrétně Pythonu a Javy, tyto dva jazyky se vlastně vzájemně doplňují. Jeden z nich můžete například použít pro typické dílčí úlohy, zatímco druhý použijete jako skriptovací jazyk pro rozšíření možností přizpůsobení vyvíjené aplikace.

VÍTEJTE TAKÉ: JavaScript se sice mimo webové prohlížeče běžně nepoužívá, alespoň ve srovnání s jinými skriptovacími jazyky, jako jsou Perl, Tcl, Visual Basic a Python, ale všechny tyto jazyky se běžně párují s jinými jazyky. Python se tradičně používá spolu s jazyky C a C++, zatímco Visual Basic je často volbou skriptovacího jazyka pro C++ na platformě Windows a Perl i Tcl se obvykle používají na platformě C / Unix.

Python se o něco více používá na platformě Windows, protože je bezproblémově integrován s architekturou Microsoft Scripting Host a také s COM. Je také skvěle použitelný i na Macu, kde je k dispozici dobrý výběr nativních sad nástrojů pro MacOS.

Pro více zdrojů o Pythonu a možnostech integrace s Javou je dobré se podívat na online kurzy Pythonu.

Proč Java a Python?

Python je objektově orientovaný skriptovací jazyk, což z něj automaticky dělá dobrý pár pro Javu. Ale v kombinaci s interpretem jazyka Python napsaným výhradně v jazyce Java, jako je Jython, můžete dělat takové věci, jako je psaní celých appletů v jazyce Python, které mohou běžet v libovolném prohlížeči kompatibilním s JDK, s prováděním kódu téměř stejně rychlým jako v jazyce C / CPython.

To, co dělá interpret Pythonu a Javy, jako je Jython, je překlad zdrojového kódu jazyka Python přímo do bajtkódu jazyka Java, což mu dává neuvěřitelnou rychlost, protože to není interpret jazyka Python napsaný v jazyce Java, který by byl mnohem pomalejší. To, co obvykle dělají jiná řešení pro skriptování v Javě (Java/TCL, Java/Perl atd.), je připojení JVM k implementaci C v těchto jazycích, což nejenže přináší problémy s přenositelností, ale není tak bezproblémové, jak bychom doufali.

    Efektivní transformátory

    Christoph Henkelmann

    .

    Machine Learning 101++ Using Python

    Pieter Buteneers

Jak nejlépe využít Javu a JPython společně?

Existuje několik renomovaných nástrojů, které implementují Python do Javy nebo naopak, takže můžete provádět příkazy jednoho jazyka v druhém. Zde je stručný seznam některých nejlépe hodnocených nástrojů pro integraci jazyka Python + Java:

  • Jython – Python implementovaný v Javě
  • JPype – Umožňuje Pythonu spouštět java příkazy
  • Jepp – Java embedded Python
  • JCC – kód C++. generátor pro volání Javy z C++/Pythonu
  • Javabridge – balíček pro spouštění a interakci s JVM z CPythonu
  • py4j – Umožňuje Pythonu spouštět java příkazy.
  • voc – součást sady BeeWare. Převádí kód Pythonu na bajtový kód Javy.
  • p2j – Převádí kód Pythonu na kód Javy. Již se nevyvíjí.

Existuje několik přístupů k použití těchto nástrojů, které mají své výhody a nevýhody. Tak například můžete vytvořit prototyp celé aplikace v jazyce Jython a po několika cyklech testování a přepracování vše přepsat do jazyka Java. To vám umožní využít větší flexibilitu a rychlost vývoje skriptovacích jazyků v počáteční části projektu a váš konečný produkt by měl být o něco propracovanější, než kdybyste prostě začali jen v Javě.

A pokud máte obavy z knihoven uživatelského rozhraní, Jython se může připojit ke stejným UIL jako základní Java, takže konečné přepsání v Javě by mělo proběhnout bez problémů.

Není to však tak jednoduché, pokud se snažíte vytvořit větší systém. Pravděpodobně narazíte na nevýhodu, že různé komponenty a vrstvy mají nezávislé vývojové cykly, například komponenty nejvyšší úrovně se vyvíjejí, zatímco nižší vrstvy zamrznou. Samozřejmě můžete jednotlivé komponenty přepsat do Javy, jakmile se přiblížíte stabilitě návrhu, nebo prostě některé komponenty od začátku psát výhradně v Javě.

PŘEHLÉDNĚTE SI TAKÉ: Další možností je zaměřit se na přepsání pouze těch komponent, u kterých je výkon kritický. Můžete tedy ponechat vysokoúrovňové komponenty v jazyce Jython, což znamená, že bude třeba přepsat pouze komponenty nižší úrovně – a v některých případech možná nebude třeba přepisovat vůbec nic.

Jsou-li tedy části vašeho vydaného systému napsány v jazyce Jython, mohou koncoví uživatelé psát své vlastní úpravy prostřednictvím skriptů Jythonu – nemluvě o tom, že aplikace Jython lze distribuovat jako bajtový kód Javy, což znamená, že se opravdu nemusíte bát, že koncoví uživatelé pokazí komponenty, do kterých by neměli zasahovat.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.