Koniec dekady z Javą

Przyglądając się historii języków programowania, widać, że nowe, innowacyjne języki pojawiają się co najwyżej dwa razy na dziesięciolecie. W tej dekadzie dominuje Java.

Przyglądając się historii języków programowania, widać, że nowe, innowacyjne języki pojawiają się co najwyżej dwa razy na dziesięciolecie. W tej dekadzie dominuje Java.

Większości informatyków Java kojarzy się ze sloganem: "Raz napiszesz, uruchamiasz wszędzie". Tymczasem jest to język o wyrafinowanych możliwościach i zaawansowanych właściwościach funkcjonalnych, ściśle zintegrowanych w projekcie języka. Oprócz Microsoftu, wszyscy wielcy producenci entuzjastycznie przyjęli Javę. IBM, Informix, Oracle i Sybase wbudowały maszyny wirtualne Java w motory swoich baz danych. Pozwala to na tworzenie aplikacji dla wszystkich systemów bazodanowych w jednym języku, który w połączeniu ze standardową wersją SQL umożliwia tworzenie aplikacji przenośnych.

W pełni obiektowa

Java jest w pełni obiektowa, czego nie można powiedzieć o C++ - najpopularniejszym obecnie języku programowania. Przejęła ona cenne cechy od Smalltalka - zarządzanie pamięcią przez automatyczne usuwanie nie używanych obiektów i klas oraz hierarchiczną strukturę bibliotek klas. Z języka C natomiast zaczerpnęła prostotę i zwartość składni. Pod względem właściwości obiektowych Java przewyższa poprzednie języki programowania obiektowego, oferując takie zaawansowane cechy, jak interfejsy, umożliwiające wielokrotne dziedziczenie podczas projektowania bez problemów z implementacją klas.

Java jest też jedynym językiem z wbudowaną obsługą wielowątkowości. W innych trzeba posługiwać się systemowymi mechanizmami obsługi wątków (jeśli system operacyjny je ma) lub pisać własną obsługę, której nie da się przenieść na inny system. Wielowątkowość jest szczególnie ważna w aplikacjach działających na serwerze. Wątek to "lekki" proces - otwarcie nowego wątku wymaga znacznie mniejszych zasobów systemowych niż otwarcie nowego procesu przy każdym zapytaniu klienta. Wielowątkowość poprawia skalowalność systemu.

Java zawiera również zaawansowane możliwości w zakresie obsługi sytuacji wyjątkowych, bezpieczeństwa, tworzenia aplikacji dla wielu języków i wielojęzycznych. Ma wbudowaną obsługę popularnych protokołów sieciowych Internetu: UDP, IP, TCP oraz oferuje gotowe klasy do obsługi protokołów HTTP, FTP i SNMP na poziomie aplikacyjnym.

Java rozproszona

Model przetwarzania rozproszonego Java jest unikatowy. Zdecydowanie różni się od modeli: DCOM (Microsoft), w którym stosowany jest protokół RPC do wywołania metody obiektu działającego na innej maszynie, oraz CORBA (konsorcjum OMG), w którym używany jest broker obiektowy do rozstrzygania, gdzie zostanie wykonana żądana operacja.

Java korzysta z obecności maszyny wirtualnej Java na każdej maszynie w sieci i posługuje się protokołem zdalnego wywoływania metod RMI do komunikacji ze zdalnymi obiektami. Gdy obiekt lokalny jest argumentem wywołania metody na zdalnym komputerze, następuje przesłanie całego obiektu (danych i kodu) do zdalnej maszyny wirtualnej, gdzie jest wykonywana metoda. Podobnie, gdy wynikiem zdalnej operacji jest obiekt, jest on kopiowany w całości do lokalnej maszyny. W Javie więc przesyła się nie tylko dane, ale również kod wykonywalny.

Korzyści takiego sposobu komunikowania się nie są zbyt oczywiste. Trzeba jednak pamiętać, iż pasmo dostępne dla użytkownika rośnie w mniej więcej takim tempie, jak szybkość procesorów i podwaja się co ok. 24 miesiące. Niedługo więc powszechne staną się sieci gigabitowe. Zapewnią one szybszy dostęp do zdalnych obiektów niż odczytanie ich z dysku lokalnego. Czy wtedy będzie potrzebny dysk lokalny? Na pewno przyda się spora moc obliczeniowa procesora do obsługi komunikacji sieciowej, działania maszyny wirtualnej Java i wykonywania obiektów, przesłanych z serwera.

Java i Microsoft

Microsoft nadal uważa Javę za kolejny język programowania, który ostro konkuruje z Visual Basikiem. Najważniejsza wada Javy, istotna zwłaszcza dla programistów VB, to trudność w opanowaniu jej obiektowych właściwości. Osoba programująca proceduralnie będzie musiała całkowicie zmienić podejście i styl programowania. Co gorsza, na niewiele przyda się doświadczenie zdobyte przy np. w VB. Jednakże właściwości funkcjonalne Javy są bez porównania większe niż VB.

Trzeba również wziąć pod uwagę dominujący obecnie styl nowych narzędzi programistycznych. Z uwagi na coraz bardziej odczuwalny brak wysoko kwalifikowanych programistów nowe narzędzia mają koncentrować się na składaniu aplikacji z gotowych komponentów. Do tego celu nie trzeba mieć kwalifikacji programistycznych na wysokim poziomie, potrzebna jest raczej dobra znajomość biznesu, trud budowania komponentów zaś zostaje profesjonalnym programistom. Mimo ogromnej liczby handlowych komponentów VB, nie mogą one równać się możliwościami funkcjonalnymi z obiektowymi komponentami Enterprise Java Beans (których również szybko przybywa).


TOP 200