Integrera Python med Java

Allmänt sett är det inget konstigt nytt koncept att kombinera systemprogrammering och skriptspråk, det är bara inte vanligt att det görs. Det är möjligt för programmeringsspråk som delar ett gemensamt binärt applikationsgränssnitt att kombineras till ett enda bibliotek eller körbar fil, och även om det kan vara lite svårt att få in två språks signaturer i varandra finns det verktyg som kan hjälpa till.

Ett exempel på programmeringsspråk som arbetar tillsammans kan hittas i polyglot kod. Till exempel kan 404-sidan på Stack Overflow skriva ut ”404” i Python, Ruby, Perl, C och några andra.

När det gäller Python och Java specifikt så kompletterar dessa två språk faktiskt varandra. Du kan till exempel använda det ena för typiska deluppgifter, medan du använder det andra som ett skriptspråk för att utöka anpassningen av den applikation du utvecklar.

SEE ALSO: Python Package Index har nu automatiska kontroller av skadlig kod ombord

Som JavaScript inte är vanligt förekommande utanför webbläsare, åtminstone i jämförelse med andra skriptspråk som Perl, Tcl, Visual Basic och Python, är det vanligt att alla dessa språk kombineras med andra språk. Python går traditionellt ihop med C och C++, medan Visual Basic ofta är det scriptspråk som väljs för C++ på Windows-plattformen, och både Perl och Tcl används vanligen på C / Unix.

Python används lite mer på Windows, eftersom det är sömlöst integrerat med Microsoft Scripting Host-arkitekturen, liksom med COM. Det är också bra på Mac också, med ett bra urval av infödda MacOS-verktygslådor.

För mer resurser om Python och möjligheterna till Java-integration är det en bra idé att kolla in online-kurser för Python.

Varför Java och Python?

Python är ett objektorienterat skriptspråk, vilket automatiskt gör det till ett bra par för Java. Men i kombination med en Python-tolk som är skriven helt och hållet i Java, som Jython, kan man göra saker som att skriva hela applets i Python som kan köras i vilken JDK-kompatibel webbläsare som helst, med kodutförande som är nästan lika snabbt som C/CPython.

Vad en Python-Java-tolk som Jython gör är att översätta Python-källkoden direkt till Java-bytecode, vilket ger en otrolig snabbhet eftersom det inte är en Python-tolk som är skriven i Java, vilket skulle vara mycket långsammare. Vad andra Java-skriptlösningar vanligtvis gör (Java/TCL, Java/Perl osv.) är att koppla JVM till C-genomförandet i dessa språk, vilket inte bara medför portabilitetsproblem, utan inte heller är så smidigt som man skulle kunna hoppas.

    Effektiva transformatorer

    Christoph Henkelmann

    Maskininlärning 101++ med hjälp av Python

    Pieter Buteneers

Hur kan man bäst använda Java och JPython tillsammans?

Det finns flera välrenommerade verktyg som implementerar Python i Java eller vice versa, så att du kan utföra kommandon från det ena språket i det andra. Här är en snabb lista över några av de högst rankade verktygen för integrering av Python + Java:

  • Jython – Python implementerat i Java
  • JPype – Gör det möjligt för Python att köra java-kommandon
  • Jepp – Java inbäddad Python
  • JCC – en C++-kod. generator för att anropa Java från C++/Python
  • Javabridge – ett paket för att köra och interagera med JVM från CPython
  • py4j – Gör det möjligt för Python att köra java-kommandon.
  • voc – ingår i BeeWare-sviten. Konverterar pythonkod till Java bytecode.
  • p2j – Konverterar pythonkod till Java. Utvecklas inte längre.

Det finns flera sätt att använda dessa verktyg, med sina egna fördelar och nackdelar. Så du kan till exempel bygga en prototyp av hela programmet i Jython, och efter flera test- och omkonstruktionscykler skriva om allt i Java. På så sätt kan du dra nytta av skriptspråkens ökade flexibilitet och utvecklingshastighet i början av ditt projekt, och din slutprodukt bör vara lite mer utvecklad än om du helt enkelt hade börjat i bara Java.

Och om du är orolig för användargränssnittsbibliotek kan Jython koppla upp sig mot samma UIL:er som grundläggande Java, så den slutliga Java-omskrivningen bör gå utan problem.

Det är dock inte riktigt lika enkelt om du försöker bygga ett större system. Du kommer förmodligen att stöta på nackdelen med att olika komponenter och lager har oberoende utvecklingscykler, t.ex. att komponenter på högsta nivå utvecklas medan lägre lager stelnar. Naturligtvis kan du skriva om de enskilda komponenterna i Java när du närmar dig designstabilitet, eller helt enkelt skriva vissa av dina komponenter uteslutande i Java från början.

SEA ALSO: Python datavisualisering med Bokeh

Ett annat alternativ är att fokusera på att skriva om endast de komponenter där prestandan är kritisk. Du kan alltså lämna komponenter på hög nivå i Jython, vilket innebär att endast komponenterna på lägre nivå behöver skrivas om – och i vissa fall behöver du kanske inte skriva om något alls.

Om delar av ditt släppta system är skrivna i Jython kan slutanvändarna skriva sina egna anpassningar genom Jython-skript – för att inte tala om att Jython-applikationer kan distribueras som Java-bytecode, vilket innebär att du inte behöver oroa dig för att slutanvändaren ska sabotera komponenter som inte bör saboteras.

Lämna ett svar

Din e-postadress kommer inte publiceras.