Während der Konkurrent Eclipse das Licht öffentlicher Aufmerksamkeit genießt, muss sich die Java-Entwicklungsumgebung Netbeans mit der Strahlkraft des Namens Sun begnügen. Was zählt, ist das Ergebnis.
In den Anfangszeiten von Java waren die Entwickler weitgehend auf sich gestellt. Zum Kompilieren und Debuggen gab es nur Kommandozeilen-Tools, den Editor musste sie selbst beisteuern. Eine Emacs-Erweiterung [1] nahm dem Programmierer zwar einige Arbeit ab, aber es ist nicht jedermanns Sache, Emacs zu konfigurieren.
Zunächst versuchten kommerzielle Anbieter die Lücke zu füllen, ob IBM mit dem Visual Age for Java, Borland mit JBuilder oder Oracle mit JDeveloper. Diese Closed-Source-IDEs, von denen es nicht mal freie Testversionen gab, setzten praktisch nur Firmen ein.
1999 erkannte Sun, dass sich der Mangel an Entwicklungswerkzeugen negativ auf die Benutzerzahlen von Java auswirkt. Deshalb kaufte die Firma die Produkte Forte und Netbeans Developer X2 ein. Doch der Versuch, die beiden Produkte zusammenzuführen und kommerziell zu vermarkten, scheiterte.
Daraufhin brachte Sun be-reits im Jahr 2000 die integrierte Entwicklungsumgebung Netbeans [2] auf den Markt, und zwar unter der Sun Public License (SPL). Bei ihr handelt es sich um eine als freie Lizenz anerkannte Variante der Mozilla-Lizenz. Die Netbeans-Website stellt sogar zwei Diff-Dokumente zur Verfügung, ein echtes Diff für Programmierer und eines für Rechtsanwälte.
Eclipse, die Netbeans-Alternative, war erst ein Jahr später so weit, erfreute sich aber einer größeren öffentlichen Aufmerksamkeit. Dass IBM die Quellcode-Basis ihres Websphere Application Developer in Eclipse einbrachte, brachte ordentlich Bewegung in den Markt. Eine aktive Community formierte sich, entwickelte die IDE weiter und erweiterte sie mit Plugins. Die Bedeutung von Eclipse macht sich zum Beispiel in den großen Entwicklerkonferenzen zu diesem Thema bemerkbar.
Download und Installation
Die Netbeans-Homepage bietet mehrere Netbeans-Pakete an, neben der stabilen Standardversion 5 und der Beta-Ausgabe von 5.5 ein Webentwickler-Paket, Entwicklerausgaben künftiger Versionen und Bundles mit dem Java Development Kit. Die kleinste Version erfordert 58 MByte Download und nimmt nach dem Entpacken mit 123 MByte ungefähr so viel Platz wie eine aktuelle Eclipse-Version in Anspruch.
Die Quickstart-Tour und der Users Guide helfen beim Einstieg. Außerdem erweitern derzeit 53 stabile Module analog zu den Eclipse-Plugins die Möglichkeiten des Programms. Sie reichen von den typischen Java-Entwicklungstools bis zu C++- und Fortran-Unterstützung. Die Java-Version von Installshield erledigt die Netbeans-Installation (siehe Abbildung 1). Dieses von Windows bekannte Installationsverfahren funktioniert zwar einfach, geht aber am Linux-Paketmanagement vorbei.

Abbildung 1: Die Java-Version von Installshield erledigt die Installation, allerdings am Paketmanagement der Distribution vorbei.
Architektur
Netbeans verwendet ausschließlich Java, ist also nicht wie Eclipse auf ein natives Toolkit angewiesen. Das verhindert Probleme mit Abhängigkeiten und bei der Installation, andererseits sieht die Netbeans-IDE dadurch aber etwas altmodisch aus (Abbildung 3). Ansonsten ähnelt die Bedienoberfläche der von Eclipse. Mehrere Fenster teilen sich die verfügbare Anwendungsfläche und lassen sich darin beliebig verschieben und übereinander stapeln.
Unter der Haube organisiert Netbeans seine Funktionalität in Modulen. Sie lassen sich im Module Center deaktivieren, um die Startzeit zu verkürzen und den Speicherbedarf zu reduzieren. Über das Update Center konfiguriert man Online-Updates und installiert manuell heruntergeladene Module (Abbildung 2).
Netbeans enthält einen eingebauten Tomcat-Server mit, der über die Runtime-Seite administrierbar ist. Wer J2EE-Anwendungen entwickeln will, die über Servlets und Webservices hinausgehen, installiert entweder den Applikationsserver von Sun oder eine Alternative wie JBoss und registriert sie bei Netbeans. Die Dokumentation dazu ist ausführlich und kontextsensitiv abrufbar.

