Mittwoch, 23. Mai 2012


Artikel

Dezember 2009 | Artikel

Interaktiver IDE-Vergleich: Teil 2 - Eclipse

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

Daniel Megert im Gespräch über Eclipse und JDT

  • Teilen
  • kommentieren
  • empfehlen
  • Bookmark and Share
Die Ursprünge von Eclipse liegen bei der Softwareschmiede Object Technology International (OTI) aus Ottawa, Kanada, die im Jahr 1996 von IBM übernommen wurde. Die Arbeiten des OTI-Teams, das bereits für die Smalltalk-basierte VisualAge-IDE verantwortlich zeichnete, an einer neuen, erweiterbaren Entwicklungsplattform mündeten schließlich in die populäre Eclipse-Entwicklungsumgebung, die 2001 von IBM als Open-Source-Projekt freigegeben wurde und den Markt der IDEs seitdem entscheidend geprägt hat.
Teil 1   Teil 2   

Für die Java-Entwicklung wurde das Eclipse Java-Development-Tools-(JDT-)Projekt aus der Taufe gehoben, das als erstes Anwendungsbeispiel für die grundsätzlich offene Eclipse-Plattform fungierte. Daniel Megert war von Anfang an im OTI-Entwicklerteam dabei und ist als Eclipse Project Committer der ersten Stunde und Co-Lead des Eclipse-JDT-Projekts prädestiniert dafür, in unserem interaktiven IDE-Vergleich die Eclipse-Position zu vertreten

JAXenter: Hallo Herr Megert. Worauf wurde bei der Entwicklung der Eclipse IDE und der Java Development Tools besonderen Wert gelegt?

Daniel Megert: Unser Ziel war es, eine betriebssystemunabhängige, erweiterbare Plattform für viele verschiedene Werkzeuge zu schreiben, welche gemeinsam darauf zusammenleben können und sich nahtlos integrieren. JDT war als erste exemplarische Anwendung auf dieser Plattform gedacht.

Hauptanliegen waren die Erweiterbarkeit durch sogenannte Extension Points und die Skalierbarkeit dadurch, dass ein Plug-in nur auf Verlangen geladen wird. Dabei war es uns ein großes Anliegen, dass die verschiedenen Komponenten nur über Eclipse APIs aufeinander zugreifen.

Es wurde großes Gewicht darauf gelegt, dass jedes Stück Code auch irgendwo benutzt wurde und dass man jeden Tag mit der neusten Version arbeitete, ganz nach dem Moto "eat your own dog food". Beim Entwicklungsprozess wurde streng darauf geachtet, dass gemeinsam und offen geplant wurde und nach jedem sechswöchigen Meilenstein auch tatsächlich etwas Brauchbares und gut Getestetes abgeliefert wurde.

Durch Newsgroups und Bugzilla haben wir andere Teams innerhalb und ausserhalb IBM früh eingebunden, um direktes Feedback von unseren Benutzern zu erhalten. Dadurch waren wir gut vorbereitet, als das Projekt unter dem Namen Eclipse Open Source wurde. Unsere Erfahrungen haben wir genutzt, um eine große Community rund um Eclipse aufzubauen.

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

Daniel Megert: Eine besondere Stärke liegt an der Fülle von Werkzeugen, die der Entwickler beim Schreiben von Code zur Hand hat: Da sind natürlich der kontextsensitive Content Assistant und viele wertvolle Refactorings, was die meisten IDEs bieten. Dazu kommen aber auch viele intelligente Quick Assists und Quick Fixes. Das Lesen von Code wird erleichtert durch Quick Outline und Quick Type Hierarchy sowie Code Hovers, mit denen man interagieren kann (z.B. im selben Javadoc Hover weiter navigieren).

Ein weiterer großer Vorteil ist der einzigartige inkrementelle Java Compiler (ECJ), welcher auch ausserhalb der IDE genutzt werden kann. Dieser erlaubt es auch, viel toleranter auf Typfehler im Code zu reagieren.

Natürlich spielt auch die Erweiterbarkeit und die große Community von Eclipse eine große Rolle: die Extension Points in Kombination mit den stabilen Eclipse APIs ermöglichen den Plug-in-Entwicklern, das bestehende System zu erweitern und erlaubt es, dass man aus einer riesigen Fülle von Plug-ins auswählen kann, wenn es darum geht, die eigene IDE zu erweitern. Dabei helfen die Eclipse API Tools, dass die API-Regeln beachtet werden.

