Integracja Java i Python (bez mediów komunikacyjnych / serwisów)

Integracja Java i Python (bez mediów komunikacyjnych / serwisów)
RA
  • Rejestracja:około 8 lat
  • Ostatnio:ponad 3 lata
  • Postów:13
0

Witam.
Jakie są możliwości integracji Python w Javie ale bez używania zewnętrznych serwisów takich jak Jython.
Czyli chodzi mi bardziej o integracje na poziomie kodu a nie serwisów.
Czy ktoś z was słyszał o technikach takiej integracji ?
Dziękuję za ewentualna pomoc.
Pozdrawiam.

edytowany 1x, ostatnio: Ramsfeld
SZ
  • Rejestracja:około 11 lat
  • Ostatnio:ponad 4 lata
  • Postów:616
0

CO chcesz osiągnąc?

lion137
  • Rejestracja:ponad 8 lat
  • Ostatnio:4 minuty
  • Postów:4944
0

Chcesz interpreter Pythona w Javie? Czy wołać kod Javy z Pythona/Pythona z Javy?


RA
  • Rejestracja:około 8 lat
  • Ostatnio:ponad 3 lata
  • Postów:13
0

Generalnie chodzi o prace mgr w której mam zbadać efektywność połączenia dwóch języków jeden ma być typowany statycznie (Java) a drugi dynamicznie (Python). Chodzi tu o połączenie bez serwisu takiego jak Jython czy odpowiednio IronPython dla c# i Python. W pracy mam zbadać efektywność takiego połączenia i czy to w ogóle się opłaca.
@lion137 Myślałem raczej o wywoływanie kodu Pythona w Javie
Pozdrawiam.

edytowany 1x, ostatnio: Ramsfeld
Shalom
  • Rejestracja:ponad 21 lat
  • Ostatnio:około 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
0

Ale jak ty to sobie w ogóle wyobrażasz? o_O Opcje są dwie -> albo coś jak Jython albo https://github.com/kivy/pyjnius i w obu można łaczyć kod, ale tylko w jedna stronę, tzn z pythona używać javowych klas. W drugą stronę gorzej, chociaż nadal możesz przez jythona ewaluować pythonowy kod. Mogłeś sobie wybrać np. Java+Groovy, też byłoby statyczne i dynamiczne ale jednocześnie dało by się to spinać na poziomie kodu.


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
edytowany 1x, ostatnio: Shalom
Wibowit
  • Rejestracja:około 20 lat
  • Ostatnio:około godziny
0

Istnieje coś takiego jak GraalVM: https://4programmers.net/Forum/Java/293113-graalvm_high_performance_polyglot_runtime
Najlepsze przykłady są dla Ruby'ego i JavaScripta jeśli chodzi o języki skryptowe.

W zasadzie jeśli chodzi o sam JavaScript to rozwiązania już są oficjalne i wbudowane w Javę, np Mozilla Rhino lub Nashorn. Dokumentacja Javowego ScriptEngine (opartego chyba zwykle o Rhino): http://docs.oracle.com/javase/7/docs/technotes/guides/scripting/programmer_guide/index.html

Mozilla Rhino jest jednak bardzo powolnym interpreterem JavaScriptu. Graal.js jest szybki (na poziomie Chrome V8), ale jak na razie dalej w fazie eksperymentalnej.


"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.
lion137
  • Rejestracja:ponad 8 lat
  • Ostatnio:4 minuty
  • Postów:4944
0

Jeśli chodzi o opłacalność, to generalnie, efektywnościowo lepiej będzie wołać kod języka kompilowanego i statycznie typowanego z dynamicznego, skryptowego - czyli jave z pythona. Takie połącznie dla pythona już są, PyTorch, numpy. Wołając kod pythona z javy, mogę sobie wyobrazić, że dostajemy jakiś dodatkowy design, ale czy to się będzie opłacać - dostaniemy dodatkowy poziom komplikacji i błędów.


jarekczek
  • Rejestracja:prawie 8 lat
  • Ostatnio:ponad 4 lata
  • Lokalizacja:Siemianowice Śląskie
  • Postów:500
1

Jakie są możliwości integracji Python w Javie ale bez używania zewnętrznych serwisów takich jak Jython.
Czyli chodzi mi bardziej o integracje na poziomie kodu a nie serwisów.

Podałeś przykłady bibliotek (Jython, IronPython). O co Ci chodzi z tym serwisem? Nikt nie wymyślił lepszej integracji.


Przeważnie ignoruję niezarejestrowanych użytkowników.
vpiotr
  • Rejestracja:prawie 14 lat
  • Ostatnio:prawie 3 lata
0

Dokładnie tak. Z tego co wiem Jython jest najbardziej naturalną formą integracji z Javą i nie wymaga żadnych serwisów.
http://www.jython.org/archive/21/docs/jythonc.html

YA
  • Rejestracja:około 10 lat
  • Ostatnio:około 2 godziny
  • Postów:2372
0

Mam wrażenie, że autorowi pytania chodzi właśnie o zbadanie innej możliwości i porównania z istniejącymi rozwiązaniami. Ot praca badawcza w ramach magisterki, a nie użycie istniejącego rozwiązania.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.