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 »
Polecamy
Reklama
Komentarze
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.
Popularne
Pobierałeś pirackie pliki? Uważaj! Kontrole antypirackie w domach użytkowników to codzienność
31
Pobieraczek.pl pozwie internautów, którzy nie chcą płacić abonamentu
1455
Debata w sprawie ACTA: internauci spodziewali się chyba czegoś innego
14
Wynalazca WWW przed sądem: walczy tam o wolny dostęp do webowych technologii dla każdego
8
PHP 5.3.9 nie pozwoli hakerom zawiesić serwera. Pozwoli za to przejąć nad nim kontrolę
28
Programowanie w środowisku Android – wprowadzenie do projektowania aplikacji dla urządzeń mobilnych
15
Internet w EU bez Facebooka i Google? Firmy nie mają wyboru: albo się dostosują, albo…
10
MSWiA zamówiło narzędzia do „złamania” Tora i podsłuchiwania internautów. Czy złamało przy tym prawo?
89
[Aktualizacja] Facebook zablokował Demotywatory.pl. W czym zawiniły?
36
FBI zamknęło Megaupload. Anonimowi dali się sprowokować. Teraz ich akcja uzasadni potrzebę SOPA?
17
Pobieraczek.pl pozwie internautów, którzy nie chcą płacić abonamentu
1455
Programowanie w środowisku Android – wprowadzenie do projektowania aplikacji dla urządzeń mobilnych
15
„Donald matole, twój rząd dopadną kibole” – hakerska elita przyłącza się do walki z ACTA
23
Klamka jeszcze nie zapadła. Minister prosi Donalda Tuska, by wstrzymał się z podpisywaniem ACTA
24
Społeczność
slawek22 @WebDev:
Te korporacje i "twórcy" starej daty których tak bronisz nie...
darekp @eimi, a co za różnica między zdobytym pieniędzmi a nie? Spróbuj zdobyć...
Jan "Tablet, na którym można uruchomić prawdziwe Microsoft Office, ładnie...
Maciekkkk Strona nie działa!
WebDev @eimi®
Zdobyte inaczej niż pieniędzmi, czyli jak? Czy mógłbyś to rozwinąć...
eimi @Webdev, a ja jeszcze raz Ci powiem - to co zdobyte inaczej niż pieniędzmi...
sade Powodem dla którego klienci wybierają ten sklep jest ich niewiedza.
- gardius: Dobra hurtownia sportowa (1)
- gardius: Tanie książki gdzie warto kupować? (1)
- Najdmen.pl: PROMOCJA, 500 DOMEN .EU ZA 1 PLN NETTO ! (1)
- VMLine: [Oferta] Serwery VPS Xen-HVM/OpenVZ z darmową administracją (2)
- Marek: Generowanie PDFa (2)
- Marek: problem z menu (2)
- Marek: Własne checkboxy w HTML,CSS (1)
Polecane książki
Praca
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ł |









#1 eXt 2009-07-03 09:00:50 0
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
#2 btw 2009-07-03 09:57:47 0
IP: 195.20.110.[...] Opera/9.80 (Windows NT 5.1; U; en) Presto/2.2.15 Version/10.00
#3 mikro 2009-07-03 10:09:38 0
IP: 81.210.71.[...] Opera/9.64 (X11; Linux i686; U; en) Presto/2.1.1
#4 Secator 2009-07-03 10:42:16 0
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
IP: 83.23.133.[...] Opera/9.64 (Windows NT 5.1; U; pl) Presto/2.1.1
#6 Ris 2009-07-03 14:11:09 0
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
#7 hipertracker® 2009-07-03 14:30:55 0
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
#8 pico 2009-07-03 17:25:46 0
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
#9 arminwe® 2009-07-04 03:06:57 0
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
#10 Jan Koprowski® 2009-07-04 09:02:22 0
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
#11 dcd 2009-07-04 10:53:58 0
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
#12 Jan Koprowski® 2009-07-04 18:11:35 0
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)
#13 pytaniedoautora 2010-12-10 15:02:19 0
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