Sieciowe ziarno i zaćmienie
- Tomasz Kopacz,
- 12.05.2003
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
Eclipse był od początku projektowany jako szkielet umożliwiający tworzenie specjalizowanych środowisk IDE
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).