Aus Linux-Magazin 03/2008

Netbeans 6.0 und Eclipse 3.3 im Vergleich

© scx.hu

Suns Java-Entwicklungsumgebung Netbeans steht seit Langen im Schatten der von IBM initiierten IDE Eclipse. Doch die Anfang Dezember erschienene Version 6.0 hat gegenüber Eclipse manche Vorteile.

Aktuelle Markterhebungen küren Eclipse [1] zur meistgenutzten Java-IDE und verweisen Netbeans [2] klar auf den zweiten Platz. Auf der Mitgliederliste der Eclipse Foundation finden sich Namen wie IBM, Borland, Red Hat und Suse. Doch in der illustren Liste klafft eine bemerkenswerte Lücke: Die Firma Sun, Erfinderin von und treibende Kraft hinter Java, fehlt. Der kalifornische Softwaregigant engagiert sich für die eigene Java-Entwicklungumgebung Netbeans. Mit der am dritten Dezember 2007 erschienen Version 6.0 will Sun verlorenes Terrain zurückgewinnen.

Wer die beiden IDEs vergleicht, kommt dem Erfolgsgeheimnis von Eclipse schnell auf die Spur. Die Entwicklungsumgebung verstand sich früh als “offene” Software, die sich über Plugins erweitern und sogar als Application-Server nutzen lässt. Netbeans hat diesen Trend lange Zeit verschlafen und sich ausschließlich als IDE verstanden. Ein Vergleich der beiden Anwendungen zeigt aber, dass Netbeans aufholt. Wer Suns IDE ausschließlich als Entwicklungsumgebung nutzt, stellt fest, dass der Zweitplatzierte in einigen Bereichen sogar die Nase vorn hat.

Zwei Welten

Viele Unterschiede zwischen Eclipse und Netbeans liegen in der Geschichte der beiden IDEs begründet. Eclipse ist als erweiterbares Framework konzipiert, das an den wesentlichen Stellen Interfaces für Entwickler bereithält. Ein prominentes Beispiel für den Einsatz als Application-Server ist der Lotus Notes Client, der in der neuesten Version auf Eclipse basiert [3]. Inzwischen entwickelt sich Netbeans auch zur Anwendungsplattform weiter, hält aber beim GUI nach wie vor an AWT/Swing fest, das Sun offenbar um jeden Preis im Markt halten möchte. Auch in Version 6 bleibt Netbeans schwerpunktmäßig eine IDE, was sich auch in der Vermarktung zeigt.

Das gewichtigste Argument für Eclipse ist deren Java-Qelltexteditor, unbestritten der beste zurzeit am Markt verfügbare. Gleichzeitig ist Eclipse quasi unbeschränkt durch Plugins erweiterbar, Tausende freie und kommerzielle Erweiterungen sind erhältlich. Besonders die Web Tools Platform (WTP) ist eine sehr leistungsfähige Umgebung für Java EE und verbindet die IDE nahtlos mit allen wichtigen Applikationsservern. Netbeans-Anhänger schätzen dagegen das Tempo ihrer IDE. Da sie auf dem geschwindigkeitsoptimierten Swing basiert, startet die Software schneller und fühlt sich fließender an.

Die Mischung macht’s

Es gibt seit Jahren auf Eclipse basierende spezielle Zusammenstellungen von Plugins für unterschiedliche Bedürfnisse. Eclipse Europa [4], die im Zusammenhang getestete Veröffentlichung von Eclipse 3.3 mit 21 Unterprojekten, erleichtert es zusätzlich, für den eigenen Bedarf ausgestattete Eclipse-Installationen selbst zusammenzustellen.

Diese Idee hält nun auch in Netbeans Einzug. Ab der aktuellen Release gibt es sechs Standardpakete für Java SE, ME, EE beziehungsweise die Entwicklung mit C++ oder Ruby. Das verkürzt den Download, der neue Installer richtet die Umgebung zügig ein, installiert Netbeans gleicht mit den nötigen Plugins und kümmert sich optional auch um einen Glassfish- oder Apache-Tomcat-Applikationsserver. Auch mit einem verbesserten Plugin-Manager zieht Netbeans 6.0 der Konkurrenz nach. Ähnlich wie in Eclipse lassen sich in dieser Version über das Menü »Tools« auch Update-Server einbinden (Abbildung 1). Netbeans hat hier im Vergleich zu den komfortablen Managern von Yoxos & Co. gegen Eclipse viel Boden gutgemacht.

