Mittwoch, 23. Mai 2012


Artikel

Dezember 2009 | Artikel

Interaktiver IDE-Vergleich: Teil 3 - IntelliJ IDEA

(Link zum Artikel: http://www.entwickler.de/jaxenter//002749)

Roman Strobl von Jetbrains

  • Teilen
  • kommentieren
  • empfehlen
  • Bookmark and Share
Großes Aufsehen erregte die Ankündigung von Jetbrains Mitte Oktober, ihre IntelliJ-IDEA-Entwicklungsumgebung fortan auch in einer freien Community-Edition zur Verfügung zu stellen. Damit reiht sich IDEA ein unter die großen Open-Source-IDEs für die Entwicklung mit Java (und anderen Sprachen und Frameworks) und macht sie vom kommerziellen Nischenprodukt zum frei zugänglichen Allgemeingut auf Augenhöhe mit Eclipse und NetBeans.
Teil 1   Teil 2   

Die Anfänge von IntelliJ IDEA liegen im Jahr 2001, als Version 1.0 der IDE das Licht der kommerziellen Softwarewelt erblickte. Seither konnte sich IDEA trotz der drückenden Konkurrenz aus dem Open-Source-Bereich eine treue Fangemeinschaft erhalten und galt lange Zeit als eine der letzten großen kommerziellen IDEs, die den Siegeszug von Eclipse (und zu einem gewissen Grad auch NetBeans) überstanden haben. Bis JetBrains nun eben auch die Open-Source-Karte ausspielte (fast zeitgleich mit dem gerade erschienenen IntelliJ 9 aka "Maia") und sich damit als dritten Kandidaten für unseren interaktiven IDE-Vergleich qualifizierte. Roman Strobl, Technology Evangelist bei JetBrain, erklärte sich bereit, Eclipse und NetBeans in unserem interaktiven IDE-Vergleich die Stirn zu bieten.

JAXenter: Hallo Herr Strobl. Worauf wurde bei der Entwicklung von IntelliJ IDEA besonderen Wert gelegt?

Roman Strobl: IntelliJ IDEA ist eine Quellcode-zentrierte IDE, die den Fokus auf eine möglichst große Produktivität des Entwicklers legt. Obwohl IntelliJ IDEA ursprünglich als Java-IDE entstanden ist, unterstützt es heute eine Vielzahl an Sprachen. IntelliJ IDEA ist auch eine Keyboard-zentrierte IDE, was bedeutet, dass man völlig ohne Maus auskommt, wenn man möchte. Wir haben uns wirklich darauf konzentriert, alle Erfahrungswerte bzgl. der Bedürfnisse eines Softwareentwicklers in einen Editor umzusetzen. IntelliJ IDEA war die erste IDE, die Refactorings ermöglichte, was dann von anderen IDEs übernommen wurde. Dennoch liegen wir in diesem Bereich immer noch eine Nasenlänge vorne, sowohl was die Anzahl unserer Refactorings als auch deren Qualität anbelangt.

Entwickler lieben IDEA für seine weitreichende Unterstützung unterschiedlichster Sprachen und Frameworks. Ganz gleich also, ob du mit Java SE, Java EE, Spring, Hibernate, PHP, Ruby, Groovy, Scala arbeitest oder einfach nur reine Web-Entwicklung betreibst - du genießt eine großartige Entwicklungserfahrung im Editor mit intelligenter Code-Vervollständigung, zahlreichen Prüfmechanismen, Quickfixes und Refactorings. Natürlich werden auch noch viele weitere Frameworks unterstützt - wir sind immer sehr darauf bedacht, die produktivsten und "heißesten" Frameworks zu unterstützen, die es da draußen gibt. Zum Beispiel bot IDEA bereits einige Tage vor dem offiziellen Release Java EE 6 Support - man sieht also, dass wir immer ein Stückchen weiter vorausblicken.

In letzter Zeit lag unser Fokus darauf, IDEA einer größeren Entwickler-Community zugänglich zu machen, und wir haben entschieden, eine völlig kostenfreie und quelloffene Version von IDEA zur Verfügung zu stellen, die wir „Community Edition“ genannt haben. Diese freie Version enthält bereits alle fortgeschrittenen Werkzeuge für die Entwicklung mit Java SE, Swing und Groovy. Wir sind ziemlich begeistert von diesem Schritt und haben auch eine Community-Webseite unter jetbrains.org eingerichtet, um eine bessere Zusammenarbeit mit der Open Source Community zu gewährleisten.

JAXenter: Wo liegen aus Ihrer Sicht die Stärken von IntelliJ IDEA gegenüber anderen IDEs?

Roman Strobl: Ich sehe die Stärke von IntelliJ IDEA in der Qualität der Unterstützung für viele verschiedene Frameworks, die bereits in der Grundversion der IDE geboten wird. Bei einigen anderen IDEs ist es nötig, erst viele Plug-ins herunterzuladen und die Entwicklungserfahrung ist dann nicht immer sehr konsistent.

Es kann sogar vorkommen, dass die Plug-ins eine IDE völlig unbrauchbar machen. Mit IDEA ist es nicht nötig, sich diverse Plug-ins mühsam zusammenzusuchen - und wenn zusätzliche Plug-ins benötigt werden, stellen wir qualitativ hochwertige Erweiterungen bereit, die gut in die IDE integriert sind.

Ein anderer Punkt ist die Unterstützung für eine Technologie-übergreifende Entwicklung. Zum Beispiel kann man damit beginnen, den Namen einer Komponente in einer Expression-Sprache innerhalb einer JSP-Seite zu refaktorisieren. Die Änderung wird dann automatisch auf die Bean übertragen und alle Veränderungen werden auch auf Query-Sprachen wie EJQL oder HQL angewandt. Keine andere IDE bietet eine solch tiefgreifende Unterstützung für Refactorings über verschiedene Sprachen und Frameworks hinweg. Ein anderes Beispiel hierfür ist, dass eine Refaktorisierung von JavaScript-Code auch Änderungen sowohl in HTML als auch in CSS bewirken kann - sogar in mehreren Dateien gleichzeitig.

Die größte Stärke von IDEA, verglichen mit anderen IDEs, liegt also in seinem Editor. Unsere Refactorings zerstören niemals den Code, weil sie viele verschiedene Technologien berücksichtigen, mit der Folge, dass man viel weniger Angst davor haben muss, Änderungen am Code vorzunehmen. Wir unterstützen auch das sogenannte "Intention Driven Development", was bedeutet, dass man nicht darüber nachdenken muss, welche Klassen, Methoden, Variablen etc. deklariert werden müssen, sondern gleich mit dem Kodieren loslegen und fehlende Teile bei Bedarf nachträglich ergänzen kann (mittels introduce variable, introduce class etc.). Das ist möglich, weil IDEA auch mit unvollständigem Code arbeiten kann - während andere IDEs große Probleme damit haben, mit Code umzugehen, der Syntax-Fehler enthält. Mit IDEA kann man Auto-Vervollständigung und Refaktorisierungen sogar auf Code anwenden, der signifikante Probleme enthält. Auch das ist nur möglich durch unser tiefes Verständnis des Quellcodes - ein Verständnis, welches IDEA anders macht.

Interaktiver IDE-Vergleich: Spielregeln
1. Runde: Wir stellen die drei selben kurzen Fragen an je einen Vertreter von NetBeans, IntelliJ IDEA und Eclipse.

2. Runde: Geben Sie über die JAXenter-Kommentarfunktion Ihr Feedback zurück an die IDE-Entwickler!

3. Runde: Die IDE-Entwickler reagieren auf Ihr Feedback und beantworten Ihre Fragen!

Darüberhinaus können Sie auch in unserem Quickvote Ihre Stimme abgeben: Welche ist Ihre bevorzugte Java IDE?

Machen Sie mit!

Teil 1   Teil 2   

andere Artikel dieser Serie

Kommentare

Gravatar Armin 15.12.2009
um 16:47 Uhr
Mit meinem Interesse für Groovy bin ich schnell auf IDEA gestoßen und muss sagen das die Unterstützung für Groovy (und natürlich auch Java) echt sehr gelungen ist. Bei einem detaillierten Vergleich zwischen Eclipse 3.5, Netbeans 6.7.1 und IntelliJ IDEA 8.1.1 musste ich feststellen das IDEA im moment die einzige IDE ist, mit der man vernünftig Groovy programmieren kann.

Ich denke aber schon das auch IDEA etwas von den anderen IDEs lernen kann. Insbesondere finde ich die Reaktionsgeschwindigkeit der UI speziell im Vergleich zu Eclipse verbesserungswürdig.
Darüber hinaus habe ich mich schon öfter über den hohen Speicherplatzbedarf des Verzeichnisses .IntelliJIdea im user home geärgert. Meine 4-5 recht überschaubaren Projekte verursachen eine Speicherbedarf von über 1GB im .IntelliJIdea Verzeichnis.

Meine Fragen sind also:
1. Warum ist die UI so langsam? Liegt es am Editor, der wie im Artikel erwähnt, sehr hohe Anforderungen an die Verabeitung des Source-Codes erfüllen muss?
2. Warum ist die Metaverzeichnis .IntelliJIdea so groß?
#zitieren
Gravatar Johannes Auer 15.12.2009
um 20:21 Uhr
Ich sehe IntelliJ noch lange nicht auf Augenhöhe mit Eclipse:

1. Eclipse ist viel mehr als eine IDE und bietet gerade im Bereich MDSD so viel mehr als seine Konkurrenten
2. die Community Edition kommt auch etwas schwachbrüstig daher: kein Support für Ruby/JRuby, Python, SQL, HTML, XHTML, CSS, XSL, XPath, JavaScript/ActionScript, PHP (nicht mal PHP!) - wenn Open Source (als vergleichswürdiger Counterpart zu NetBeans und Eclipse), dann aber doch ganz oder gar nicht. Ansonsten kommt mir die ganze Geschichte des "Open Sourcen" als reine Marketing-Angelegenheit vor.
#zitieren
Gravatar Piero Sartini 19.12.2009
um 22:20 Uhr
Vor nicht allzulanger Zeit wurde von Roman ähnliches über NetBeans gesagt :-)

