Test: Netbeans wird komfortabler

06.12.2005 von Bernhard  Steppan  
Mit der Java-Entwicklungsumgebung "Netbeans 5" versucht Sun, Eclipse Paroli zu bieten.

Das Softwareentwicklungswerkzeug Netbeans ist in zwei Konfigurationen erhältlich: als reine Java-Entwicklungsumgebung (Integrated Development Environment, kurz IDE) sowie in Kombination mit einem Applikations-Server. Mit Letzterem bietet das Open-Source-Projekt J2EE-Entwicklern ein Startpaket an.

Hier lesen Sie...

  • welche Verbesserungen Netbeans 5.0 aufweist;

  • warum das Tool Mac OS X besser unterstützt;

  • was die Entwicklungsumgebung im Vergleich zu Eclipse bietet.

Gemessen am Leistungsspektrum und den Installationsvoraussetzungen kommerzieller Java-Entwicklungsumgebungen sind die Ansprüche des kostenfreien Netbeans moderat geblieben: Die IDE ohne Applikations-Server benötigt ein Java Development Kit (JDK) ab Version 1.4.2, rund 125 MB Festplattenkapazität und mindestens 384 MB Hauptspeicher.

Netbeans 5.0 begleitet den Entwickler auch bei komplexen Aufgaben wie dem Anlegen von Gridbag-Layouts.

Nach dem Start präsentiert Netbeans das vertraute Bild einer Java-Entwicklungsumgebung: Im linken Fensterbereich befindet sich die Projekt- und Strukturansicht, im unteren Teil eine Konsole, während der rechte Teil vom Editor dominiert wird. Er lässt sich vom Text- in einen Designmodus umschalten, wenn die geladene Klasse GUI-Bestandteile enthält. Hinter dem Designmodus verbirgt sich ein GUI-Builder mit dem einprägsamen Namen "Matisse". Er ist vielleicht die auffälligste Neuerung der neuen Netbeans-Version.

Neuer GUI-Builder

Der Matisse-GUI-Builder zeichnet sich vor allem durch extrem leichte Handhabung aus. Im Modus "Free Design" lassen sich GUIs ohne Vorkenntnisse der komplizierten Java-Layout-Manager spielerisch leicht anordnen. Aber auch vor schwierigeren Aufgaben wie der Gestaltung mit Hilfe eines "Gridbag"-Layouts muss man nicht zurückschrecken, denn der Nutzer wird durch einen eigenen Editor bestens unterstützt. Ein Gridbag legt Textfelder, Buttons, Combo-Boxen, Container und andere Elemente in einem Gitter ("Grid") aus Zeilen und Spalten ab.

Sehr praktisch ist auch die integrierte Vorschau. Sie präsentiert die GUI in einer Wysiwyg-Ansicht, die dem Entwickler erspart, nach jeder noch so kleinen Änderung das Programm immer wieder zu übersetzen und zu starten.

Eclipse versus Netbeans

Eclipse und Netbeans unterscheiden sich gravierend: Die Eclipse-Entwicklungsumgebung baut auf anderen Java-Klassenbibliotheken auf, verfügt dank dem SWT-Framework über eine native Oberfläche und über einen eigenen Java-Compiler. Sie ist zudem im Vergleich zu Netbeans von Beginn an als Integrationsplattform für Tools (GUI-Builder, UML-Modellierung) konzipiert worden.

Die Eclipse-IDE bietet kaum zu übertreffende Konfigurationsmöglichkeiten und gestattet die Programmierung in PHP, Cobol, C++ und Java.

Was die breite Unterstützung von verschiedenen Softwarehäusern mit Plug-ins angeht, ist Eclipse momentan nur mit Microsofts "Visual Studio" zu vergleichen. Darüber hinaus bietet sie einen ausgereiften Rahmen für Eigenentwicklungen (Rich Clients).

Netbeans setzt die Sun-Klassenbibliotheken auf, verwendet mit der Swing-Bibliothek eine emulierte Oberfläche und den Standard-Compiler des Java Development Kits.

Netbeans ist primär eine rundherum komplette Java-Entwicklungsumgebung für Java-Client- und J2EE-Projekte. Als Plattform für Rich-Client-Eigenentwicklungen und für andere Programmiersprachen als Java ist sie im Gegensatz zu Eclipse (noch) unbedeutend.

Wermutstropfen bei Matisse sind derzeit die mangelnde Stabilität, proprietäre Erweiterungen und unzureichende Migrationsmöglichkeiten. Während die Stabilität im endgültigen Release sichergestellt sein wird, dürfte sich an den anderen Einschränkungen nichts ändern: Der GUI-Builder legt proprietäre Dateien an und reserviert Codeblöcke. Beides verhindert den Wechsel zu anderen Entwicklungsumgebungen. Aber auch der umgekehrte Weg ist steinig, denn der Matisse-GUI-Builder erkennt beispielsweise Oberflächen nicht, die mit dem "Jbuilder" von Borland gestaltet wurden.