Abbildung 2: Das Update Center aktualisiert das Programm automatisch und richtet manuell installierte Zusatzmodule ein.

Abbildung 3: Netbeans verwendet ausschließlich Java und deren GUI-Toolkits – was es im Vergleich zu Qt- oder GTK-basierten Programmen etwas altmodisch aussehen lässt.
Projekte
Netbeans organisiert die Arbeit in Projekten, Abhängigkeiten zwischen ihnen erlauben auch kompliziertere Konstrukte. Ein Vorteil von Netbeans gegenüber Eclipse liegt in der Möglichkeit zum Speichern der Projektinformation in Ant-Buildfiles [3]. Dieser Java-Standard macht es leicht, das Projekt auch außerhalb der IDE im Batch-Modus zu bauen, setzt aber eine aktuelle Ant-Version voraus. Netbeans verwendet die zurzeit aktuelle Version 1.6.5.
Bei vielen Softwareprojekten reicht es nicht, den Quellcode aufzubewahren. Wer ihn nach Jahren anpassen muss, steht manchmal vor dem Dilemma, dass der Quellcode ohne die zugehörige IDE nutzlos geworden ist oder sich nur mit großem Aufwand mit einer neueren IDE kompilieren lässt. Ant als Buildtool zu nutzen sorgt hier für eine vielleicht zukünftig wichtige Unabhängigkeit von der Entwicklungsumgebung.
Der Netbeans Users Guide geht ausführlich auf das Thema Ant ein, er zeigt auch die Erweiterungsmöglichkeiten, die der Entwickler mit Ant hat. Auch bereits vorhandene Ant-basierte Projekte importiert er ohne nennenswerten Aufwand als Projekt und verwendet die mitunter mühsam definierten Targets weiter.
Der Editor
Erfreulicherweise muss sich der Programmierer nicht erst in Ant einarbeiten, um von Netbeans zu profitieren, da das GUI alle Funktionen bereitstellt und die technische Implementation auf Wunsch verbirgt. Er schreibt also nur den Code, um die Übersetzung, das Bauen der Jar-Dateien und den Start des Debuggers kümmert sich die IDE.
Zentrales Element jeder IDE ist der Editor. Hier glänzt Netbeans mit einem modernen Java-Editor. Syntax-Highlighting und Einrückungen gehören zum Standard. Weitere Features: Die Code Completion vervollständigt Java-Code und Funktionsaufrufe, Code Templates erstellen ganze Blöcke mit Hilfe weniger Tastenkombinationen, Hints geben Hinweise bei Fehlern. Tastenfolgen lassen sich als Makros aufzeichnen, anpassen und später wieder abspielen.
Im Entwicklungszyklus eines Projekts spielt früher oder später das Refactoring eine Rolle, zum Beispiel wandern Methoden in eine Basisklasse oder werden umbenannt. Weitere Refactoring-Typen sind noch geänderte Parameter, der Zugriff auf Felder über Getter und Setter sowie Package-Wechsel.
Der GUI-Builder mit dem schönen Namen Matisse gilt als eines der stärksten Argumente für Netbeans, denn die Konkurrenz hinkt beim Oberflächen-Werkzeug hinterher. Abbildung 4 zeigt eine einfache Anwendung mit zwei Buttons und mehreren Menüs. Rechts im Bild sind die Controls zu sehen, diese zieht man per Drag&Drop auf das Panel im Zentrum des Bilds. Dort wechseln die beiden Knöpfe »Source« und »Design« zwischen der GUI-Ansicht und dem Quellcode hin und her.