Abbildung 1: Ein Schritt in Richtung Allzweck-IDE: Der neue Plugin-Manager in Netbeans 6.0 funktioniert ähnlich komfortabel wie der von Eclipse.

Abbildung 1: Ein Schritt in Richtung Allzweck-IDE: Der neue Plugin-Manager in Netbeans 6.0 funktioniert ähnlich komfortabel wie der von Eclipse.

Runderneuert

Die Entwickler haben den Code-Editor von Netbeans 6.0 völlig neu geschrieben. Mehrere Identation Engines sorgen mit Einrückungen für lesbaren Code. Der Code-Assistent bringt die Vervollständigungsvorschläge in eine sinnvolle Reihenfolge. Er zeigt die im Kontext wahrscheinlichste Methode oder Variable ganz oben in der Liste an.

Mit der Funktion »Insert Code« lassen sich nun auch endlich direkt Getter und Setter sowie Konstruktoren oder Destruktoren für eine Klasse erzeugen. Eclipse-Umsteiger haben dieses Feature bisher vermisst. Daneben sorgt das Performace Tuning für schnelleres Refactoring und beschleunigt die Anzeige der Class Members.

Eine wichtige Neuerung von Netbeans 6.0 sind auch die Kolloborationsfunktionen (Abbildung 2), wie sie bisher den kommerziellen Versionen von Sun Java Studio vorbehalten waren. Über ein Plugin meldet sich die IDE nun bei einem zentralen Entwicklungsserver an und tauscht Code über einen Chat aus. Sun stellt unter [5] kostenlose Accounts für diesen Dienst zur Verfügung. Ein Einrichtungsdialog bindet diesen oder andere Server ein, ohne dass der Anwender die IDE verlassen muss.

Abbildung 2: Gut koordiniert: Über den im neuen Netbeans 6.0 integrierten Chat ist es auch möglich, Quellcode und ganze Codeprojekte online auszutauschen.

Abbildung 2: Gut koordiniert: Über den im neuen Netbeans 6.0 integrierten Chat ist es auch möglich, Quellcode und ganze Codeprojekte online auszutauschen.

Danach präsentiert die Software ein Art Instant Messenger. Der Chat hilft beim koordinieren der Teamarbeit. Darüber hinaus ist es möglich, einzelne Dateien oder ganze Netbeans-Projekte online zur Verfügung zu stellen. Sie lassen sich per Drag&Drop in den eigenen Dateimanager ziehen und genauso bearbeiten wie lokal gespeicherte Dokumente.

Viele Programmierer setzen auch für Desktop-Anwendungen auf Java SE [6]. Netbeans 6.0 umwirbt diese Zielgruppe besonders, schon weil deren Angehörige bisher oft dem Eclipse-Lager angehören. Das beste Argument für Netbeans dürfte, wenn auch nicht erst seit Version 6, der GUI-Builder Swing sein (Abbildung 3). Mit ihm lassen sich Desktop-Anwendungen ähnlich wie in Visual Studio von Microsoft einfach zusammenklicken. Eine Palette stellt viele GUI-Elemente zur Verfügung, die der Entwickler lediglich in eine grafische Vorschau zieht. Den zugehörigen Code erzeugt die Software automatisch. Eclipse bietet zwar Plugins, mit denen Dialogfelder ebenfalls schnell zusammenzuklicken sind, allerdings ist der GUI-Builder in Netbeans deutlich leistungsfähiger.

Abbildung 3: Nase vorn: Dem Swing-GUI-Builder in Netbeans, mit dem sich grafische Oberflächen per Drag & Drop zusammenstellen lassen, hat Eclipse nichts Gleichwertiges entegenzusetzen.

Abbildung 3: Nase vorn: Dem Swing-GUI-Builder in Netbeans, mit dem sich grafische Oberflächen per Drag & Drop zusammenstellen lassen, hat Eclipse nichts Gleichwertiges entegenzusetzen.

Neu in Netbeans 6.0 ist außerdem die Implementierung zweier weiterer JSR-Standards. Zum einen die Beans Binding Technology, mit der im Zusammenspiel mit dem Java-Persistence-API bei geringem Aufwand datenbankgestützte Programme entstehen. Datenbanktabellen oder Felder lassen sich per Drag&Drop in Swing-Formulare einbinden. Die IDE erzeugt den zugehörigen, Java-Persistence-konformen Code [7].

