Jython v3 ew integarcja Python / Java (a może z flanki: Lua)

0

Czy mam słuszne wrażenie, że nie nastąpi żadne nadgonienie Jythona do języka Python v.3 ? Nie najmniejszych nawet mglistych zapowiedzi.

Grzebanie w googlarce wskazuje, że obecnie wielu (jak już musi integrować) to integruje C-Python przez kod C (JNI itd)

Mój cel jest w 100% hobbystyczny, ale zmartwiłem się. ...

2

Uwaga podaję hasło: GraalVM

0

No ale to oznacza, że mam rzucić sprawdzoną JVM dla jakiejś dużej aplikacji, i wszystko co z tym związane

Jak ostatnio sprawdzałem rok temu to GraalVM był już częścią javac i włączało się to (dla Javy i innych języków na JVM) przełącznikiem podczas kompilacji. Więc w teorii jest to proste jak zmiana domyślnego GC. W praktyce użycie przełącznika GraalVM może spowodować że twój kod się nie skompiluje (jesli np używasz dużo refleksji lub używasz frameworkó używających refleksji). Wtedy trzeba albo przepisać kod (lub zmienić frameworki na przystosowane do GraalVM), albo dodać dużo konfiguracji (dla refleksji trzeba było dostarczyć plik JSON ze wszystkimi przypadkami używania refleksji)

1

Tak na marginesie, z dobrych wiadomości, integracja Java-Lua się posunęła do przodu.

Jest prawie nie spóźniona z numerkiem wersji - co jest ważne, bo Lua w pewnym momencie wprowadza prawdziwy integer obok domyślnego typu numerycznego (double - który to typ w C-Lua można podmieniać). Dwa typy numeryczne to już ambitniej w takim języku *)
To właściwie nie integracja, a pełne środowisko w w obrębie JVM, z płynnym eksportem typów/ obiektów pomiędzy językami itd...

*) kto kibicuje, wie, że można dowolny swój typ "unumerowić" ale to bajka na inny wieczór.

0
ZrobieDobrze napisał(a):

Tak na marginesie, z dobrych wiadomości, integracja Java-Lua się posunęła do przodu.

Jest prawie nie spóźniona z numerkiem wersji

Masz na myśli luaj? Luaj Wspiera wersję lua 5.2, a to 2011 rok, WIec powiedziałbym że tak średnio z tym na bieżaco :P
No i jeszcze jest to że Lua to raczej mały język a Python to już wielka krowa (i pewnie przez to zbyt duża żeby komuś chciało się utrzymywac alternatywną implementację w Javie)

Update - widzę jeszcze inne implementacje w Javie jak Rembulan i hklib które faktycznie są tylko jeden numer za wersją referencyjną

0

A musi być w jednym procesie? Może jakiś Py4J?

0
xy napisał(a):

A musi być w jednym procesie? Może jakiś Py4J?

Tak. Scripting language w oddzielnym procesie to jakaś patologia. To staje się czymś innym. Tak jak edytor do plików tekstowych, który potrzebuje 1 GB RAM.

Co nie znaczy, że pewnego rodzaju separacja, ale tę dają VM obu języków (lub przynajmniej jednego - Lua z C/C++), nie jest ważna.

0
ZrobieDobrze napisał(a):
xy napisał(a):

A musi być w jednym procesie? Może jakiś Py4J?

Tak. Scripting language w oddzielnym procesie to jakaś patologia. To staje się czymś innym. Tak jak edytor do plików tekstowych, który potrzebuje 1 GB RAM.

Co nie znaczy, że pewnego rodzaju separacja, ale tę dają VM obu języków (lub przynajmniej jednego - Lua z C/C++), nie jest ważna.

Nie do końca rozumiem, co konkretnie OP chce osiągnąć. Napisał, że cel jest hobbystyczny, ale nie wiadomo jaki dokładnie. Py4J działa w drugą stronę, niż Jython. Jython pozwala na wołanie Pythona z Javy, a Py4J pozwala na wołanie Javy z Pythona. Nie jestem fanem takich rozwiązań i to powinna być raczej ostateczność.

1 użytkowników online, w tym zalogowanych: 0, gości: 1