Rückblick: Die großen 4 Java IDEs verglichen

Wenn Sie an eine Java-IDE denken, stellen Sie sich zweifellos eine grafische Anwendung vor, in der Sie Java-Quellcode schreiben, kompilieren, debuggen und ausführen. Das ist natürlich ein kleiner Teil des Bildes - wenn Sie eine Java-Anwendung erstellen, stehen die Chancen gut, dass Sie mit mehr als Java arbeiten.

Möglicherweise handelt es sich um eine relationale Datenbank. Wenn Sie eine webbasierte Anwendung erstellen, müssen Sie sich möglicherweise mit AJAX befassen, und das bedeutet JavaScript. Und HTML. Und diese Anwendung wird von einem Anwendungsserver wie Tomcat ausgeführt, sodass Sie Verwaltungstools für den Anwendungsserver benötigen. Du bist nicht allein; Sie arbeiten mit einem Entwicklerteam zusammen. Daher wäre es hilfreich, wenn diese IDE mit Git oder Subversion funktioniert.

Die Liste geht weiter, aber Sie bekommen die Idee. Selten ist es so, dass Sie beim Erstellen einer Java-Anwendung nur eine Java-Anwendung erstellen. Und eine IDE muss Tools bereitstellen, mit denen Sie alle zugehörigen Technologien, in die Ihr Projekt Sie verwickeln wird, einreichen können.

In diesem Test werde ich den aktuellen Status von vier der bekanntesten derzeit verfügbaren Java-IDEs betrachten:

  • Die ehrwürdige Sonnenfinsternis. Obwohl es Versionen von Eclipse gibt, die neben Java in vielen anderen Sprachen entwickelt werden können (C ++, Python, Fortran, Ruby, sogar Cobol, um nur einige zu nennen), basiert Eclipse auf Java und ist am besten als Java-IDE bekannt. Die Tatsache, dass es verwendet werden kann, um sich in so vielen anderen Sprachen zu entwickeln, ist ein Beweis für seine Erweiterbarkeit, die ... umfangreich ist.
  • NetBeans. NetBeans kann die Entwicklung in anderen Sprachen als Java unterstützen, jedoch nicht so viele wie Eclipse. NetBeans wurde Ende der neunziger Jahre als kommerzielles Produkt eingeführt, wurde jedoch später von Sun als Open-Source-Produkt angeboten und ist dies seit dem Kauf von Sun durch Oracle (und der anschließenden Übernahme von NetBeans) geblieben.
  • JDeveloper. JDeveloper ist auch eine Oracle-Eigenschaft. Während NetBeans die Entwicklung in mehreren Sprachen und in einer Vielzahl von Java-Umgebungen unterstützt, ist JDeveloper solide Java und hauptsächlich für die J2EE-Entwicklung vorgesehen.
  • IntelliJ IDEE. Wie Eclipse und NetBeans unterstützt IntelliJ IDEA von JetBrains eine Vielzahl von Sprachen und Java-Technologien. IDEA zeichnet sich vor allem durch die Integration von Produktivitätsverbesserungen in die Editoren und Tools der IDE aus. Im Gegensatz zu den anderen IDEs ist IDEA in einer kostenpflichtigen Ultimate Edition und in einer eingeschränkteren, aber kostenlosen Community Edition erhältlich.

Finsternis

Eclipse ist in mehr Variationen erhältlich, als Sie zählen können. Es bietet nicht nur die grundlegenden Funktionen einer IDE - Projektmanagement, Quellenbearbeitung, Kompilieren, Debuggen, Versionskontrolle -, sondern die Eclipse-Plattform wurde für die Verwendung als Datenbankbrowser (DBeaver), Geschäftsprozessmodellierer (BPMN2) modifiziert Modeler), ein Toolkit zur Datenvisualisierung und Berichterstellung (BIRT, Business Intelligence und Reporting Tools) und mehr. Eclipse-Versionen wurden für bestimmte Anwendungsbereiche erstellt: Testen, Automobilentwicklung, Entwicklung paralleler Systeme und so weiter. Die Anzahl der verfügbaren Plug-Ins ist ebenso endlos wie die Anzahl der unterstützten Programmiersprachen.

Eclipse ist auch die Schriftart vieler bemerkenswerter Projekte. Beispielsweise ist Eclipse RAP (Remote Application Platform) ein Framework zum Erstellen einer Geschäftsanwendung, die auf Geräten präsentiert werden kann, die von Webbrowsern über Desktopanwendungsclients bis hin zu Mobilgeräten reichen. Mit der wiederverwendbaren SWT-basierten API von Eclipse RAP können Sie von einer einzigen Codebasis aus für eine Vielzahl von Zielen bereitstellen.