Der Hauptvorteil ist jedoch, dass man all dies unter einer Open-Source-Lizenz nutzen darf und wegen der Produkt-freundlichen Lizenz (EPL) auch selber in eigene Produkte integrieren kann.

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 Andreas Ender 10.12.2009
um 09:24 Uhr
"Die Modularität von Eclipse hat Vorteile, kann aber dazu führen, dass es zwischen den einzelne Plug-ins Inkonsistenzen und verschiedene Ansätze zur Lösung von Problemen geben kann."

Und genau dass ist DAS Problem bei Eclipse! Für jede fehlende Funktionalität muss man ein Plugin irgendeines Authors verwenden das sich dann (oh wunder) mit einem anderen Plugin nicht verträgt. Noch mieser ist es, wenn eine neue Eclipse Version erschienen ist und das Plugin vom Author nicht geupdated worden ist... viel Spass bei der Suche nach einer Alternative. Auch ne tolle Sache ist es, wenn ein Plugin Bibliotheken einer anderen Version verwendet und wenn man versucht diese zu installieren, die anderen Plugins nicht mehr funktionieren. Plugin-hell nenne ich das.

Abgesehen davon finde ich ist Eclipse eine gute Platform für die Entwicklung von Java-Software. Ich habe viele Jahre damit entwickelt (Vorgaben der Kunden) aber inzwischen konnte ich meine neuen Kunden überzeugen auf Idea umzusteigen.
#zitieren
Gravatar ralph 10.12.2009
um 11:32 Uhr
Ich sehe das ähnlich. Vor allem durch die verkürzten Release Zyklen werden ständig neue Konzepte integriert oder überarbeitet so dass viele Plugins - und damit meine ich auch Eclipse-eigenen Plugins - nicht mehr richtig funktionieren. Ein gutes Beispiel hierfür ist das BPMN Plugin. Das ist zwar im aktuellen Galileo Release enthalten funktioniert aber nicht mehr.
Mir kommt es so vor als wäre das Ziel der Übung nur noch so viel Plugins wie Möglich ins nächste Release zu packen und sich dafür feiern zu lassen.
#zitieren
Gravatar AK 10.12.2009
um 12:59 Uhr
Das Plugin-Konzept zu kritisieren ist Blödsinn. Ich mein, wenn du keine Plugins magst dann installiere keine. Wenn du auf ein bestimmtes Plugin angewiesen bist und dieses sich nicht mit der neuen Version verträgt, dann installiere keine neue Version von eclipse oder verabschiede dich von diesem Plugin langfristig, sollte es keine Updates geben.

Wer soll eine riesen IDE managen in der alle Freatures (JDT, CDT, WEB, SQL, etc.) bereits inklusive sind? Und das dann auch bitteschön kostenlos, ne ist klar. Zumal es auch Vorteile hat wenn ein Plugin mal eben ein update bekommen kann anstatt jedesmal die komplette IDE updaten zu müssen, weil z.B. im SQL-Editor ein Bug ist.