Neben dem GUI-Builder hat der Texteditor einige wichtige Verbesserungen erfahren. Sie betreffen vor allem die Programmierhilfe und Restrukturierungsfunktionen (Refactoring). Die Programmierhilfe reagiert schneller und bietet mehr Auswahlmöglichkeiten. Zudem haben die Entwickler die Code-Erzeugung um veränderbare Vorlagen, Getter- (Lesen von Attributen) und Setter-Methoden (Schreiben von Attributen), anonyme innere Klassen sowie Methodenrümpfe erweitert. Außerdem kann die Programmierhilfe bestimmte Abkürzungen erkennen und automatisch expandieren.

Entfernen von Klassen erleichtert

Der Editor wurde ausgebaut und arbeitet besser mit Versionskontrollsystemen zusammen.

Bei den Refactoring-Funktionen innerhalb des Editors ist vor allem das sichere Löschen von Bezeichnern ein deutliches Plus. Es erlaubt zum Beispiel, eine Klasse mit allen Referenzen sicher zu entfernen. Ein Vorschaudialog zeigt an, wo die Klasse verwendet wird, und hilft dem Entwickler, die entsprechenden Stellen ohne Drahtseilakt zu löschen. Auch sonst zeigt sich der Editor auf der Höhe der Zeit: Er gestattet es, automatisch Importe zu ergänzen, verfügt über Syntaxhervorhebung, Codeformatierung, Zeilennummerierung und kann Codeabschnitte bei Bedarf falten, so dass der Entwickler auch in komplexen Klassen die Übersicht behält.

Debugging-Funktionen

Wie bei anderen integrierten Entwicklungsumgebungen mittlerweile gewohnt, ist der Editor eng mit dem Debugger verzahnt. Ein Mausklick in den Seitenrand des Editorfensters genügt, um einen Breakpoint zu setzen beziehungsweise wieder zu entfernen. Bedingte Breakpoints und die Auswertung von Ausdrücken gehören wie Remote Debugging zum Standardumfang der Entwicklungsumgebung. Letztere Funktion erlaubt der IDE, sich mit einem Prozess auf einer anderen Maschine zu verbinden, um einen Bug zu suchen. Das ist sinnvoll, um nach Fehlern auf produktiven Systemen zu fahnden.

Die Projektverwaltung ist weitestgehend unverändert geblieben - nicht jedoch das Format, in dem Netbeans die Projekteinstellungen speichert. Aus diesem Grund warnt die IDE den Anwender beim Öffnen eines älteren Netbeans-Projekts davor, dass die Projekteinstellungen überschrieben werden. Wer weiterhin mit einer Vorversion arbeiten möchte, legt also vor der Migration nach Netbeans 5.0 besser eine Sicherungskopie seiner Projekte an.

Plus + Minus Netbeans 5.0

PLUS

  • Kostenfrei;

  • einfach zu bedienende Oberfläche;

  • hervorragender GUI-Builder;

  • reduzierter Ressourcenbedarf.

MINUS

  • Schwache Unterstützung von Drittherstellern;

  • Eingeschränkte Konfigurationsmöglichkeiten.

Versionskontrolle

Die Ansicht erlaubt es, ein Projekt in einer Baumdarstellung oder einer flachen Struktur darzustellen. Sie kann mit einem Versionskontrollsystem (Concurrent Versions System, kurz CVS) zusammenarbeiten. Die Integration des Sourcecode-Management-Systems ist überarbeitet worden. Netbeans 5.0 erkennt nun CVS-Arbeitsverzeichnisse und ist in der Lage, alle geänderten Dateien in einem Fenster darzustellen. Ferner haben die Entwickler dafür gesorgt, dass auch Refactoring-Funktionen mit CVS besser zusammenarbeiten. Dies ist vor allem beim Umbenennen und Verschieben von Klassen wichtig.

