Język, o którym się mówi

Od pewnego czasu głośno o Javie - nowym obiektowym języku programowania, którego zastosowanie ściśle związane jest z rozwojem Internetu. Większość dużych producentów narzędzi programistycznych i gotowych aplikacji zapowiada stosowanie Javy. Wygląda na to, że jesteśmy świadkami powstania nowego standardu uniwersalnego języka programowania.

Od pewnego czasu głośno o Javie - nowym obiektowym języku programowania, którego zastosowanie ściśle związane jest z rozwojem Internetu. Większość dużych producentów narzędzi programistycznych i gotowych aplikacji zapowiada stosowanie Javy. Wygląda na to, że jesteśmy świadkami powstania nowego standardu uniwersalnego języka programowania.

Java, opracowana na bazie języka C++, jest dziełem firmy SUN. Język ten jest przeznaczony głównie do pisania tzw. appletów - programów, które mogą być przesyłane z serwerów do klientów pajęczyny WWW i tam uruchamiane. Dzięki temu do każdej strony WWW można podpinać różnorodne obiekty, także multimedialne. Możliwości zastosowań Javy są jednak znacznie bogatsze - w tym języku można tworzyć także samodzielne aplikacje.

Kompilacja vs interpetacja

Języki programowania można podzielić na interpretowane, czyli tłumaczone na odpowiednie instrukcje procesora na bieżąco w czasie wykonywania programu, oraz kompilowane - które są transformowane na kod maszynowy jeden raz, przed wykonaniem programu, w procesie kompilacji.

Java łączy oba te podejścia. Program napisany w niej najpierw jest kompilowany, jednak nie do postaci wykonywalnej bezpośrednio na danym komputerze, tylko na ciąg tzw. bytecodes. Jest to program częściowo przetłumaczony, przygotowany do wykonywania przez interpreter. Główną zaletą takiego rozwiązania jest uniwersalność, dzięki której uzyskany kod pośredni jest niezależny od docelowej platformy sprzętowej i systemu operacyjnego.

Wadą jest konieczność uruchamiania odpowiedniego interpretera, zwanego Java virtual machine, który odczytuje tak przygotowany kod i wykonuje go na konkretnym komputerze. W taki moduł interpretera wyposażone są nowe wersje znanej przeglądarki WWW - Netscape Navigator (począwszy od wersji 2.0b2). Interpreter jest też dostępny jako samodzielny program, ale jak na razie tylko dla systemów Solaris i Windows95 (istnieje też wersja dla Linuxa, ale jest ona "nieoficjalna", SUN nie bierze za nią żadnej odpowiedzialności).

Inną słabą stroną interpretowania i chyba największą obecną wadą Javy, jest daleko wolniejsze wykonywanie programu w porównaniu do skompilowanego. Programy w Javie wykonują się kilkanaście razy wolniej niż w C++ i skompilowane do postaci maszynowej. Jako język interpretowany, Java jest porównywalna do Perlu, SmallTalku czy też (stanowiącego potencjalną konkurencję) języka Python.

Applet czy Aplikacja?

Java często kojarzona jest jedynie z programami uruchamianymi pod przeglądarkami WWW. Niesłusznie, w Javie można tworzyć dwa rodzaje programów: Applety, które nie mogą być uruchamiane samodzielnie, ale wymagają umieszczenia ich na stronie WWW i współpracy z odpowiednią przeglądarką, albo samodzielne aplikacje, które mogą być potem uruchamiane przy użyciu zewnętrznego interpretera (do tej pory jedynie w systemie Solaris oraz Windows95). To drugie zastosowanie daje dodatkowe możliwości - tworzenie elementów graficznych typowych dla okienkowych aplikacji (np. rozwijalnych menu) czy dostęp do plików na lokalnym dysku.

Java vs C++

W grupie dyskusyjnej USENET dotyczącej Javy (comp.lang.java) często pojawiają się dyskusje na temat - "Czy Java zastąpi C++". Niewątpliwie Java zawiera dużo ulepszeń w stosunku do C++, przede wszystkim jest językiem niezależnym od platformy sprzętowej, co znakomicie ułatwia przenoszenie programów między systemami. Ponadto ma wbudowane bardzo proste w użyciu mechanizmy obsługi sieci i interfejsu użytkownika. Dzięki temu programowanie w Javie jest znacznie prostsze niż w C++, przykładowo - nawiązanie połączenia TCP do innego komputera, to w Javie dwie instrukcje, podczas gdy w C++ wymaga to napisania kilkudziesięciu linii kodu. Bardzo dobrze jest też w Javie opracowane zarządzanie pamięcią operacyjną - odzyskiwanie pamięci jest przeprowadzane automatycznie, w momencie gdy przestaje ona być wykorzystywana przez program.

Z drugiej strony jednak programy w Javie przypuszczalnie nigdy nie będą szybsze od pisanych w C++. Co prawda Sun zapowiedział wypuszczenie w lecie tego kompilatora do Javy, jednak programy pisane w tym języku mają wbudowane sprawdzanie zakresu przy odwołaniach do tablic czy też automatyczne odzyskiwanie pamięci (tzw. garbage collector).

Można sądzić, że Java i C++ nie stanowią dla siebie groźnej konkurencji. Oba języki mają oddzielne obszary zastosowań, które tylko w niewielkim stopniu się pokrywają. W przypadku programów "ogólnosieciowych", takich jak applety, Java okazuje się lepsza, głównie przez swoją uniwersalność i prostotę.

Natomiast w przypadku programów, w których szybkość odgrywa krytyczną rolę i ważne jest dokładne dopasowanie programu do bazy sprzętowej, tam C++ oraz "klasyczne" C długo jeszcze pozostaną liderami.

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200