2009-12-07 16 views

Odpowiedz

24

Cytowanie Wikipedia:

Jython, następca JPython, to implementacja języka programowania Python napisany w Javie.

chodzi o to, co używa może mieć:

programy Jython mogą bezproblemowo importować i używać dowolnej klasy Java. Z wyjątkiem niektórych standardowych modułów, programy Jython używają klas Java zamiast modułów Pythona.

Pomiary wydajności Jython, IronPython i CPython pokazują, że zarówno Jython, jak i IronPython przewyższają CPython w niektórych przypadkach z dużymi zbiorami danych.

+5

Jython nie kompiluje się do kodu bajtowego w ten sam sposób, w jaki robi to Java. Kod bajtowy wykonuje wszystkie wspaniałe, dynamiczne środowisko wykonawcze, które robi CPython, więc jest znacznie wolniejszy niż Java. – orip

3

Jython to implementacja Pythona, która działa na JVM. Teoretycznie Jython jest nieco wolniejszy, niż CPython.

można znaleźć odniesienia tutaj: http://www.smallshire.org.uk/sufficientlysmall/2009/05/22/ironpython-2-0-and-jython-2-5-performance-compared-to-python-2-5/

+1

Kolejny artykuł jest również interesujący: http://www.smallshire.org.uk/sufficientlysmall/2009/05/22/ironpython-hammers-cpython-when-not-mutating-class-attributes/ –

+0

Teraz wiemy, że Jython jest asymptotycznie szybszy niż CPython w niektórych testach porównawczych. – u0b34a0f6ae

0

JVM ma jakieś fajne dynamiczną optymalizację, ale to chyba nic ekscytującego. JRuby czasem działa szybciej na JVM (http://www.engineyard.com/blog/2009/j-is-for-jvm-why-the-j-in-jruby/) przez optymalizację ścieżek kodu, które działają dużo, ale to Ruby, nie Python.

Biblioteki Java są głównym powodem. Wiele firm ma duże globusy kodu Java, które można skryptować za pomocą Pythona. Jest też kilka frameworków open source (myślę o Struts i Eclipse), które możesz napisać z Jythonem.

6

Kiedy będę potrzebować Jython?

Jeśli chcesz programować w języku Python, ale potrzebujesz (lub chcesz), aby wynik działał na wirtualnej maszynie Java lub użyj istniejących komponentów Java.

Jakie są wady.

Jython może nie być w 100% kompatybilny z Pythonem, jednak każda niezgodność będzie uważana za błąd. Jeśli później chcesz/musisz uruchomić na CPython, każdy kod, który używa komponentów Java, będzie musiał zostać przepisany.

Zakładam, że jest wolny?

To zależy, jak zawsze, od konkretnego zastosowania. W niektórych przypadkach może być szybszy niż CPython; i oczywiście zależy to od konkretnej wirtualnej maszyny wirtualnej, którą uruchamiasz - są coraz lepsze.

3

Kiedy będę potrzebować Jython?

Na przykład, aby dodać ładny kod języka do kodu.

Jakie są wady?

Główną wadą jest to, że Jython pozostaje w tyle za oficjalną dystrybucją CPython. Obecnie możesz pobrać wersję Jython zgodną z Pythonem 2.5.2, a CPython - 3.1.

Również niektóre moduły ezoteryczne nie są obsługiwane. Zazwyczaj nie zauważysz i/lub nie będziesz w stanie łatwo znaleźć zastępstwa Javy.

Zakładam, że jest wolny?

W porównaniu do czego? Zwykle jest albo wystarczająco szybki, albo, gdy nie jest, możesz zamienić kilka linii Pythona na około 1 000 linii znacznie szybszej Javy.

3

Dwa inne powody:

  • Osadzanie skryptów do dużych aplikacji Java.
  • Używaj wątków Java do pisania wielowątkowych programów w języku Jython.
1

Kiedy będę potrzebował Jython?

Możesz pisać skrypty administracyjne dla serwera aplikacji Websphere za pomocą Jython. Skrypty są używane do automatyzacji typowych zadań administracyjnych i konfigurowania zabezpieczeń na serwerze aplikacji Websphere.

WebSphere wykorzystuje interfejs API JMX do tworzenia komponentów MBean, które są udostępniane jako interfejs API dla wewnętrznych obiektów WebSphere. Ponieważ skrypty Jython oparte są na Javie i działają na maszynie JVM, mogą uzyskać dostęp do tych obiektów i mogą być wykorzystywane do konfigurowania WebSphere.

Poza tym fajnie jest napisać kod w języku Jython i nauczyć się nowego języka.

Here is the details

0

Kiedy będę potrzebował Jython?

Potrzebuję Jython do testowania sterowników JDBC. Niektóre aplikacje, z których korzystam, korzystają z ODBC, inne korzystają z JDBC. Przy użyciu Jython mogę przetestować oba typy sterowników z jednego źródła Python (aby przetestować ODBC używam mostu JDBC-ODBC).

7

Jeśli znasz Python i kupiłeś w "pythonic" sposób robienia rzeczy, to Jython pozwala ci przynieść tę filozofię do stosu JVM. Jeśli to zrobisz, będzie to znacznie więcej niż tylko dodawanie skryptów.

W naszych najnowszych projektach cała logika niestandardowa i biznesowa została zbudowana w Jython, a jednocześnie możemy wykorzystać niektóre z wypróbowanych i przetestowanych bibliotek Java, takich jak Solr, Jasperreports, Quartz, Jetty, Velocity, aby nadać nazwę mało.

Zostaje skompilowany do kodu bajtowego, jednak dodawana jest dodatkowa warstwa, ale nie różni się od użycia ORM zamiast prostej JDBC na przykład.

To, co zyskujesz na wydajności, znacznie waży maleńkie straty w wydajności.

Po stronie serwera Jython rzadko jest wąskim gardłem. W przypadku małych aplikacji komputerowych mogą występować problemy, ale w dużym stopniu zależą od tego, co próbujesz zrobić.

Najnowsze JDK wraz z kontenerami takimi jak Jetty lub Tomcat są bardzo dojrzałe i stabilne, dodając w wielu przypadkach Pythona, w wielu przypadkach daje to, co najlepsze z obu światów.

+0

Dobra odpowiedź. Mam istniejącą aplikację Java i chcę wykonać pewne przetwarzanie plików, co może być uciążliwe w Javie. Czy użycie Jython może pozwolić mi na parsowanie za pomocą składni pythona (file.read(), list.split() itd.)? –