Ich bin im Besitz einer IDEA 8 Lizenz und die Funktionsvielfalt ist wirklich überzeugend. Auch hatte ich nie Stabilitätsprobleme.

Jedoch möchte ich die Beobachtungen von Armin bestätigen: Mir kommt IDEA auch etwas sehr träge vor. Das hat sich mit Maia gebessert, aber was die Performance angeht ist NetBeans noch Meilen voraus. Auch die Oberfläche gewinnt keine Schönheitspreise...

Was die Funktionalität angeht darf man sich allerdings nicht beklagen - einzig Core-Unterstützung von Mercurial geht mir ab, das ist allerdings einfach über ein Plugin nachzurüsten.

Was mehr Kritik verdient ist das Plugin Repository. Hier tummeln sich inkompatible Versionen und teilweise auch Plugins welche schon Ewigkeiten im Core integriert sind.

Meine Fragen sind also auch:
- wieso ist IDEA im Vergleich zur Konkurrenz derart träge?
- wann wird der Plugin Mechanismus endlich modernisiert?
#zitieren
Gravatar Florian 23.01.2010
um 11:29 Uhr
> Insbesondere finde ich die Reaktionsgeschwindigkeit der UI
> speziell im Vergleich zu Eclipse verbesserungswürdig.
Probiert mal IntelliJ 9.0 aus - noch schneller gehts dann nur mit der 7er. Die 8er ist etwas daneben gegangen was Geschwindigkeit und Stabilität angeht.
#zitieren