Das Build-Management von Netbeans arbeitet völlig anders als bei Eclipse. Es lässt zum Beispiel nicht zu, Projekte schon beim Import genau zu analysieren und die Klassen im Hintergrund zu übersetzen, die korrekt erkannt worden sind. Auch die von Eclipse her bekannte genaue Analyse von totem Code leistet Netbeans nicht von Haus aus in dieser Form. Dazu kann man aber beispielsweise das "PMD"-Plugin integrieren, das kostenfrei bei Sourceforge (http://pmd. sourceforge.net/) erhältlich ist.

Glossar

  • Designmodus: In dieser Ansicht lassen sich Menüs, Symbolleisten und Fenster wie Dialoge gestalten. Die Ansicht muss nicht unbedingt Wysiwyg-Kriterien erfüllen (siehe Testmodus).

  • Emulierte Oberfläche: Bei diesem Verfahren zeichnet das Programm seine Oberfläche selbst und überlässt diese Aufgabe nicht dem Betriebssystem.

  • GUI-Builder: Werkzeug zur Gestaltung von grafischen Ober- flächen, häufig auch GUI-Designer, UI-Designer oder Interfacebuilder genannt

  • IDE: Abkürzung für Integrated Development Environtment, eine Entwicklungsumgebung, die Editor, Debugger, Compiler und Projektverwaltung integriert.

  • Java-Layout-Manager: Java-Klassen, die es erlauben, Widgets nach bestimmten Bedingungen anzuordnen. Ein Beispiel ist das Gridlayout, das gestattet, Widgets auf einem unsichtbaren Gitternetz zu platzieren.

  • JVM: Java Virtual Machine, der Java-Interpreter, der das Java- Programm ausführt.

  • Native Oberfläche: Bei diesem Verfahren zeichnet das Betriebs- system die Programmoberfläche.

  • Swing: Die Standard-GUI-Bibliothek, die sich im Lieferumfang des JDK/JRE befindet.

  • SWT: Standard Widget Toolkit, die GUI-Bibliothek des Eclipse-Projekts und Alternative zu AWT/Swing.

  • Testmodus: Der Testmodus des GUI-Builders zeigt eine Wysiwyg- Voransicht der Programmoberfläche. Spätestens in diesem Modus sollte die Oberfläche exakt so erscheinen, wie sie im fertigen Programm aussehen wird.

  • Widgets: Widgets, auch Controls, Beans oder Javabeans genannt, sind die Bestandteile einer grafischen Oberfläche, mit denen der Benutzer das Programm steuern kann.

  • Wysiwyg: Die Abkürzung von "What you see is what you get". Gemeint ist, dass sich die Darstellung möglichst genau mit der Wirklichkeit deckt.

  • Wysiwyg-Voransicht: Synonym für Testmodus.

Plattformunabhängig entwickeln

Netbeans ist als reine Java-Anwendung nahezu unabhängig von der Plattform und neben den Systemen Windows, Solaris und Linux auch auf Apple-Rechnern vertreten. In der Vergangenheit war die Portierung nach "Mac OS X" jedoch nicht sonderlich gelungen, was sich mit dem neuen Release geändert hat.

Für Web-Entwickler gibt es keine großen Überraschungen. Wer auf eine breite Unterstützung für Javaserver Faces (JSF) gehofft hat, wird sich enttäuscht Suns "Java Studio Creator" zuwenden, das es im Gegensatz zu Netbeans erlaubt, derartige Projekte visuell zu entwickeln.

Tomcat-Kopplung

Gleichwohl unterstützt Netbeans 5.0 Web-Projekte, zum Beispiel durch die Tomcat-Integration oder Wizards zum Anlegen von Struts-, JSF- oder Mischprojekten aus beiden Frameworks. Die Entwicklungsumgebung sorgt dafür, dass Bibliotheken vorhanden sind.

Die Integration des erwähnten Tomcat-Web-Servers haben die Netbeans-Entwickler so weit verbessert, dass JVM-Einstellungen direkt aus der IDE erreichbar sind. Auch die Unterstützung für Applikations-Server wurde erweitert. Neben Suns "Java System Application Server" kann die Netbeans-IDE jetzt auch mit "Jboss 4" und Beas "Weblogic 9" zusammenarbeiten. Mit beiden ist die Verteilung der Anwendung direkt aus der Netbeans-IDE möglich.

Das Open-Source-Projekt betont neuerdings, dass Netbeans so wie Eclipse zur Entwicklung von Plugins und Rich Clients nutzbar ist. Wer sich dafür interessiert, wird eine Reihe neuer Vorlagen in der Version 5.0 finden, die ihm bei der Entwicklung von Anwendungen, die auf Eclipse basieren, unter die Arme greifen. Der Wizard zum Anlegen eines neuen Projekts listet nun drei verschiedene Netbeans-Plug-ins auf: ein reines Module-Projekt, eine Suite und ein Wrapper-Projekt.

Projekte migrieren

Während das Module-Projekt ein Projekt für einzelnes Plug-in erzeugt, generiert die Auswahl "Suite" eines für mehrere abhängige Plug-ins. Wer vorhandene Software migrieren möchte, wählt das Wrapper-Projekt, das darauf ausgerichtet ist, bestehende Software als Plugin zu verpacken.

Fazit

  • Die Betaversion zeigt, dass Netbeans 5.0 in Bezug auf Einsatzmöglichkeiten und Bedienung keinen Vergleich zu scheuen braucht.

  • Eine endgültige Aussage über die neue Version von Netbeans lässt sich wegen der Instabilität der Betaversion jedoch noch nicht treffen.

  • Klar ist trotzdem, dass in vielen Bereichen deutliche Verbesserungen zu verzeichnen sind.

  • Im Bereich der Fehleranalyse, dem Aufspüren von totem Code und der Konfigurationsmöglichkeiten eines Projekts bleibt der Vorsprung von Eclipse bestehen.