Kurz gesagt, Eclipse ist weniger eine IDE als vielmehr eine IDE-Plattform.

Dennoch ist Eclipse sicherlich am besten als erstklassige Java-IDE bekannt. Es ist in Java geschrieben und kann daher auf allen primären Betriebssystemen ausgeführt werden. Wie Sie vielleicht bei so vielen Variationen von Eclipse erwarten, gibt es viele Variationen von dem, was man als "Eclipse für Java" bezeichnen könnte. Besuchen Sie die Eclipse-Website und Sie werden Folgendes finden:

  • Grundlegende Eclipse für Java-Entwickler zum Erstellen von Java SE-Anwendungen
  • Eclipse für Java EE-Entwickler zum Erstellen von web- und serverbasierten Anwendungen
  • Eclipse für Java- und Berichtsentwickler, eine Mischung aus Java EE-Tools und dem BIRT-Berichterstellungstool, das das Entwerfen und Erstellen von Berichten erleichtert, enthält eine Diagramm-Engine und kann sowohl auf Java-Desktop- als auch auf Webanwendungen angewendet werden
  • Eclipse für Java- und DSL-Entwickler, einschließlich des Open-Source-Xtext-Frameworks, mit dem Sie DSLs (domänenspezifische Sprachen) erstellen können
  • Eclipse for Testers, das das Jubula-Tool zum Erstellen und Verwalten automatisierter GUI-Tests von Anwendungen enthält, die Swing-, SWT-, HTML- und andere Benutzerschnittstellentechnologien verwenden

Diese Editionen sind mehr oder weniger spezifische Sammlungen von Eclipse-Plug-Ins. Die Flexibilität der Plug-In-Architektur von Eclipse bedeutet, dass Sie Ihre spezielle Installation von Eclipse mit einer praktisch unbegrenzten Kombination von Funktionen ausstatten können. Für diese Überprüfung habe ich jedoch die Java EE-Version von Eclipse installiert, eine IDE, mit der Web-, Server- und Desktop-Java-Anwendungen sowie Enterprise JavaBeans, Connectors und mehr erstellt werden können. Da ich Groovy zum Schreiben von Testskripten verwende, habe ich das Groovy-Plug-In von Codehaus hinzugefügt.

Die neueste Version (zum jetzigen Zeitpunkt) ist Eclipse Luna, die Java 8 vollständig unterstützt, einschließlich der Fähigkeit des Eclipse-Speicheranalysators, Java 8-Heap-Dumps zu akzeptieren. Luna unterstützt auch Paho, ein M2M-Messaging-System (Machine to Machine), das MQTT (Message Queuing Telemetry Transport) verwendet, ein leichtes Publish-and-Subscribe-Messaging-Protokoll.

Arbeiten mit Eclipse

Wenn Sie Eclipse öffnen, besteht Ihr Arbeitsbereich aus zahlreichen Fenstern mit Registerkarten, auch Ansichten genannt. Eine Ansicht bietet die Verwaltung einer bestimmten Ressource. Ein Editor ist eine Art von Ansicht. Der Paket-Explorer, der die Anordnung von Paketen, Klassen und Bibliotheken in einer Java-Anwendung zeigt, ist eine andere Art von Ansicht. Das Debugger-Fenster ist eine Ansicht. und so weiter.

Eine "Perspektive" - ​​ein zentrales Konzept in der Eclipse-Benutzeroberfläche - ist eine Kombination von Ansichten, die auf eine bestimmte Aufgabe ausgerichtet sind. Während des eigentlichen Schreibens von Java-Code verwenden Sie die Java-Perspektive mit ihren Gliederungs- und Editoransichten. Wenn es Zeit ist, Ihre Anwendung zu debuggen, wechseln Sie zur Debugging-Perspektive mit ihren Debugging- und aktiven Thread-Ansichten. Öffnen Sie für die Datenbankarbeit die Perspektive "Datenbankentwicklung" mit der Ansicht "Datenquellen-Explorer" und der SQL-Ausführungsansicht. Die Anzahl der in einer bestimmten Eclipse-Sitzung verfügbaren Perspektiven hängt im Allgemeinen davon ab, welche Plug-Ins Sie installiert haben.

