Kiedy Jython będzie obsługiwał Python 3?

82

Według dokumentacji Jythona :

Jython to implementacja języka Python na platformę Java. Jython 2.5 implementuje ten sam język co CPython 2.5 i prawie wszystkie standardowe moduły biblioteki Core Python. (CPython to implementacja języka Python w C). Jython 2.5 używa tego samego zestawu testów regresji co CPython, z pewnymi niewielkimi modyfikacjami.

Czy są jakieś plany dotyczące obsługi Pythona 3? Jeśli tak, kiedy ma zostać zwolniony?

Adam Paynter
źródło
4
Odkryłem, że zastanawiałem się nad tym samym dzisiaj, 7 lat później. Widzę, że IronPython został ponownie odebrany ... ale nadal nie ma Jythona.
cz
Brak zmian w repozytorium Jython 3 od 18 lipca 2017, więc nie wygląda dobrze. Ale Jython 2 jest nadal aktywny, jest szansa, że ​​Jython 3 uruchomi się ponownie w 2020 r., Jeśli Python 2 faktycznie przestanie być obsługiwany. To czysto spekulacyjne.
RedGlyph

Odpowiedzi:

37

Mapa drogowa Jythona jest zdecydowanie nieaktualna.
Jednak na blogu Franka Wierzbickiego (jednego z głównych programistów Jythona) można znaleźć aktualizację , która mówi, że Python 3 jest zdecydowanie na radarze.

Niestety, nie jest jeszcze jasne, kiedy, jak stwierdza komentarz na tym samym blogu z 2010 roku:

Jython osiągnie 2.6, a później 3.x, ale trudno jest podać solidne ramy czasowe. Mam nadzieję, że za kilka miesięcy wyjdę z 2.6.

Wierzbicki w wywiadzie z 2017 roku stwierdził, że Python 3 jest pożądany, ale trudny.

Langfristig wollen wir eine 3.x-Version veröffentlichen, aber das ist ein langwieriger Prozess, weil es eine große Menge an Veränderungen in der 3.x-Serie gab.

Język angielski:

Chcemy opublikować wersję 3.x w dłuższej perspektywie, ale jest to proces przeciągający się, ponieważ w serii 3.x było wiele zmian.

Jython - Python in der Java-Welt [Pirates of the JVM] , JAXenter, 12.04.2017.

obrabować
źródło
Świetne znalezisko! Byłem pewien, że to pytanie musiało zostać gdzieś zadane , ale brakowało mojego Google-fu. :)
Adam Paynter
5
Zostało to opublikowane ponad 2 lata temu i wciąż brakuje wyszukiwań. Wygląda na to, że Jython 3 nie jest nigdzie poza głowami deweloperów.
anon58192932
10
Ponad 5 lat później Jython 2.7 jest niedostępny .
gerrit
2
W niemieckim wywiadzie udzielonym Frankowi Wierzbickiemu z kwietnia 2017 r. Stwierdza, że ​​„w dłuższej perspektywie chcemy opublikować wersję 3.x, ale jest to długotrwały proces”. jaxenter.de/jython-jvm-pirates-52427
Marco Eckstein
1
@MarcoEckstein: Dziękuję za zwrócenie uwagi. Dodałem to do odpowiedzi.
sleske
49

Aktualizacja : 9 lat po pierwszym zadaniu pytania odpowiedź wydaje się nie nadejść w najbliższej przyszłości . Najnowsze zatwierdzenie ma już ponad dwa lata (18 lipca 2017), a programiści twierdzą, że gałąź 3.x "odpoczywa" .


Moja pierwotna odpowiedź :

Pięć lat po zadaniu pytania odpowiedź nadal brzmi: „nadejdzie, ale ramy czasowe dla pierwszej publikacji nie są jeszcze jasne”.

Możemy powiedzieć, że teraz istnieje repozytorium jython3 przeznaczone dla języka Python 3.5. README.mdz dnia 28 maja 2015 r. mówi:

To repozytorium znajduje się na bardzo wczesnym etapie opracowywania wersji Jython 3.5. Planowane cele to zgodność języka i środowiska wykonawczego z CPythonem 3.5, a także stałe wsparcie ekosystemu Python.

Strona Jython FAQ stwierdza, że:

Trwają prace nad Jythonem 3.x.

Diego
źródło
6
@BhabaniSankarMishra patrząc na historię zatwierdzeń, jest trochę żywa github.com/jython/jython3/commits/master, ale nie liczyłbym na to, że Jython 3 zostanie oficjalnie wydany w najbliższym czasie.
Diego
3
Wygląda na konającego. Brak zobowiązań od 18 lipca 2017 r. Smutne.
mzjn
2
Zobacz też github.com/jython/jython3/issues/36 . Frank Wierzbicki napisał 1 marca 2018 roku: „Jython3 jest bardziej zablokowany niż martwy”. Jeff Allen napisał 18 kwietnia 2019 r .: Nie umarło, odpoczywa ”
mzjn
5

Proponuję poszukać gdzie indziej interpretera Pythona 3 w JVM.

Projekt GraalPython ( https://github.com/graalvm/graalpython ) wygląda obiecująco. Jego istnienie ma dobre uzasadnienie, mówiąc w zasadzie: „Wspierajmy obliczenia naukowe i analizę danych w Pythonie, co oznacza np. Numpy, w tym moduły kodu natywnego, i uczyńmy go szybkim i interoperacyjnym”.

Jython, nie tak bardzo, w tym momencie.

user7610
źródło
Ale z drugiej strony ogromna różnica polega na tym, że kod intensywnie wykorzystujący procesor wykorzystujący obiekty, których nie można serializować, musi pozostać jednowątkowy, jak w przypadku Cpythona (Jython jest mniejszy).
user2284570
Pokrótce sprawdziłem i rzeczywiście wygląda na to, że GIL jest obecny w GraalPython. Zobaczmy, jaka będzie odpowiedź na komentarz github.com/oracle/graalpython/issues/180#issuecomment-754315123 ; P
user7610
Jestem autorem komentarza. Dlatego wydajność wątku jest nadal podstawowym powodem wyboru procesora (a zatem konieczności pozostania przy Intel abi zamiast longsun lub arm). Z powodu złej decyzji projektowej w języku. Potrzebuję Pythona3, a obiekty, których używam, nie mogą być serializowane, co oznacza, że ​​potrzebna jest implementacja Pythona w Pythonie3 bez gil (lub uczynienie jej opcjonalną).
user2284570