Zbliża się Jython 2.5

W rok po wydaniu Jythona 2.2 szykuje się kolejne wydanie tego środowiska — Jython 2.5. Jython to po prostu niezależna implementacja Pythona w Javie, w odróżnieniu od standardowej implementacji w C, zwanej “CPython”.

Celem Jythona 2.5 jest odzwierciedlenie możliwości Pythona 2.5 z użyciem parsera Antlr oraz asemblera (generującego kod bajtowy Javy). Dodatkowym celem tego wydania jest doprowadzenie Jythona do takiego stanu, aby był w stanie unieść popularne pythonowe “frameworki”, takie jak Django, Pylons, TurboGears czy Zope.

O bieżącym stanie prac nad nowym Jythonem pisze na swoim blogu Jim Baker.

żadnych reklam, sama wiedza.

Zarejestruj się na BEZPŁATNY NEWSLETTER i raz w tygodniu otrzymuj najważniejsze wiadmości
ze świata IT, nowych technologii i kryptowalut.

Bez reklam.

  1. Awatar jellonek
    jellonek

    huh. nie spodziewalem sie tak duzych zmian…

    gdyby w tej chwili udalo im sie uzyskac zgodnosc z 2.4 – bylbym pelen podziwu, a tu… ladne kwiatki…

    dluzszy czas sie nie przygladalem i taki prezent.

    jak ktos wygoogla jakies benchmarki w tym temacie – mozna prosic o linki ponizej w komentarzach?

    troche jeszcze zostalo do targetu, jakim jest zgodnosc z 2.5 cpythona, ale postep w przeciagu roku poczyniony – oslupia.

    1. Awatar kocio
      kocio

      Mnie tym bardziej zadziwia, że projekt przez lata praktycznie ledwo żył. =}

      1. Awatar jellonek
        jellonek

        frank wzial sie do roboty i efekty widac 😉

        mysle ze taki skok byl mozliwy glownie za sprawa tego, ze ogolnie java od jakiegos czasu jest usilnie dostosowywana do potrzeb stawianych przez jezyki dynamiczne…

        calosc "zamieszania" w tej sprawie rozpoczela sie od pracy tworcy ironpythona, ktory to chyba zapoczatkowal jythona, ale dopiero po tym jak "konkurencja" w postaci dotnietow "przeskoczyla" jave w tej kwestii – zespol suna nabral rozpedu i w tym kierunku.

        znowu widac, ze zdrowa konkurencja prowadzi do czegos dobrego 😉

  2. Awatar wojtekm
    wojtekm

    O ja pi@#&! Chyba się znowu przeproszę z Javą ;-).

  3. Awatar sprae
    sprae

    Czemu nikt nie pyta o wydajność? Czyżby taki sam niewypał jak jruby, gdzie ciągle się obiecuje, że w następnej wersji?

    1. Awatar mario
      mario

      Zrobiłem test jythona 2.2.1 pod javą 1.5 na Mac OS X. Program testowy liczy liczbę fibonacciego rekurencyjnie z 35.

      java -client + jython – 24s

      python 2.3.5 – 19s

      java -server + jython – 13s

      Jak widać już starsza wersja oferuje o wiele lepszą wydajność niż klasyczny interpreter pythona. Oczywiście w przypadku uruchomienia Javy z opcją -server, bo w tedy VM kompiluje jak najwięcej bytecode'u do kodu natywnego CPU.

      1. Awatar sprae
        sprae

        Mógłbyś użyć jakiegoś standardowego benchmarku pythonowego?

        1. Awatar mario
          mario

          Daj link do czegoś to użyje 😉

        2. Awatar mario
          mario

          Widzę, że już napisałeś w osobnym wątku …

      2. Awatar sprae
        sprae

        http://svn.python.org/projects/python/trunk/Tools…
        lub jesli masz czasu wiecej
        http://shootout.alioth.debian.org/

  4. Awatar sprae
    sprae

    np tego svn.python.org/projects/python/trunk/Tools/pybench

    albo jak masz wiecej czasu shootout.alioth.debian.org/

    1. Awatar Taeril
      Taeril

      Tak na szybko zabawa z tym pybench – http://wklej.org/id/e623788f71 – ale wyniki mogą być niemiarodajne szczególnie, że właśnie idę spać i jestem mało przytomny a musiałem "popsuć" skrypt, bo się pod jythonem wywalał.

      1. Awatar sprae
        sprae

        Bardzo dziękuję 🙂 I życzę dobrej nocy.

        1. Awatar sprae
          sprae

          Dołącze przy okazji wykresik http://pr0n.pl/~saper/python/pythonvsjython.jpg

        2. Awatar mario
          mario

          Uruchom jythona pod VM w trybie -server, ja zmodyfikowałem swój skrypt uruchamiający jythona i dodałem "-server" zaraz za wywołaniem polecenia java.

        3. Awatar jellonek
          jellonek

          http://wklej.org/id/e267a90d45

          masz zarowno z -server, jak i bez…

          musze przyznac ze bez rewelacji, takich wynikow sie spodziewalem sie…

        4. Awatar mario
          mario

          Ciekawe wyniki, faktem jest, że same obliczenia przez jythona są realizowane szybciej niż przez klasyczny interpreter (jak pisałem http://serwer22962.lh.pl/zbliza-sie-jython-25/#comment-12…. Wg. mnie warto poczekać na rozwój tego projektu, bo kompilacja zawsze daje lepsze rezultaty jeśli chodzi o prędkość niż interpreter.

        5. Awatar sprae
          sprae

          Mario: Zderzamy się tu z pewnymi faktami. Python, jak i Ruby to języki klejowe. Znakomicie się sprawdzają w połączeniu z binarnymi modułami. Owe języki są tym dla programu czym jest css dla html. Wprowadzanie ich do środowiska .net czy jvm nie ma takiego celu, aby ktoś w nich przetwarzał jakieś dane. To nieosiągalne.

          Owe języki mają zasadniczo ułatwiać tworzenie rozwiązań opartych na binarnych modułach. Przeca mało co jest tak proste jak pygtk (albo kiwi). To samo ma być w javie i .net. Jython nie zastąpi javy, ale za to pozwoli na łatwiejsze budowanie rozwiązań o nią opartych. W dynamicznych rozwiązaniach ze stajni Ms ma być jeszcze tak (w DLI), że będzie można do pythona zaimportować moduł napisany w js, albo ruby. I vice versa.

        6. Awatar mario
          mario

          @sprae: zgadzam się w 100%, choć moim zdaniem możliwe jest osiągnięcie wydajności Javy w pythonie czy rubym. Kwestia technologii. Java też kiedyś była powolna.

        7. Awatar sprae
          sprae

          Ciężko powiedzieć. Języki dynamiczne są całkien nieprzewidywalne i niestatyczne. Trzeba im zapewnic tablice hashujace albo całe szybkie drzewa, no i kod musi być raczej kompilowany w czasie rzeczywistym jako strumien bytecodu do vm. No ale jak powiedzial twórca IronRuby – "To tylko kolejna platforma".

          Pozdrawiam

        8. Awatar ak47
          ak47

          @mario

          do obliczeń gnumeric czy cośtam 🙂

  5. Awatar MichalK
    MichalK

    Jaki jest zysk z tej implementacji? Czy oznacza ona że mogę napisać program okienkowy w pythonie odpalany przez JRE javy???

    1. Awatar tomlee
      1. Awatar MichalK
        MichalK

        To fajna sprawa, polećcie jakis tutorial.

        1. Awatar jellonek
          jellonek

          przyklady masz w zrodlach…

          btw. google nie boli…

        2. Awatar MichalK
          MichalK

          Google nie poleca tylko znajduje.

  6. Awatar borizm
    borizm

    Przewaga Jython nad Python nie powinna dziwić (IMHO trochę mała ta przewaga) – z tego co pamiętam Python zatrzymuję się w kompilacjach na poziomie swojego bytecode, a JIT Java'owy kompiluje do maszynowego przy pierwszym użyciu, a może i obecnie ma prefetch.

    Tak swoją drogą to użyjcie do testów JRE/JDK 1.6 – jest czasami 2 razy szybsze niż JRE/JDK 1.5.

    1. Awatar jellonek
      jellonek

      uzywalem wlasnie jdk1.6 i przewagi jythona jakos nie zauwazylem, nawet po uzyciu przelacznika "-server"

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *