Integrarea Python cu Java

În general vorbind, combinarea programării de sistem și a limbajelor de scripting nu este un concept nou și ciudat, doar că nu se face în mod obișnuit. Este posibil ca limbajele de programare care împărtășesc o interfață binară de aplicație comună să fie combinate într-o singură bibliotecă sau într-un singur executabil și, deși poate fi puțin dificil să introduci semnăturile a două limbaje unul în interiorul celuilalt, există instrumente care să ajute.

Un exemplu de limbaje de programare care lucrează împreună poate fi găsit în codul poliglot. De exemplu, pagina 404 de pe Stack Overflow poate imprima „404” în Python, Ruby, Perl, C și alte câteva.

În ceea ce privește în mod specific Python și Java, aceste două limbaje se completează reciproc. Ați putea, de exemplu, să folosiți unul pentru sarcini secundare tipice, în timp ce îl folosiți pe celălalt ca un limbaj de scripting pentru a extinde personalizarea aplicației pe care o dezvoltați.

VEZI ȘI: Python Package Index are acum la bord verificări automate de malware

În timp ce JavaScript nu este utilizat în mod obișnuit în afara browserelor web, cel puțin în comparație cu alte limbaje de scripting precum Perl, Tcl, Visual Basic și Python, toate aceste limbaje sunt în mod obișnuit asociate cu alte limbaje. Python merge în mod tradițional alături de C și C++, în timp ce Visual Basic este adesea limbajul de scripting ales pentru C++ pe platforma Windows, iar atât Perl cât și Tcl sunt utilizate de obicei pe C / Unix.

Python este utilizat un pic mai mult pe Windows, deoarece este integrat fără probleme cu arhitectura Microsoft Scripting Host, precum și cu COM. Este, de asemenea, excelent și pe Mac, cu o selecție bună de cutii de instrumente native pentru MacOS.

Pentru mai multe resurse despre Python și posibilitățile de integrare Java, este o idee bună să verificați cursurile online pentru Python.

De ce Java și Python?

Python este un limbaj de scripting orientat pe obiecte, ceea ce îl face automat o pereche bună pentru Java. Dar atunci când este combinat cu un interpretor Python scris în întregime în Java, cum ar fi Jython, puteți face lucruri precum scrierea de applet-uri întregi în Python care pot rula în orice browser compatibil JDK, cu o execuție a codului aproape la fel de rapidă ca și C / CPython.

Ce face un interpretor Python-Java, cum ar fi Jython, este să traducă codul sursă Python direct în Java bytecode, ceea ce îi conferă o viteză incredibilă, deoarece nu este un interpretor Python scris în Java, care ar fi mult mai lent. Ceea ce fac de obicei alte soluții de scripting Java (Java/TCL, Java/Perl etc.) este să atașeze JVM la implementarea C în acele limbaje, ceea ce nu numai că introduce probleme de portabilitate, dar nu este atât de transparent pe cât s-ar putea spera.

    Transformatoare eficiente

    Christoph Henkelmann

    .

    Machine Learning 101++ Using Python

    Pieter Buteneers

Cum puteți folosi cel mai bine Java și JPython împreună?

Există mai multe instrumente de renume care implementează Python în Java sau viceversa, astfel încât să puteți executa comenzile unui limbaj în celălalt. Iată o listă rapidă a unora dintre cele mai bine cotate instrumente de integrare Python + Java:

  • Jython – Python implementat în Java
  • JPype – Permite ca Python să execute comenzi Java
  • Jepp – Python încorporat în Java
  • JCC – un cod C++ generator pentru apelarea Java din C++/Python
  • Javabridge – un pachet pentru rularea și interacțiunea cu JVM din CPython
  • py4j – Permite Python să ruleze comenzi java.
  • voc – Face parte din suita BeeWare. Convertește codul python în bytecode Java.
  • p2j – Convertește codul Python în Java. Nu mai este dezvoltat.

Există mai multe abordări pentru utilizarea acestor instrumente, cu propriile beneficii și dezavantaje. Astfel, de exemplu, ați putea construi un prototip al întregii aplicații în Jython și, după mai multe cicluri de testare și reproiectare, să rescrieți totul în Java. Acest lucru vă permite să profitați de flexibilitatea crescută și de viteza de dezvoltare a limbajelor de scripting în prima parte a proiectului dumneavoastră, iar produsul final ar trebui să fie puțin mai bine pus la punct decât dacă ați fi început doar în Java.

Și dacă sunteți îngrijorat de bibliotecile de interfață cu utilizatorul, Jython se poate conecta la aceleași UIL-uri ca și Java de bază, astfel încât rescrierea finală în Java ar trebui să decurgă fără probleme.

Cu toate acestea, nu este la fel de simplu dacă încercați să construiți un sistem mai mare. Veți întâmpina probabil dezavantajul faptului că diferitele componente și straturi au cicluri de dezvoltare independente, cum ar fi componentele de nivel superior care evoluează în timp ce straturile inferioare devin înghețate. Desigur, ați putea rescrie componentele individuale în Java pe măsură ce vă apropiați de stabilitatea proiectării, sau pur și simplu să scrieți unele dintre componente exclusiv în Java de la început.

VEZI ȘI: Vizualizarea datelor în Python cu Bokeh

O altă opțiune este să vă concentrați pe rescrierea doar a componentelor în care performanța este critică. Astfel, ați putea lăsa componentele de nivel înalt în Jython, ceea ce înseamnă că doar componentele de nivel inferior ar trebui rescrise – și, în unele cazuri, s-ar putea să nu fie nevoie să rescrieți nimic.

Așa că, dacă părți din sistemul dvs. lansat sunt scrise în Jython, utilizatorii finali își pot scrie propriile personalizări prin intermediul scripturilor Jython – ca să nu mai vorbim de faptul că aplicațiile Jython pot fi distribuite ca bytecode Java, ceea ce înseamnă că nu trebuie să vă faceți griji cu adevărat că utilizatorul final strică componente cu care nu ar trebui să se joace.

.

Lasă un răspuns

Adresa ta de email nu va fi publicată.