PC – Komputerowy Internet
Just another Komputerowy Internet weblog

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

    Computer Arts! par Felipe CavalcanteJava: 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.

    Be Sociable, Share!

    RSS feed komentarzy tego posta · TrackBack URI

    Zostaw odpowiedź