P.S. Nichtdesto trotz gibt es natürlich auch teilweise Probleme an der Umsetzung, aber das Plugin-Konzept ist ungeschlagen.
#zitieren
Gravatar Ralph 10.12.2009
um 15:49 Uhr
Ja das Pluginkonzept ist sicher sehr gut und das will ich auch gar nicht in Frage stellen. Das Problem in den letzten zwei Jahren ist, dass die Eclipse IDEs mit einem ganzen Set an Plugins gebündelt werden - ob man die jetzt mag oder nicht. (Stichwort simultanious release)
Ich mach dazu mal ein Beispiel. Ich bin JEE Entwickler also installiere ich mir die Eclipse JEE Version. Mitgeliefert bekomme ich (neben Web Tools und Server Integration die ich sehr gut finde) auch Mylyn. Ich kann diese nicht verwenden weil Java.net diese Schnittstelle nicht unterstützt. Dafür benötige ich Subversion und Maven. Hier fehlen aber die Plugins teilweise oder vollständig. Um mein SVN Repository richtig zu nutzen muß ich nicht nur Subversive nachinstallieren, sondern auch einige Plugins aus externen Quellen nachladen was gar nicht so trivial ist da mir der Updatemanager suggeriert ich müsse nur das Häckchen setzen und alles wird gut. Ist aber nicht so wen man noch SVN Connectoren braucht.
Im Prinzip hat man bei Eclipse jetzt was losgetreten was man nicht mehr los wird. Die Zusammenhänge/Abhängigkeiten der ganzen Plugins sind vermutlich jetzt nur noch schwer zu managen, so daß man Dinge wie SVN oder Maven einfach nicht mehr mit vernünftig reinbekommt.
Das finde ich halt schade und werde dann in Zukunft wohl auch wieder mit der Classic Variante von Eclipse Arbeiten.
Ich fände es besser die Eclipse Gruppe würde eine neue Website für Plugins anlegen in der jeder Entwickler (egal ob er zur Eclipse Foundation gehört oder nicht) beschreibt wie das eigene Plugin am besten zu installieren ist. Und wir User können in Form von Kommentaren mithelfen oder voten für Plugins.
#zitieren
Gravatar AK 10.12.2009
um 16:23 Uhr
Also ich installiere mir die Version für Java-Entwickler, dann kommen der Reihe nach folgende Plugins: CDT (C++), Subversive plus den Connectoren, DTP (SQL), WTP (HTML, XML etc.) und dann noch BIRT. Das funktioniert bei mir stressfrei für meine Java und C++ Projekte. Für ein Web-Projekt (JSC, Facelets, Spring, JPA) verwende ich die MyEclipse, da muss ich dann nur Subversive plus Connectoren nachinstallieren. Geht bei mir auch stressfrei. Mit Maven habe ich schon seit 2,5 Jahren nicht mehr gearbeitet, das hat mich schon immer genervt, obwohl eine einfache Eclipse-Integration damals schon als plugin vorhanden war. Mylyn blende ich aus. #zitieren
Gravatar Ralph 10.12.2009
um 17:05 Uhr
ja vermutlich hast du recht. Ich werde mir das nächste mal auch einfach die Java Edition installieren und dann das Eclipse selber so weit aufrüsten wie für mich nötig.
Und eigentlich ist ja sogar die Eclipse Plugin Seite gerade in diesen Tagen neu überarbeitet worden.
http://marketplace.eclipse.org/
Ich ziehe hiermit meine Kritik zurück ;-)
#zitieren
Gravatar Thomas 10.12.2009
um 23:11 Uhr
Bezüglich der Usability finde ich inzwischen Netbeans unter Linux besser.
Eclipse arbeitet gerade in der aktuellen Version (3.5) mit dem aktuellen GTK fehlerhaft.

Siehe auch : http://www.eclipse.org/forums/index.php?S=3061129fb70b1822c6520239b136e342&t=msg&th=153842

Als KDE Benutzer würde ich mir einen sowieso einen echten KDE Port von Eclipse wünschen.
#zitieren
Gravatar AK 11.12.2009
um 10:13 Uhr
Mit diesen Komplettpaketen hatte ich bisher nur negative Erfahrungen gemacht und diese dann gemieden. Ausnahmen sind hier MyEclipse, welches aber kommerziell ist und das BIRT AllInOne-Paket, welches den Designer beinhaltet, das ist aber eher nicht für Antwickler gedacht, sondern nur für alle Anderen die Reports designen.

P.S.: Ich gebe ja zu, dass ich noch andere Entwickler kenne, die mit dem Plugin-Update-Mechanismus nicht so richtig zufrieden sind :-)
#zitieren
Gravatar nero 12.12.2009
um 10:48 Uhr
Eclipse wird doch mehr und mehr zum Windows unter den IDEs - jedesmal größer, dauernd bekommt man ein Update verpasst, das man mehr oder weniger gezwungen ist, mitzugehen, usw. Ich kenne v.a. viele PHP-ler, die Eclipse für viel zu schwerfällig halten. Kann man da nicht mal eine schlankere, agilere Version der Eclipse-IDE bauen? Wird das vielleicht im Eclipse e4 etwas entspannter??? #zitieren