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.
| P | W | Ś | C | P | S | N |
|---|---|---|---|---|---|---|
| « września | listopada » | |||||
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 | |
RSS feed komentarzy tego posta · TrackBack URI
Zostaw odpowiedź