Integration von Python und Java

Generell ist die Kombination von Systemprogrammierung und Skriptsprachen kein seltsames neues Konzept, sie wird nur nicht häufig praktiziert. Es ist möglich, Programmiersprachen, die eine gemeinsame binäre Anwendungsschnittstelle haben, in einer einzigen Bibliothek oder ausführbaren Datei zu kombinieren, und obwohl es etwas schwierig sein kann, die Signaturen von zwei Sprachen ineinander zu bekommen, gibt es Tools, die dabei helfen.

Ein Beispiel für die Zusammenarbeit von Programmiersprachen findet sich in polyglotem Code. Die 404-Seite auf Stack Overflow kann zum Beispiel „404“ in Python, Ruby, Perl, C und einigen anderen Sprachen ausgeben.

Was Python und Java betrifft, so ergänzen sich diese beiden Sprachen tatsächlich. Sie können zum Beispiel eine Sprache für typische Teilaufgaben verwenden, während Sie die andere als Skriptsprache zur Erweiterung der Anpassungsmöglichkeiten der zu entwickelnden Anwendung einsetzen.

Siehe auch: Python Package Index hat jetzt automatische Malware-Checks an Bord

Während JavaScript außerhalb von Webbrowsern nicht häufig verwendet wird, zumindest im Vergleich zu anderen Skriptsprachen wie Perl, Tcl, Visual Basic und Python, werden alle diese Sprachen häufig mit anderen Sprachen kombiniert. Python wird traditionell zusammen mit C und C++ verwendet, während Visual Basic oft die bevorzugte Skriptsprache für C++ auf der Windows-Plattform ist und sowohl Perl als auch Tcl typischerweise unter C/Unix verwendet werden.

Python wird etwas häufiger unter Windows verwendet, da es nahtlos in die Microsoft Scripting Host-Architektur sowie in COM integriert ist. Auch auf dem Mac ist Python gut einsetzbar, mit einer guten Auswahl an nativen MacOS-Toolboxen.

Für weitere Ressourcen zu Python und den Möglichkeiten der Java-Integration empfiehlt es sich, Online-Kurse für Python zu besuchen.

Warum Java und Python?

Python ist eine objektorientierte Skriptsprache, was sie automatisch zu einem guten Paar für Java macht. Aber in Kombination mit einem vollständig in Java geschriebenen Python-Interpreter wie Jython kann man z.B. ganze Applets in Python schreiben, die in jedem JDK-kompatiblen Browser ausgeführt werden können, und zwar mit einer Code-Ausführung, die fast so schnell ist wie C / CPython.

Ein Python-Java-Interpreter wie Jython übersetzt Python-Quellcode direkt in Java-Bytecode, was ihm eine unglaubliche Geschwindigkeit verleiht, da es sich nicht um einen in Java geschriebenen Python-Interpreter handelt, der viel langsamer wäre. Andere Java-Skriptlösungen (Java/TCL, Java/Perl usw.) binden die JVM an die C-Implementierung dieser Sprachen an, was nicht nur Portabilitätsprobleme mit sich bringt, sondern auch nicht so nahtlos ist, wie man es sich wünschen würde.

    Efficient Transformers

    Christoph Henkelmann

    Machine Learning 101++ mit Python

    Pieter Buteneers

Wie kann man Java und JPython am besten zusammen nutzen?

Es gibt mehrere seriöse Tools, die Python in Java implementieren oder umgekehrt, so dass Sie die Befehle der einen Sprache in der anderen ausführen können. Hier ist eine kurze Liste einiger der am besten bewerteten Python- und Java-Integrationstools:

  • Jython – Python in Java implementiert
  • JPype – Ermöglicht es Python, Java-Befehle auszuführen
  • Jepp – in Java eingebettetes Python
  • JCC – ein C++-Code Generator für den Aufruf von Java aus C++/Python
  • Javabridge – ein Paket zum Ausführen und Interagieren mit der JVM aus CPython
  • py4j – Erlaubt Python, Java-Befehle auszuführen.
  • voc – Teil der BeeWare-Suite. Konvertiert Python Code in Java Bytecode.
  • p2j – Konvertiert Python Code in Java. Wird nicht mehr weiterentwickelt.

Es gibt mehrere Ansätze zur Verwendung dieser Tools, mit ihren eigenen Vor- und Nachteilen. So könnte man zum Beispiel einen Prototyp der gesamten Anwendung in Jython erstellen und nach mehreren Test- und Redesign-Zyklen alles in Java umschreiben. Auf diese Weise können Sie die Vorteile der höheren Flexibilität und Entwicklungsgeschwindigkeit der Skriptsprachen in der Anfangsphase Ihres Projekts nutzen, und Ihr Endprodukt sollte etwas ausgefeilter sein, als wenn Sie einfach nur mit Java begonnen hätten.

Und wenn Sie sich Sorgen um die Bibliotheken der Benutzeroberfläche machen, kann Jython dieselben UILs nutzen wie Java, so dass das endgültige Umschreiben in Java problemlos vonstatten gehen sollte.

Allerdings ist es nicht ganz so einfach, wenn Sie versuchen, ein größeres System aufzubauen. Sie werden wahrscheinlich auf den Nachteil stoßen, dass die verschiedenen Komponenten und Schichten unabhängige Entwicklungszyklen haben, z.B. dass sich die Komponenten auf der obersten Ebene weiterentwickeln, während die unteren Schichten eingefroren werden. Natürlich können Sie die einzelnen Komponenten in Java umschreiben, wenn Sie sich der Designstabilität nähern, oder einfach einige Ihrer Komponenten von Anfang an ausschließlich in Java schreiben.

SEHEN SIE AUCH: Python-Datenvisualisierung mit Bokeh

Eine andere Möglichkeit ist, sich darauf zu konzentrieren, nur die Komponenten neu zu schreiben, deren Leistung kritisch ist. So könnte man High-Level-Komponenten in Jython belassen, was bedeutet, dass nur die Low-Level-Komponenten umgeschrieben werden müssen – und in manchen Fällen muss man vielleicht gar nichts umschreiben.

Wenn also Teile Ihres freigegebenen Systems in Jython geschrieben sind, können die Endbenutzer ihre eigenen Anpassungen durch Jython-Skripte schreiben – ganz zu schweigen davon, dass Jython-Anwendungen als Java-Bytecode verteilt werden können, was bedeutet, dass Sie sich keine Sorgen machen müssen, dass der Endbenutzer an Komponenten herumschraubt, an denen er nicht herumschrauben sollte.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.