Abbildung 4: Der GUI-Builder von Netbeans heißt Matisse, er erzeugt grafische Oberflächen komfortabel per Mausklick, generiert dabei allerdings nur schwer lesbaren Code.
Oberflächen bauen
Der so genannte Inspector, in Abbildung 4 links unten, zeigt eine ausklappbare Hierarchie der verwendeten Java-Komponenten. Der Editor springt automatisch an die passende Stelle im Quellcode, wenn der Entwickler ein GUI-Element in der Design-Ansicht anklickt oder im Inspector den Kontextmenüpunkt »Events | Action | actionPerformed« wählt. Im entsprechenden Java-File sind die Zeilen für den eigenen Code mit »// TODO add your handling code here« markiert.
Bei allem Komfort ist auch der GUI-Builder nicht frei von Problemen. So sind die Event-Handling-Funktionen durch die beschriebene Methode zwar leicht zu finden. Der erzeugte Quelltext ist aber schwer lesbar, insbesondere wegen der vielen durchnummerierten Controls wie »jMenuItem3ActionPerformed()«. Für jede Control lässt sich per Rechtsklick der Variablenname ändern, aber das zwingt zum ständigen Wechsel zwischen Maus und Tastatur. Das als einen großen Nachteil zu sehen ist möglicherweise Geschmackssache.
Zudem bietet Netbeans Standardfunktionen wie einen Debugger, der das aktuelle Projekt und auch entfernt laufende Anwendungen nach Fehlern durchsucht. Breakpoints setzt man direkt im Editor, sie bleiben über Sitzungen hinweg erhalten. Das gilt für die meisten Einstellungen: Das Projekt mit geöffneten Fenstern und zugehörigem Layout ist nach einem Netbeans-Neustart wieder vorhanden.
Weitere Funktionen
Eine Anbindung an CVS ist gegeben. Die typischen Funktionen wie Diff, Commit und Revert lassen sich auf Datei- und auf Projekt-Ebene ausführen. Ein übersichtliches Versionsfenster zeigt den Status aller Dateien im Projekt an.
Unabhängig von solchen Basisfunktionen ist es wichtig, dass Netbeans mehrere Projekttypen beherrscht. Das Erstellen neuer Projekte unterstützt ein Wizard, der die verfügbaren Typen anbietet. Die Palette reicht von einfachen Java-Programmen über Enterprise-Anwendungen bis zu Netbeans-Modulen. Auch den Import vorhandener Anwendungen gestaltet der Wizard einfach, besonders wenn sie auf Ant basieren.
Je nach Projekttyp stehen eigene Editoren zur Verfügung, beispielsweise ein »web.xml«-Editor für Webanwendungen. Die einzelnen Abschnitte von »web.xml« verteilen sich übersichtlich auf mehrere Reiter, entsprechende Eingabefelder erleichtern das Anlegen der Datei, auch ohne die genaue Syntax im Kopf zu haben. Wer dagegen Code-zentriert arbeitet, passt direkt den XML-Code an – das ist praktisch, um von einer vorhanden Vorlage zu kopieren.
Als Fazit bleibt, dass mit der Version 5 eine stabile und schnelle Entwicklungsplattform für Java existiert, auch für Windows gibt es keine besseren Werkzeuge. Im Vergleich mit Eclipse gibt es keinen eindeutigen Sieger, denn die beiden IDEs ähneln sich sehr. Wer bereits mit einer der IDEs arbeitet, hat keinen Grund umzusteigen. Neueinsteigern kann man zu beiden gleichermaßen raten.
Die Verfügbarkeit des einen oder anderen Moduls beziehungsweise Plugins oder die Verbreitung von kommerziellen Spinoffs wie WASD von IBM [4] oder Netweaver [5] von SAP mag den Ausschlag geben. Netbeans und Eclipse lassen sich sogar ohne großen Umstellungsaufwand parallel nutzen, da Netbeans neben der Standard-Tastenbelegung die Variante »Eclipse« bietet. Beide belegen auf Wunsch die Tasten wie Emacs.
finally{}
Dieser Artikel beschließt die langjährige Linux-Magazin-Serie “Coffeeshop”. Das bedeutet nicht, dass Java-Themen in den künftigen Ausgaben des Linux-Magazins keine Rolle mehr spielen werden, doch erscheinen sie nicht mehr unbedingt regelmäßig. Damit schließt sich auch ein Kreis: Der erste Coffeeshop vor mehr als sieben Jahren stellte Emacs als Java-Entwicklungsumgebung vor [1]. (csc)
|
Infos |
|---|
|
[1] Bernhard Bablok, “Emacs als Java-IDE”: Linux-Magazin 02/99, S. 79, [https://www.linux-magazin.de/Artikel/ausgabe/1999/02/JDE/jde.html] [2] Netbeans: [http://www.netbeans.org] [3] Ant: [http://ant.apache.org] [4] WASD: [http://www-306.ibm.com/software/awdtools/developer/application] [5] Netweaver: [http://www.sap.com/germany/plattform/netweaver] |