Eine andere Neuerung in Version 6 ist das so genannte Swing Application Framework, das Funktionen wie das Erstellen von Programmelementen wie Menüs erleichtert oder den Lebenszyklus von GUI-Anwendungen managt. In manchen Punkten konkurriert es damit direkt mit dem von IBM initiierten GUI-Toolkit SWT. Anders als beim in Java integrierten Swing entstehen mit SWT keine plattformübergreifend gleich aussehenden Anwendungen, da das Toolkit direkt auf native grafische Elemente des jeweiligen Betriebssystems zugreift. Daher fügen sich die GUI-Elemente bruchlos in dessen Look ein, etwa den einer Gnome-Umgebung.

Hilfreich für Java-SE-Entwickler ist der neue Profiler. Er war bisher als externes Projekt an Netbeans nur angegliedert, ist nun aber direkt in die Java-Pakete der IDE integriert. Er analysiert Laufzeiten und Speicherverbrauch einer Anwendung bis auf einzelne Methoden oder Klassen und hebt dabei die Performance- kritischsten Methoden hervor.

Ähnlich wie beim Debuggen kann der Entwickler in der neuen Version des Profilers so genannte Profiling Points setzen, an denen der Profiler mit einem Zwischenergebnis anhält. Der Heap Walker zeigt den Inhalt des Java Heap in der virtuellen Maschine an, sodass ausufernder Speicherverbrauch schnell auffliegt. Wie beim GUI-Builder kann Eclipse dem Netbeans-Profiler nichts Ebenbürtiges entgegensetzen.

Wenig Neues für Unternehmen

Wenig spektakulär sind die Neuerungen von Netbeans 6.0 im Bereich der Unternehmensanwendungen, die auf Java EE basieren. Hier gibt es weiterhin die aus Vorgängerversionen bekannte Unterstützung für Enterprise Java Beans. Verbessert ist aber das Zusammenspiel mit Applikationsservern: Anwendungen lassen sich nun direkt aus der IDE heraus auf den neuesten Versionen von IBM Websphere 6, BEA Weblogic 10, Apache Tomcat 4, 5 und 6 und dem Sun-Projekt Glassfish v2 deployen.

Interessant für Firmen scheint auch die verbesserte Datenbankanbindung, gerade im Zusammenspiel mit Java Server Pages. Auch hier unterstützt Netbeans 6.0 die neuesten Serverversionen. Der Entwickler kann mit einer grafischen Oberfläche Datenbankanfragen erstellen und durch die Datenquellen browsen. Die von Apache Derby abgeleitet Java DB darf er nun direkt aus der IDE heraus starten und stoppen. Außer für MySQL ist nun endlich auch der JDBC-Treiber für PostgreSQL im Lieferumfang der Software enthalten.

Ins Netz gegangen

Als größte Neuigkeit für Webentwickler integriert Version 6.0 die Visual Web Development Tools. Ähnlich wie beim grafischen GUI-Editor erzeugt der Entwickler Webseiten, indem er die Elemente per Drag&Drop an der gewünschten Stelle einfügt. Netbeans erzeugt passende Java Server Faces und Java Server Pages. Ein ebenfall in Version 6.0 verbesserter Pageflow-Editor verknüpft die Views mit der Anwendungslogik.

Außerdem sind neue Editoren für Javascript und CSS hinzugekommen, die auch automatische Code-Vervollständigung beherrschen. Hilfreich ist die Fehlerüberprüfung bei CSS-Dateien, da kleine Fehler im Code im Browser schwer erkennbar sind. Eclipse bietet mit dem Unterprojekt WTP [8] schon lange eine Unterstützung für CSS-Code.

Viele IDEs wenden sich in letzter Zeit dem Thema Webservices zu, so auch Netbeans. Neue Vorlagen erleichtern das Schreiben standardisierter Java-XML-Webservices [9]. Das Webservice-Plugin erzeugt auch SOAP-basierte und REST-Webservices (Representational State Transfer-Services). Eine Komponentenpalette für Restful [10] bietet direkten Zugriff auf die Dienste von Google Maps oder die Yahoo-News-Suche.

Trotz dieser Neuerungen hinkt Netbeans dem Konkurrenten Eclipse bei der Webentwicklung immer noch hinterher. Dies gilt auch für den Bereich SOA: Selbst mit dem verbesserten BPEL-Designer (Business Process Execution Language) schafft Netbeans nicht den Schulterschluss mit dem seit Langem in der Webentwicklung heimischen Eclipse.