So komplex das auch klingt - es wird sicherlich jedem, der neu in Eclipse ist, komplex erscheinen - die Topologie des Eclipse-Arbeitsbereichs ist jedem bekannt, der eine IDE verwendet hat. Die Navigationsansichten befinden sich links, die Inhaltsbearbeitung in der Mitte, die Ansichten der Komponentenhierarchie rechts sowie die Ausgabe und der Status unten. Natürlich ist die Anordnung dieser visuellen Elemente vollständig anpassbar, und Sie können einer Perspektive Ansichten hinzufügen oder sie nach Belieben entfernen.

Eclipse ist randvoll mit allen erdenklichen Editoren: Editoren für Java-Ressourcen, CSS-, HTML-, SQL-, JavaScript-, Maven POM-Dateien (Project Object Model) und - oh ja - Java-Quelldateien. Stellen Sie sich einen vom Benutzer veränderbaren Dateityp vor, den eine Java-Anwendung möglicherweise verwendet, und Eclipse verfügt über einen Editor dafür. Selbst wenn Sie eine Datei entdecken, für die Eclipse keinen Editor bereitstellt, kann die IDE so konfiguriert werden, dass ein externer Editor geöffnet wird. Natürlich sind die Redakteure von Eclipse inhaltsbewusst. Öffnen Sie eine Java-Datei und Sie erhalten den Java-Quellcode-Editor. Öffnen Sie eine XML-Datei und Sie erhalten den XML-Editor.

Während Sie codieren, ist Eclipse mit einer Reihe von Hilfen ausgestattet: automatische Vervollständigung, Abhängigkeitsauflösung (verwenden Sie eine Klasse, die Sie noch nicht importiert haben, und Eclipse bietet an, die Importanweisung für Sie hinzuzufügen), viel Code auf dem Boilerplate Vorlagen - Konstruktoren, Getter und Setter, die toString()Methode - und mehr. Das Refactoring-Repertoire umfasst das Umbenennen, Verschieben (Übertragen einer Methode von einer Klasse in eine andere und das automatische Aktualisieren von Referenzen im gesamten Code), das Extrahieren einer Schnittstelle aus einer Klasse und zusätzliche praktische Tricks. Eclipse hilft Ihnen auch beim Navigieren durch die Referenzen und Deklarationen einer Methode oder Variablen.

Trotz all dieser Unterstützung verfolgt Eclipse Ihre Änderungen, wenn Sie ein Foul begehen, und mit der Funktion für den lokalen Verlauf können Sie in der Zeit zurücktreten und Ihre Änderungen anzeigen. Sie können frühere Versionen der Datei anzeigen, und Eclipse bietet eine grafische Diff-Ansicht, mit der Sie die Deltas zwischen den Versionen untersuchen können.

Für die Erstellung eines Projekts ist die Unterstützung von Ant durch Eclipse integriert. Die Maven-Unterstützung wird über das Plug-In des M2Eclipse-Projekts bereitgestellt. Wenn Sie Gradle bevorzugen, gibt es ein Plug-In, dessen Funktionen jedoch davon abhängen, welche Sprachunterstützung Sie Eclipse hinzugefügt haben. Das Plug-In kann Java, Groovy und Scala verarbeiten und die Produktion von WARs (Webarchive) und EARs (Unternehmensarchive) verwalten. Apropos Scala: Wenn Sie diese JVM-Sprache in Eclipse verwenden möchten, gibt es ein Plug-In für das Build-Tool SBT sowie ein vollständiges Scala-IDE-Projekt, das auf Eclipse basiert.

Zur Versionskontrolle wird Eclipse mit Unterstützung für CVS ausgeliefert (es enthält einen integrierten Client). Die Java EE-Edition von Eclipse behandelt auch EGit, das die Git-Integration ermöglicht. Plug-Ins sind für Subversion, Visual SourceSafe, Perforce und Mercurial verfügbar. In der Tat wäre es überraschend, ein Softwareprodukt für die Versionskontrolle zu finden, für das es kein kostenloses Eclipse-Plug-In gibt.

Eclipse-Hilfe und Dokumentation

In der Online-Dokumentation von Eclipse ist mehr Material enthalten, als Sie sich vorstellen können, und da es Eclipse schon so lange gibt, können einige durchaus zurückgehen. Beispielsweise finden Sie im Eclipse-Wiki einen Zeiger auf einen zweiteiligen Artikel „Technische Übersicht über die Eclipse-Plattform“. Die Originalversion des ersten Teils wurde 2001 geschrieben; Die letzte Überarbeitung war 2006. Das Online-Workbench-Benutzerhandbuch für die Luna-Version ist auch hier online. Es geht kilometerweit weiter, da es Dokumentation für alle Luna-Komponenten enthält: C / C ++, Fortran, BIRT, EGit, JavaScript, Entwicklung paralleler Verarbeitung und so weiter.

