publikuj: Opublikuj w wykop.pl Opublikuj we flaker.pl Opublikuj na OSnews.pl Opublikuj w delicious wydrukuj
13 skomentuj »

TAGI: jvm , jython , python , java , programowanie

2009-07-03 03:23  |  Jan Koprowski

Jython: czyli piękno Pythona i możliwości Javy

Jython: czyli piękno Pythona i możliwości Javy

Początkowo Python został napisany w języku C. Gwarantowało to niewątpliwie wydajność. Dziś możemy korzystać z wielu innych implementacji napisanych dla różnych platform programistycznych: IronPython - język, którego środowiskiem docelowym jest środowisko .NET, PyPy – implementacja Pythona w Pythonie czy lolPython będący pythonową wariacją LOLCODE. Jedną z nich jest również Jython – napisany w 100% w języku Java. Przyjrzyjmy się mu dzisiaj trochę bliżej i zapoznajmy z możliwościami tego rozwiązania.

Java: mocne strony

Aby zrozumieć, skąd wziął się pomysł zaimplementowania Pythona w języku Java, musimy przyjrzeć się bliżej samej Javie. W przeciwieństwie do silnie statycznego C – Java jest jego fantastycznym, znacznie bardziej dynamicznym następcą. Dokładniej rzecz ujmując „następcą” języka C++.

Jako język obiektowy posiada bardzo elastyczne i rozbudowane klasy typów podstawowych, dynamiczną alokację pamięci, z garbage collectorem, który zwalania nas z odpowiedzialności zarządzania nią (jak to się dzieje w C czy C++). Dzięki temu Java staje się bardzo przyjaznym środowiskiem dla programistów, a wprowadzone przez firmę Sun unowocześnienia zaimplementowane w maszynie wirtualnej zbliżają ją wydajnością do swojego kompilowanego prarodzica.

W niektórych przypadkach Java okazuje się nawet bardziej wydajna. Choć nieprzystosowana do tworzenia systemów czasu rzeczywistego, jako alternatywa dla C++, znacznie upraszcza życie programiście oraz oddaje mu do dyspozycji dobrze udokumentowane, wygodne w użyciu i wszechstronne biblioteki do tworzenia aplikacji zarówno desktopowych jak i sieciowych.

 

Co Jython odziedziczył po Javie?

Pierwsza rzecz to zarządzanie pamięcią. Jython nie musiał implementować własnoręcznie garbage collectora. Korzysta z tego zaimplementowanego w maszynie wirtualnej wykorzystywanej przeż Javę. Posiada ona kilka świetnie zaprojektowanych, bardzo inteligentnych i wydajnych algorytmów, co czyni z niej fantastyczne narzędzie stojące na straży zarządzania pamięcią, zdejmujące ten obowiązek z barków programisty.

Java, a może raczej JVM (Java Virtual Machine), bo ciężko to czasami rozgraniczyć, zostało również wyposażone w technologię mającą przyśpieszyć wykonywanie się bytecodu. Mowa o Just In Time (JIT). Działanie tego mechanizmu polega na kompilowaniu "w locie" tylko i wyłącznie bytecodu, który jest w danym momencie potrzebny do działania aplikacji. Dzięki temu kod, do którego nigdy nie nastąpiło odwołanie, taki jak: niewykorzystywane opcje programu, obsługa błędów - nie będzie zajmował pamięci i czasu procesora, nigdy nie zostanie skompilowany o ile nie będzie potrzebny.

Każdy, kto zagłębiał się choć odrobinę w języki programowania tworzone na maszynach wirtualnych, wie iż następuje tutaj niejako separacja: wydajności, której ciężar spoczywa na maszynie wirtualnej, i składni, która dotyczy języka i stara się zapewnić wygodę programiście. Tak jest w naszym przypadku.

«poprzednia 1 2 3 4 ... 8 następna »

publikuj: Opublikuj w wykop.pl Opublikuj we flaker.pl Opublikuj na OSnews.pl Opublikuj w delicious wydrukuj
13 skomentuj »

Polecamy

Reklama

