Sieciowe ziarno i zaćmienie

Narzędzia open source do tworzenia aplikacji Java niewiele ustępują komercyjnym odpowiednikom. Prezentujemy porównanie dwóch najbardziej dojrzałych pakietów: Eclipse i NetBeans.

Narzędzia open source do tworzenia aplikacji Java niewiele ustępują komercyjnym odpowiednikom. Prezentujemy porównanie dwóch najbardziej dojrzałych pakietów: Eclipse i NetBeans.

Każdy producent narzędzi do tworzenia aplikacji Java - poza Bea - reklamuje swoje środowisko IDE jako "otwarte i łatwe w rozbudowie". W praktyce jednak inaczej pisze się rozszerzenia dla Sun One Studio/NetBeans, a inaczej dla IBM WebSphere Workshop/Eclipse. Twórcy narzędzi i dodatków integrujących się ze środowiskiem IDE mają więc twardy orzech do zgryzienia.

Eclipse

Sieciowe ziarno i zaćmienie

Eclipse był od początku projektowany jako szkielet umożliwiający tworzenie specjalizowanych środowisk IDE

IBM zainicjował w 1999 r. projekt Eclipse. Celem miła być unifikacja środowisk IDE dla wszystkich obiektowych języków programowania wspieranych przez IBM, przede wszystkim Smalltalk i Java. Prace nad Eclipse prowadziły te same zespoły, które pracowały nad serią narzędzi VisualAge. Status open source projekt uzyskał dopiero w grudniu 2001 r.

Eclipse właściwie nie jest środowiskiem IDE - to raczej szkielet (framework), który dzięki odpowiednim rozszerzeniom (plug-ins) staje się np. IDE dla Javy. Dokładnie w ten sposób powstał obecny pakiet IBM WebSphere Studio. Tak samo Eclipse posłużyło firmie XORed do opracowania pakietu przeznaczonego do tworzenia witryn za pomocą języka PHP.

Środowiskiem pracy programisty jest w Eclipse tzw. workbench, czyli swego rodzaju ekran pracy. Każdy taki ekran zawiera jedną lub więcej perspektyw, które z kolei składają się z zestawu widoków i edytorów dostosowanych do edycji określonego typu plików. Innymi słowy - do tworzenia w HTML wybiera się odpowiednią perspektywę zawierającą wszystkie widoki potrzebne do projektowania stron !WWW. Jeśli chce przeglądać repozytorium CVS, wybiera inną. Jeszcze inna służy do edycji kodu w Javie czy w C++.

Edytory w Eclipse mają dość rozbudowaną i uniwersalną strukturę. Pozwalają m.in. przechowywać oddzielnie kod i informacje dodatkowe, np. uwagi czy podpowiedzi do kodu, oznaczane określonymi symbolami graficznymi.

Każdy element perspektywy - od komponentów realizujących poszczególne funkcje, np. wykonanie kopii zapasowej projektu, aż po pełny edytor HTML - to w praktyce oddzielne rozszerzenie plug-in. Podstawowe zadania środowiska Eclipse to wczytanie i uruchomienie odpowiednich modułów rozszerzeń, będących zestawami klas Java opisanych w specjalnym manifeście, określającym zasady jego współpracy z pozostałymi rozszerzeniami.

Tworzenie rozszerzeń dla Eclipse ułatwia opracowana przez IBM biblioteka SWT (Standard Widget Toolkit), zawierająca wizualne komponenty typu przyciski, listy itp., podobnie jak AWT w standardowej Javie. Jednak w przeciwieństwie do ascetycznego wizualnie AWT biblioteka SWT wykorzystuje mechanizmy systemu operacyjnego, w którego środowisku działa. Dzięki temu SWT na Windows XP wygląda tak jak inne aplikacje Windows, a uruchomione pod GTK na Linuxie - tak jak inne aplikacje GTK.

Oprócz SWT, Eclipse wykorzystuje bibliotekę wyższego poziomu o nazwie JFace, która odpowiada za standardowe operacje w systemie GUI, takie jak obsługa czcionek, formatowanie tekstu, okna dialogowe, kreatory itp. JFace ma także bardziej zaawansowane komponenty, np. listy, drzewa i tabele. JFace może kontrolować przebieg pewnych określonych akcji i kojarzyć je w taki sam sposób z wieloma różnymi elementami interfejsu, np. przyciskiem, elementem menu i skrótem klawiszowym.

Eclipse oferuje kilka standardowych komponentów realizujących funkcje często spotykane w IDE. Komponent VCM odpowiada za integrację ze środowiskiem kontroli wersji CVS. Oddzielny komponent jest odpowiedzialny za współpracę z nadzorującym kompilację programów środowiskiem ANT. Jest nawet pewien abstrakcyjny odpowiednik debuggera, zawierający ogólną perspektywę przeznaczoną do śledzenia wykonywania dowolnego typu aplikacji. Zdefiniowano w nim kilka podstawowych okien, np. podglądy stosu czy wykonywania krokowego. Istnieje implementacja tego komponentu przeznaczona do śledzenia aplikacji w Javie, działająca jednak tylko wtedy gdy maszyna wirtualna obsługuje mechanizm JPDA (czyli specjalne interfejsy maszyny wirtualnej pozwalające na śledzenie wykonywanego kodu).


TOP 200