Die Laufzeithilfe von Eclipse enthält die Funktion "Dynamische Hilfe". Dies öffnet eine Seitenleiste: ein schwebendes Fenster, das überall in der GUI verankert werden kann. Klicken Sie auf eine Ansicht in Ihrer Eclipse-Sitzung, und der Inhalt der Seitenleiste ändert sich entsprechend Ihrer Auswahl. Wenn Sie beispielsweise eine Java-Klasse bearbeiten und auf das Editorfenster klicken, besteht der Inhalt der Hilfeseitenleiste möglicherweise aus Einträgen wie "Java-Editor-Konzepte", "Verwenden von Codevorlagen" und "Java-Editor-Referenz". 

Eclipse kann nahezu jede Aufgabe bewältigen, die im Java-Entwicklungsprozess auftreten kann. Es kann auch mit allen Tools ausgestattet werden, die Sie für zusätzliche Aufgaben benötigen: Umgang mit Webdiensten, Verwalten von Datenbanken, Debuggen eines Remote-Anwendungsservers. Seine große Stärke ist die scheinbar unbegrenzte Anzahl und Vielfalt der Plug-Ins. Tatsächlich ist es nicht unangemessen zu sagen, dass Sie beim Starten von Eclipse eine Kolonie von Plug-Ins aktivieren. Die einzige wirkliche Aufgabe, die Sie beim Verwalten Ihres Entwicklungsprojekts mit Eclipse haben, ist das Verwalten von Eclipse selbst, da es einfach ist, eine IDE-Anarchie zu erstellen.

NetBeans

Das NetBeans-Projekt ist eine etablierte Java-IDE und wird derzeit von Oracle verwaltet. Die IDE wurde Ende der 90er Jahre von Sun Microsystems als Open-Source-Lösung bereitgestellt. Mit NetBeans können Sie Anwendungen nicht nur in Java, sondern auch in Groovy, JavaScript, PHP und C / C ++ entwickeln. Von der Community unterstützte Plug-Ins sind für Python, Ruby und Scala verfügbar.

Die aktuelle Version von NetBeans ist Version 8.0.2, und hier ist 8 die magische Zahl. Weil diese Version Unterstützung für Java 8 hinzufügt - einschließlich Unterstützung für das Debuggen von Code in der Nashorn JavaScript-Engine von JDK 8. Diese Version unterstützt auch das PrimeFaces-Framework sowie verbesserte Funktionen für Maven. (PrimeFaces ist ein Benutzeroberflächen-Framework, das Java Server Faces und AJAX-Komponenten kombiniert. Es kann sowohl für Desktop- als auch für mobile Anwendungen verwendet werden.) Version 8 von NetBeans hat die Unterstützung für JavaScript-Bibliotheken wie AngularJS und JQuery verbessert und die Unterstützung für RequireJS hinzugefügt. Eine Bibliothek, die JavaScript-Abhängigkeiten und das Laden von Modulen verwaltet.

Diese neueste Version von NetBeans verwaltet die Tomcat 8- und Java EE-Hot-Rodded-TomEE-Anwendungsserver sowie WildFly (ehemals JBoss) und GlassFish. Tomcat und GlassFish werden mit der IDE gebündelt.

NetBeans ist in mehreren Editionen erhältlich. Verwenden Sie für die grundlegende Java-Entwicklung die Java SE-Edition. Wählen Sie die EE Edition für die Unternehmensentwicklung. Es bietet Java EE-Unterstützung sowie Unterstützung für die oben genannten Anwendungsserver. Wenn Sie mit dem WebLogic-Anwendungsserver arbeiten, kann NetBeans dies verarbeiten. Sie müssen den WebLogic-Server jedoch separat herunterladen und bei der IDE registrieren.

NetBeans-Editionen existieren für die C / C ++ - Entwicklung zusammen mit der Entwicklung von PHP plus HTML5. Wenn Sie alles wollen, gibt es auch dafür eine Edition.

Scorecard Benutzerfreundlichkeit (20%) Werkzeuge (20%) Add-Ons (20%) Technologieübergreifende Unterstützung (20%) Dokumentation (10%) Wert (10%) Fähigkeit (30%) Einfache Entwicklung (20%) Leistung (30%) Gesamtpunktzahl
IntelliJ IDEA 14 9 9 8 9 8 7 0 0 0 8.5
JDeveloper 12c 7 8 7 8 7 8 0 0 0 7.5
NetBeans IDE 8.0.2 9 8 8 8 8 8 0 0 0 8.2
Eclipse 4.4.1 (Luna) 7 9 9 8 8 8 0 0 0 8.2