Komentarze

  • eXt

    #1 eXt 2009-07-03 09:00:50 0

    Python rulez :D. Tylko gdzie się podziały wcięcia w przykładach?

    IP: 89.248.165.[...] Mozilla/5.0 (X11; U; Linux i686; pl-PL; rv:1.9.0.11) Gecko/2009060308 Ubuntu/9.04 (jaunty) Firefox/3.0.11 X-FirePython/0.1

  • btw

    #2 btw 2009-07-03 09:57:47 0

    może się czepiam, ale chyba chodzi o Groovy a nie o Groove(?) - vide ostatnia strona

    IP: 195.20.110.[...] Opera/9.80 (Windows NT 5.1; U; en) Presto/2.2.15 Version/10.00

  • mikro

    #3 mikro 2009-07-03 10:09:38 0

    i pewnie o Clojure, nie o Clojrue(?)

    IP: 81.210.71.[...] Opera/9.64 (X11; Linux i686; U; en) Presto/2.1.1

  • Secator

    #4 Secator 2009-07-03 10:42:16 0

    Jak się wymawia "Jython" ? Tak jak sie pisze?:)

    IP: 213.134.186.[...] Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/530.5 (KHTML, like Gecko) Chrome/2.0.172.33 Safari/530.5

  • :-)

    #5 :-) 2009-07-03 11:55:58 0

    Chyba "dżyton".

    IP: 83.23.133.[...] Opera/9.64 (Windows NT 5.1; U; pl) Presto/2.1.1

  • Ris

    #6 Ris 2009-07-03 14:11:09 0

    Bardzo dobry artykuł, cieszy ciągła obecność na tym portalu języka Python.

    IP: 195.205.141.[...] Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.11) Gecko/2009060308 Ubuntu/9.04 (jaunty) Firefox/3.0.11

  • hipertracker

    #7 hipertracker® 2009-07-03 14:30:55 0

    Redakcja portalu powinna coś zrobić z tym koszmarnym wyświetlaniem źródeł kodu. Sugerowałbym użycie np. http://alexgorbatchev.com/wiki/SyntaxHighlighter (ładny, nieiwazyjny JS który wpina się do tagów

    , używam go od jakiegoś czasu na blogu, polecam)

    Jython wymawia się dżajton, tak jak Python czyta się pajton.

    Faktycznie powinno być Clojure, w tekście jest literówka.

    Jest też błąd merytoryczny. Clojure to nie język skryptowy i nie można go stawiać w jednym rzędzie z Groovy (już prędzej z Scalą). Clojure to dialekt Lispa dla JVM, to język dynamicznie typowany i kompilowany. I jest bardzo wydajny (tak jak core Java), bo korzysta z bibliotek Javy w sposób bezpośredni, bez wrapperów które używa Jython (czy JRuby, bo tam jest podobnie).  Clojure jest dużo potężniejszym językiem niż Jython, ale też bardzo się różni od Javy i innych języków mających korzenie (czy źródło inspiracji) w starym C/C++.

    IP: 193.95.179.[...] Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_7; en-us) AppleWebKit/530.18 (KHTML, like Gecko) Version/4.0.1 Safari/530.18

  • pico

    #8 pico 2009-07-03 17:25:46 0

    Finalna wersja Jythona 2.5 jest już dostępna od kilku tygodni - http://wiki.python.org/jython/.

    IP: 83.10.175.[...] Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.0.11) Gecko/2009060215 Firefox/3.0.11

  • arminwe

    #9 arminwe® 2009-07-04 03:06:57 0

    Hej, tekst dla programistów, a chyba trzy strony pokazujące ekraniki z instalacji - to schizofrenia czy wierszówka?

    IP: 89.74.169.[...] Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.0.11) Gecko/2009060215 Firefox/3.0.11

  • jankoprowski

    #10 Jan Koprowski® 2009-07-04 09:02:22 0

    @btw:

    Jednak Groovy

    @Jarek:

    Dzięki za sprostowanie. Wysłałem już zmiany do redakcji

    @arminwe

    Miły odzew :] w kolejnych artykułach obiecuję bardziej docenić poziom czytelników :)

    IP: 87.207.101.[...] Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/530.5 (KHTML, like Gecko) Chrome/2.0.172.33 Safari/530.5

  • dcd

    #11 dcd 2009-07-04 10:53:58 0

    Może jakiś przykład apletu w jythonie?

    IP: 79.163.153.[...] Mozilla/5.0 (X11; U; Linux i686; pl-PL; rv:1.9.0.11) Gecko/2009060310 Ubuntu/8.10 (intrepid) Firefox/3.0.11

  • jankoprowski

    #12 Jan Koprowski® 2009-07-04 18:11:35 0

    @dcd

    W artykule w oryginalne była informacja o przykładowym aplecie jednak z jakiś przyczyn zniknęła. Wysłałem już odpowienią prośbę do redakcji.

    IP: 87.207.101.[...] Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; MS-RTC LM 8; InfoPath.2)

  • pytaniedoautora

    #13 pytaniedoautora 2010-12-10 15:02:19 0

    od kiedy swt daje aplikacji mozliwosc wygladania jak natywna aplikacja?

    IP: 178.73.29.[...] Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/534.10 (KHTML, like Gecko) Chrome/8.0.552.215 Safari/534.10

Uwaga! Możesz zarejestrować się w serwisie i w ten sposób zarezerwować swój nick oraz ominąć konieczność ciągłego odczytywania wyrazów.

Aby dodać komentarz, musisz podać swój nick, treść komentarza oraz poprawnie przepisać oba słowa z obrazka (słowa muszą być rozdzielone spacją).
W treści komentarza można używać języka formatowania BBcode.

Polecane książki

Czytaj Webhosting

Chcesz być na bieżąco z naszymi informacjami? Zapisz się na Newsletter.

Zarejestruj domenę

Sprawdź dostępność swojej domeny:

.pl: 0 zł   .com: 19.90 zł
.com.pl: 0 zł   .eu: 19.90 zł