Java - uniwersalny język programowania

Za pomocą języka programowania Java, opracowanego przez SunSoft (filia Sun Microsystems), można upiększyć stronę Web przez dodanie jej dźwięku, animacji i innych elementów multimedialnych. Jednakże twórcy języka Java nie tylko to mieli na celu.

Za pomocą języka programowania Java, opracowanego przez SunSoft (filia Sun Microsystems), można upiększyć stronę Web przez dodanie jej dźwięku, animacji i innych elementów multimedialnych. Jednakże twórcy języka Java nie tylko to mieli na celu.

Niedawno wypuszczony zestaw narzędzi do opracowania aplikacji i obiecane w niedalekiej przyszłości dodatkowe pakiety typu middleware, do obsługi komunikacji, umożliwiają wykorzystanie tego języka do tworzenia uniwersalnych aplikacji, łatwo przenoszonych na różne platformy sprzętowe oraz systemowe i dystrybuowanych za pośrednictwem architektury Web.

Java - na różnych etapach rozwoju - dostępna jest obecnie na platformach Sun Solaris, Windows 95, Windows NT i . SunSoft opracował nowy zestaw Workshop do opracowania aplikacji w języku Java, mający charakter przeglądarki Web, dający jednak typowe możliwości środowisk do opracowania aplikacji - wstawianie punktów przerwania programu, zmianę wartości zmiennych i przeglądanie klas obiektów.

Przeznaczony jest zarówno dla doświadczonych programistów, jak i początkujących użytkowników.

W pierwszym kwartale 1996 r. SunSoft zamierza włączyć system Java do swej pośredniej warstwy oprogramowania komunikacyjnego (middleware) Network Object Environment (NOE), umożliwiając tym samym korzystanie z niej w takich technologiach obiektowych, jak Common Object Broker Architecture (CORBA).

Jeśli ograniczyć się do jej obecnych możliwości, to za pomocą języka Java można zrobić znacznie więcej niż tylko tworzyć strony HMTL (HyperText Markup Language). Kim Polese, odpowiedzialny w SunSoft za opracowanie języka Java i przeglądarki Hot Java, mówi że Java to następca języka C++, o większych możliwościach i łatwiejszego w użyciu.

Java jest to w pełni obiektowy, elastyczny i rozszerzalny język , za pomocą którego, podobnie jak za pomocą C i C++, można tworzyć zarówno najprostsze aplikacje (sławne "Hello, world"), jak i zaawansowane programy typu klient/serwer.

Prostota użycia

W stosunku do C++, Java jest prostsza w użyciu i zawiera pewne rozszerzenia ułatwiające życie programistom. Na przykład zniknęło pojęcie wskaźnika (pointer), które tyle kłopotów sprawia zarówno początkującym, jak zaawansowanym programistom. Przy złym korzystaniu ze wskaźników następuje bowiem zniszczenie zawartości obszarów pamięci poza zakresem zdefiniowanych zmiennych. Programista może teraz swobodnie korzystać z tablic, bez obawy przekroczenia jej granic. Nie ma już także potrzeby zwalniania eksplicite zajmowanych obszarów pamięci: gdy zmienna, tablica czy funkcja przestaje żyć, obszar przez nią zajmowany jest automatycznie zwracany do wolnej przestrzeni pamięciowej.

Automatyczne zarządzanie pamięcią jest dużą zaletą języka Java, gdyż programista tworzy programy o wiele bardziej niezawodne w działaniu, niż za pomocą C/C++. Nie ma już obawy "padnięcia" systemu z powodu przekroczenia dopuszczalnych obszarów pamięci.

Interpretowany program

Ponieważ język Java i napisane w nim programy mają być przenośne między różnymi platformami sprzętowymi bez żadnych zmian, to nie mogą one być przenoszone w postaci skompilowanej. Java zawiera tzw. "wirtualną maszynę", dokonującą na bieżąco interpretacji programu na dowolnym sprzęcie, na którym ta maszyna jest dostępna. Obecnie takie wirtualne maszyny Java zawiera przeglądarka Weba Hot Java i Netscape Navigator 2.0. SunSoft przewiduje dostarczanie samodzielnych maszyn wirtualnych do wszystkich środowisk, na których ma działać Java.

Wadą interpretacji kodu jest jednak mała szybkość wykonania programów w języku Java. Przykładowy interpretowany Smalltalk lub LISP wykonuje programy od 20 do 100 razy wolniej, niż wykonują się te same programy po kompilacji. Maszyny wirtualne Java powodują ok. 20-krotne zmniejszenie szybkości wykonania w porównaniu z programami napisanymi w C/C++.

Maszyna wirtualna Java na szczęście nie jest w pełni interpreterem kodu. Dokonuje ona dynamicznej kompilacji i optymalizacji kodu przy pierwszym przejściu przez maszynę. Oznacza to, że wszystkie pętle i podprogramy wykonują się prawie tak samo szybko jak w wersji kompilowanej. SunSoft rozważa możliwość dostarczenia w przyszłości kompilatorów kodu Java, co dałoby programom taką szybkość jak mają programy napisane w C/C++ i skompilowane.

Samodzielne programy

Gdy dostępne będą samodzielne maszyny wirtualne (poza dostępnymi obecnie maszynami w przeglądarkach Hot Java i Navigator) i kompilatory kodu Java, programiści będą mogli tworzyć całkowicie samodzielne programy, nie związane z Webem. Jednakże łatwość użycia języka Java i dostępność przeglądarek zawierających maszynę wirtualną Java zachęci zapewne do tworzenia wewnątrz korporacji własnych sieci Web (tzw. Intranet, w odróżnieniu od zewnętrznego Internetu).

Zanik systemów operacyjnych?

Jeżeli przeglądarki ze zintegrowaną maszyną wirtualną Java staną się powszechnie dostępne, nie ma potrzeby odwoływać się do specyficznych właściwości systemu operacyjnego: każdy program napisany w języku Java będzie działał tak samo, niezależnie od tego, pod jakim systemem operacyjnym jest uruchamiany. Oznaczać to może zmniejszenie roli systemu, a w końcu jego zanik - przynajmniej z punktu widzenia użytkowników aplikacji.

Od czego zależy sukces?

Przypomnijmy, że sukces systemu operacyjnego DOS i maszyn PC bynajmniej nie wynikał z ich niesłychanych właściwości, łatwości użycia czy uniwersalności. Jak w większości przypadków nowych systemów, sukces zależy od dostępności aplikacji, które wszyscy będą chcieli mieć. W przypadku DOS taką aplikacją był arkusz obliczeniowy VisiCalc; w przypadku Windows był to Excel. Nie udało się stworzyć takiej "szałowej" aplikacji w znakomitym systemie operacyjnym (i komputerze) NeXT, mimo iż z punktu widzenia programisty system NeXT był najlepszym środowiskiem do opracowania aplikacji.