Die Kleingeräte kommen

Kleingeräte, die Java ME [11] unterstützen, bevölkern das weltweite Datennetz. Mit Version 6 baut Netbeans vorhandene Stärken im Umgang mit der mobilen Java-Version aus: Hinzu kommt ein neuer grafischer Dialogeditor. Wie bei den Java Server Faces lassen sich Elemente per Drag&Drop hinzufügen. Den Programmablauf legt auch hier ein grafischer Editor fest. Pfeile symbolisieren die Abfolge der Dialogelemente, der Entwickler muss sich um den zugehörigen Code nicht weiter kümmern.

Um die GUIs ansprechender zu gestalten, zeichnet Netbeans SVG-Grafiken nun ohne Hilfe externer Programme. Die IDE setzt damit JSR-226 [12] um. Der als MIDP Game API bezeichnete Standard hat mit einem grafischen Editor für Spielszenen Einzug gehalten.

Neben diesen vielen Detailverbesserungen ist vor allem die erheblich verbreiterte Unterstützung verschiedener Plattformen als Fortschritt zu verzeichnen. Die zahlreichen Profile (MIDP, CDC, CLDC) und deren Versionen machen es vielen Entwicklern schwer, den Überblick zu behalten. Mit Netbeans 6.0 lichtet sich dieser Dschungel durch das Anlegen von Build-Umgebungen für einzelne Standards und Hersteller. Im Quellcode selbst lassen sich einzelne Code-Abschnitte in Abhängigkeit zur jeweiligen Plattform aktivieren oder deaktivieren. Dies geschieht über spezielle »if«-Anweisungen, die in normalen Java-Kommentaren eingebettet sind.

Babylonische Sprachverwirrung

War Netbeans bis vor Kurzem eine Entwicklungsumgebung nur für Java und die zugehörigen Technologien, so versucht sie sich nun wie die Konkurrenz in Vielsprachigkeit.

Im Vergleich mit dem bisher nicht sonderlich leistungsfähigen C/C++-Plugin hat die neue Version einiges mehr zu bieten. Die Entwickler erneuerten den C++-Editor grundlegend und verpassten der Entwicklungsumgebung viele zugehörige Features. Zum Beispiel lässt sich nun in einem eigenen Inspector zwischen abhängigen Quelldateien komfortabel navigieren. Der Editor stellt Includes außerdem als Links dar, ein Klick darauf öffnet die eingebundene Datei in einem neuen Editorfenster.

Der Browser für die Klassenhierarchie präsentiert sich runderneuert (Abbildung 4) und arbeitet nun in großen Projekten um einiges schneller. Auch das sprachunabhängige Build-System von Netbeans trägt zur Verbesserung im Bereich C++-Entwicklung bei.

Abbildung 4: Auf Zack: Der erneuerte C++-Classbrowser in Netbeans 6.0 arbeitet um einiges flotter als zuvor.

Abbildung 4: Auf Zack: Der erneuerte C++-Classbrowser in Netbeans 6.0 arbeitet um einiges flotter als zuvor.

Völlig neu ist die Unterstützung der Programmiersprache Ruby. Die IDE erstellt entweder native Ruby-Anwendungen oder verzahnt Ruby mit Hilfe von JRuby mit Java-SE- oder Java-EE-Programmen. Auch Ruby-on-Rails-Projekte inklusive der zugehörigen RHTML-Dateien lassen sich anlegen und bearbeiten. Netbeans 6.0 publiziert die Projekte ohne Umweg auf Mongrel- und Webrick-Servern, auch die Datenbankanbindung funktioniert wie gewünscht. Ein Debugger für Ruby- und Ruby-on-Rails-Projekte fehlt ebenfalls nicht. Über den Ruby-Gems-Installer verfügbare Bibliotheken und Templates lassen sich per Plugin-Manager in die Umgebung einbinden.

Was die Unterstützung von nicht der Java-Welt zugehörigen Sprachen angeht, hat Netbeans mit Version 6 also im Bereich C/C++ Boden gutgemacht und übertrifft Eclipse in dem dort nur mangelhaft umgesetzten Ruby-Support. Auch ein PHP-Plugin ist zusätzlich verfügbar. Die Qualität der von Zend initiierten PHP Development Tools erreicht es allerdings nicht.

Einstieg leicht gemacht

