Als Java-Softwareentwickler würde ich gerne meine persönlichen Erfahrungen mit Ihnen teilen. Zunächst muss ich erwähnen, dass alle meine Erfahrungen mit den oben genannten IDEs auf einer Linux-Plattform liegen, aber ich habe gesehen, dass dies für dieses Betriebssystem gilt ist nicht dasselbe wie für Windows oder MAC. Unter Berücksichtigung Ihrer "reinen Java" -Einschränkung werde ich auch nicht auf Funktionen eingehen, die sich auf andere Sprachen / Frameworks usw. beziehen, die möglicherweise unterstützt werden. Also los geht's:
Die guten Dinge an dieser IDE sind:
- die optisch ansprechendsten Eine der drei persönlichen Meinungen
- einfache Quellcode-Navigation
- Die Navigation zwischen Maven Pom-Dateien enthält beim Klicken auf Abhängigkeiten Info-Tooltips
- Gute Arbeitsbereichsstruktur, ermöglicht das Erstellen von Arbeitssätzen - Gruppen von Projekten innerhalb eines Arbeitsbereichs, sodass man sich eher auf einen konkreten Arbeitssatz als auf den gesamten Arbeitsbereich konzentrieren kann.
- mehrere Perspektiven (dedizierte Sprachentwicklung wie Java, Spring, JavaScript, Debug-Perspektive usw.). Jede Perspektive hat ihre eigenen Einstellungen für Ansichten, Position von Fenstern und Werkzeugen usw., die von der IDE automatisch gespeichert werden. Für mich ist dies ein wertvoller Vorteil, obwohl die Konfiguration nur pro Arbeitsbereich verwaltet wird.
- ermöglicht das einfache Importieren und Debuggen von Quellcode von Drittanbietern. Manchmal muss der Code manuell heruntergeladen werden, aber der Rest finde ich einfach genug.
Nachteile:
Das Laden ist langsam , ungeschickt bei Interaktionen. Mit zusätzlichen Plugins wird es langsamer. stürzt häufig ab, insbesondere unter Linux (Windows-Versionen sind zuverlässiger). Es ist gut, es in wenigen Tagen neu zu starten. unter Linux, Versionen höher als 3.0, verzögern sich einige Sekunden, bevor eine Markup-Datei (XML, JSF) geöffnet wird, was sehr kontraproduktiv ist.
Versionen unter 3.0 haben nicht das oben genannte Markup-Problem, unterstützen jedoch keine Java 1.7-Syntaxfunktionen (z. B. die kurzen Generika). JSF fehlt die automatische Funktion Fertigstellung - Mac-Versionen haben inkonsistente Konventionen für Verknüpfungen. Ein Teil von ihnen verwendet die Kombination
Strg +?
, andere die FN +?
. Benutzer, die mit der IDE auf anderen Betriebssystemen vertraut sind, sind zunächst frustriert. -
Das Verschieben von Dateien über Pakete / Projekte hinweg kann schmerzhaft sein, da das Kopieren (Ausschneiden) / Einfügen manchmal nicht der Fall ist Arbeit, ziehen Sie einfach & drop
-
plötzliches Einfrieren bei automatischer Vervollständigung, behoben nur durch Neustart der IDE (könnte durch Minimieren und Wiederherstellen umgangen werden, aber die Menübefehle und Verwandte Tastaturkürzel funktionieren nicht mehr - dh sie können Dateien bearbeiten, aber nicht speichern. Das Kopieren und Einfügen in einen externen Editor ist jedoch möglich.
- Interne IDE-Taskprozesse sind nicht zuverlässig. Mögliches Hängenbleiben, Unfähigkeit zu stoppen oder sogar Deadlocking, wenn mehrere Aufgaben mit gemeinsam genutzten Ressourcen gestartet werden (z. B. mehrmaliges Aktualisieren des SVN-Repositorys, was mehr als einen Aktualisierungsprozess verursacht).
Ich habe Erfahrung mit dieser IDE nur unter Linux. Vielleicht gibt es auf anderen Plattformen Unterschiede, die mir fehlen könnten.
Vorteile:
- intuitiv zu bedienende
- hervorragende Code-Navigation
- Unterstützung für Eclipse-Projekte (sie können als IDEA-Projekte importiert werden)
- Hervorragendes und ausführliches Refactoring
- , das über das Kontextmenü (eine Funktion, die mir in Eclipse fehlt) über die Projektansicht auf den Dateisystemspeicherort einer Datei zugreifen kann
Nachteile
- für Spring-XML-Kontexte werden nicht alle Attribute erkannt, obwohl die importierten XML-Schemas abgerufen wurden. Das eigentliche Problem ist die Fehlerhervorhebung, die unerfahrene Entwickler
verwirren kann
Arbeiten mit Subversion (Überprüfen und Synchronisieren von Änderungen) nicht so intuitiv wie in Eclipse Falsche Fehlersyntaxfarbe in pom.xml-Dateien, wenn Maven-Eigenschaften anstelle von Literalen für Abhängigkeiten (wie die Version) verwendet werden Nummer und etc). Dies kann unerfahrene Personen verwirren. Der Vorteil, den ich mir vorstellen kann:
- Für die Webentwicklung verfügt es über einen eingebetteten Server, der das Hosten einer Webanwendung für Debug-Zwecke erleichtert, ohne einen externen Server einzurichten und auf diesem bereitzustellen.
Nachteil:
langsame Ladezeit Ich habe in der Vergangenheit NetBeans verwendet und es Eclipse vorgezogen, da es zu diesem Zeitpunkt mehr war stabil und verbraucht weniger Ressourcen. Aber dann benutzte ich es, um meine Hausaufgaben an der Universität zu machen. Ich habe diese IDE nicht professionell verwendet , da meine Arbeitsumgebungen die oben genannten Optionen für Java bevorzugten, daher würde ich mich nicht auf Vergleiche einlassen.
Meine persönliche Wahl wird wie ich in Richtung Eclipse gewichtet bin damit besser vertraut, obwohl es viel mehr Nachteile hat. Ich bevorzuge es wegen seiner Fähigkeit, den Arbeitsbereich zu organisieren und mich besser auf die aktuelle Aufgabe konzentrieren zu können. Wie gesagt, die verschiedenen Perspektiven helfen sehr, da ich jede so konfiguriert habe, dass sie für die konkrete Aufgabe, an der ich arbeite, am besten geeignet ist. Ich mag auch die ausführliche Ausgabe von Subversion, da es für mich wichtig ist, meine Commits / Updates richtig zu verfolgen.
IntelliJ IDEA macht es mir leicht, mich daran anzupassen, obwohl es in der Tat weniger aufdringlich und intelligent ist. Es erkennt automatisch mehrere Projekttypen und fragt Sie im Moment, ob etwas zusätzliche Konfiguration benötigt. Wenn Sie beispielsweise ein Maven-Projekt importieren und das Maven-Ausgangsverzeichnis nicht eingerichtet ist, werden Sie danach gefragt, wenn Sie versuchen, Maven-bezogene Aufgaben auszuführen, und sich an Ihre Wahl erinnern. Offensichtlich versucht die IDE, Sie bei der Konfiguration und Verwendung zu unterstützen. In Kombination mit seiner Stabilität und Reaktionsfähigkeit (im Vergleich zu Eclipse) fühlt es sich als viel zuverlässigere Umgebung an. Ich muss zugeben, dass ich mich nicht eingehend mit der Anpassung befasst habe, aber es ist ein Kandidat, um meine IDE der Wahl zu werden.