Netbeans 6.0 zeichnet sich dadurch aus, dass es viele Code-Beispiele mitliefert, die Anfängern beim Einstieg in die Programmierung helfen. Sie sind im Ordner »Sample« zu finden und lassen sich beim Anlegen eines neuen Projekts in dem Dialog »Neues Projekt« auswählen. Neben Beispielen für Java-Swing-Anwendungen und EE-Applikationen (JSP und JSF) finden sich hier auch interessante Beispiele zu Ruby und JRuby, die wertvolle Bausteine enthalten.

Beim Anlegen eines neuen Ruby-Projekts lässt die Software dem Entwickler die Wahl zwischen einer klassischen Ruby- und einer Ruby-on-Rails-Applikation. Bei dem mitgelieferten Beispiel handelt es sich um eine Rails-Anwendung. Es zeigt, dass Syntax-Hervorhebung und Autovervollständigung sehr gut funktionieren (Abbildung 5). Ruby-Dateien sind – wie vom Java-Quellcode her gewohnt – editierbar, auch die Tastenkombinationen zum Navigieren im Quellcode bleiben erhalten. Rake- und Yml-Dateien editiert Netbeans problemlos. »Ausführen« startet das Programms nach den im Rakefile definierten Regeln und zeigt dessen Ausgabe in einem eigenen Fenster an. Bei klassischen Ruby-Projekten erzeugt die IDE sogar die Rdoc-Kommentare.

Abbildung 5: Vollständig: Netbeans 6.0 kann nicht nur mit dem eigentlichen Ruby-Programmcode, sondern auch mit Rake und Yml-Dateien umgehen.

Abbildung 5: Vollständig: Netbeans 6.0 kann nicht nur mit dem eigentlichen Ruby-Programmcode, sondern auch mit Rake und Yml-Dateien umgehen.

Erfolgsbilanz

Mit Netbeans 6 gelingt Sun ein Spagat. Die Entwickler halten zwar einerseits an der bisherigen Strategie fest: Netbeans bleibt primär eine IDE und entwickelt sich weniger als Eclipse in die Richtung eines generellen Application-Servers. Andererseits hat Sun vom Erfolg der Konkurrenz Eclipse gelernt und sich für neue Sprachen geöffnet. Die neue Ruby-Unterstützung und der Ausbau des C++-Plugins sind Highlights der neuen Version. Gleichzeitig gewinnt in allen Bereichen die grafische GUI-Entwicklung an Substanz: Der GUI-Builder, die Visual Web Tools und der Mobility Designer schaffen eine neue Arbeitsumgebung, mit der Eclipse in diesen Bereichen nicht mithalten kann.

Entwickler, die lieber den gesamten Quellcode kontrollieren und sich ungern auf grafische Tools verlassen, sind allerdings mit Eclipse nach wie vor besser bedient – die Zahl der verfügbaren Plugins und der Support durch die Community sprechen ebenfalls für das von IBM initiierte Produkt. Alles in allem wird jedoch Eclipse im Vergleich mit der neuen Netbeans-Version seinem Namen (to eclipse: in den Schatten stellen) heute weniger gerecht als in der Vergangenheit. Für Java-Anwendungen vom Handy bis zum Server überflügelt Netbeans die Nummer eins. (pkr)

Infos

[1] Eclipse: [http://www.eclipse.org]

[2] Netbeans: [http://www.netbeans.org]

[3] Markus Feilner, “IBM Lotus Notes 8 auf Linux”: Linux-Magazin 02/08, S. 58

[4] Eclipse Europa: [http://www.eclipse.org/europa]

[5] Netbeans Collaboration: [http://share.java.net]

[6] Java SE: [http://java.sun.com/javase]

[7] Screencast zur Beans Binding Technology: [http://www.netbeans.org/kb/60/java/swing-app-beans-binding-screencast.html]

[8] Web Tools Platform: [http://www.eclipse.org/webtools]

[9] JAX-WS: [https://jax-ws.dev.java.net]

[10] Restful: [http://java.sun.com/developer/technicalArticles/WebServices/restful]

[11] Java ME: [http://java.sun.com/javame/reference/apis.jsp]

[12] JSR-226: [http://jcp.org/en/jsr/detail?id=226]

Der Autor

Markus Franz ist Mitgründer und CTO der BF Blogform Search GmbH, Berlin. Er studiert Wirtschaftsinformatik an der Friedrich-Schiller-Universität in Jena.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 5 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
LINUX-MAGAZIN KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Readly Logo
E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben