Eclipse (IDE)

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen
Eclipse

Eclipse-Luna-Logo.svg
Eclipse 4.12 screenshot.png
Eclipse mit Willkommensbildschirm
Basisdaten

Entwickler Eclipse Foundation[1]
Erscheinungsjahr 7. November 2001
Aktuelle Version 4.23.0[2]
(16. März 2022)
Betriebssystem GNU/Linux[3], macOS[4], Microsoft Windows[5], Solaris[6]
Programmiersprache Java[7]
Kategorie IDE
Lizenz Eclipse Public License
deutschsprachig ja
www.eclipse.org/eclipseide/

Eclipse (von englisch eclipse „Sonnenfinsternis“, „Finsternis“, „Verdunkelung“) ist ein open-source Programmierwerkzeug zur Entwicklung von Software verschiedener Art. Ursprünglich wurde Eclipse als integrierte Entwicklungsumgebung (IDE) für die Programmiersprache Java genutzt, aber mittlerweile wird es wegen seiner Erweiterbarkeit auch für viele andere Entwicklungsaufgaben eingesetzt. Für Eclipse gibt es eine Vielzahl sowohl quelloffener als auch kommerzieller Erweiterungen.

Eclipse selbst basiert auf Java-Technik, ab Version 3.0 auf dem OSGi-Framework Equinox.

Geschichte[Bearbeiten | Quelltext bearbeiten]

Eclipse ist der Nachfolger von IBM Visual Age for Java 4.0. Der Quellcode für Eclipse wurde am 7. November 2001 von IBM freigegeben.[8] Am 2. Februar 2004 beschloss das von IBM geführte Eclipse-Konsortium die Gründung der rechtlich eigenständigen Eclipse Foundation, die seitdem für die Entwicklung von Eclipse verantwortlich ist.[9]

Eclipse unterstützt die Java-Version 5 ab Version 3.1 und Java 6 ab Version 3.2. Ab 2006 wurden die Veröffentlichungstermine neuer Versionen der wichtigsten Eclipse-Komponenten harmonisiert, um Versionskonflikte zu vermeiden und Eclipse-Anwendern die Nutzung zu erleichtern.[10]

Der Veröffentlichungszyklus wurde ab Version 2018-09 auf Quartalsaktualisierungen verkürzt, da ab Java 9 nicht mehr alle 3 Jahre, sondern alle 6 Monate eine neue Java Version erscheint. Es folgt nun einem Rolling Release Modell.[11]

Projektnamen[Bearbeiten | Quelltext bearbeiten]

Die Projektnamen waren bisher nach Jupitermonden (Callisto, Europa und Ganymede), den Raumsonden Galileo und Helios, die Version 3.7 nach der für Eclipse typischen Farbe Indigo benannt. Die Anfangsbuchstaben der Projektnamen werden ab Version 3.5 in alphabetischer Reihenfolge vergeben.[12] Die Version 3.8 erschien gleichzeitig mit der Version 4.2. Um mit dem schnelleren Release-Zyklus von Java mitzuhalten, wurde 2018 von einem jährlichen Release auf vier Releases pro Jahr umgestellt. Damit wurde auch das Namesschema der Release-Versionen auf "{Jahreszahl}-{Monat}" vereinfacht, also beispielsweise "2018-09".

Versionen[Bearbeiten | Quelltext bearbeiten]

Projektname Version Veröffentlichung
Ältere Version; nicht mehr unterstützt: 3.0 28. Juni 2004
Ältere Version; nicht mehr unterstützt: 3.1 28. Juni 2005
Callisto Ältere Version; nicht mehr unterstützt: 3.2 26. Juni 2006[13][14]
Europa Ältere Version; nicht mehr unterstützt: 3.3 27. Juni 2007[15][14]
Ganymede Ältere Version; nicht mehr unterstützt: 3.4 25. Juni 2008[16]
Galileo Ältere Version; nicht mehr unterstützt: 3.5 24. Juni 2009[17]
Helios Ältere Version; nicht mehr unterstützt: 3.6 23. Juni 2010[18]
Indigo Ältere Version; nicht mehr unterstützt: 3.7 22. Juni 2011[19]
Juno Ältere Version; nicht mehr unterstützt: 3.8 und 4.21 27. Juni 2012[20]
Kepler Ältere Version; nicht mehr unterstützt: 4.3 26. Juni 2013[21]
Luna Ältere Version; nicht mehr unterstützt: 4.4 25. Juni 2014[22][14]
Mars Ältere Version; nicht mehr unterstützt: 4.5 24. Juni 2015[23]
Neon Ältere Version; nicht mehr unterstützt: 4.6 22. Juni 2016[24]
Oxygen Ältere Version; nicht mehr unterstützt: 4.7 28. Juni 2017[25][14]
Photon Ältere Version; nicht mehr unterstützt: 4.8 27. Juni 2018[26][14]
2018-09 Ältere Version; nicht mehr unterstützt: 4.9 19. September 2018[27][14]
2018-12 Ältere Version; nicht mehr unterstützt: 4.10 19. Dezember 2018[28][14]
2019-03 Ältere Version; nicht mehr unterstützt: 4.11 20. März 2019[29][14]
2019-06 Ältere Version; nicht mehr unterstützt: 4.12 19. Juni 2019[30][14]
2019-09 Ältere Version; nicht mehr unterstützt: 4.13 18. September 2019[31][14]
2019-12 Ältere Version; nicht mehr unterstützt: 4.14 18. Dezember 2019[32][14]
2020-03 Ältere Version; nicht mehr unterstützt: 4.15 18. März 2020[33][14]
2020-06 Ältere Version; nicht mehr unterstützt: 4.16 17. Juni 2020[34][14]
2020-09 Ältere Version; nicht mehr unterstützt: 4.17 16. September 2020[35][14]
2020-12 Ältere Version; nicht mehr unterstützt: 4.18 16. Dezember 2020[36][14]
2021-03 Ältere Version; nicht mehr unterstützt: 4.19 17. März 2021[37][14]
2021-06 Ältere Version; nicht mehr unterstützt: 4.20 16. Juni 2021[38][14]
2021-09 Ältere Version; nicht mehr unterstützt: 4.21 15. September 2021[39][14]
2021-12 Ältere Version; nicht mehr unterstützt: 4.22 8. Dezember 2021[40][14]
2022-03 Ältere Version; nicht mehr unterstützt: 4.23 16. März 2022[41][14]
2022-06 Aktuelle Version: 4.24 15. Juni 2022[42][14]
2022-09 Zukünftige Version: 4.25 14. September 2022[43][14]
Legende:
Ältere Version; nicht mehr unterstützt
Ältere Version; noch unterstützt
Aktuelle Version
Aktuelle Vorabversion
Zukünftige Version
1 Es existiert von Eclipse Juno zusätzlich eine Version 3.8. Diese wird nicht offiziell auf der Eclipse Download-Seite beworben, sondern ist als Paket über Distributionen verfügbar.[44] Eclipse 3.8 stellt Bugfixes für Eclipse Indigo bereit und enthält Java 7 Support. Die Wartung wurde parallel zur Version 4.2 durchgeführt.[45]

Die einzelnen Versionen werden jeweils als Grundversion oder als Zusammenstellung aus verschiedenen Programmpaketen veröffentlicht. Einzelne Programmpakete kann man jedoch auch später noch nachinstallieren. Die Benutzeroberfläche von Eclipse ist standardmäßig englischsprachig. Es gibt jedoch zu jeder Version Babel-Language-Packs, die man sich in den entsprechenden Sprachen als Plug-in installieren kann.[46]

Architektur[Bearbeiten | Quelltext bearbeiten]

Bis einschließlich zur Version 2.1 war Eclipse als erweiterbare IDE konzipiert. Ab Version 3.0 ist Eclipse selbst nur der Kern, der die einzelnen Plug-ins lädt, die dann die eigentliche Funktionalität zur Verfügung stellen. Diese Funktionalität basiert auf Equinox. Sowohl Eclipse als auch die Plug-ins sind vollständig in Java implementiert. Zur Erstellung der grafischen Oberfläche wurde SWT verwendet. Zur Darstellung der GUI-Komponenten basiert SWT ähnlich wie AWT auf den nativen GUI-Komponenten des jeweiligen Betriebssystems. Eclipse wird für 14 verschiedene Systeme und Architekturen bereitgestellt und gilt somit als plattformunabhängig. Die Plug-ins lassen sich direkt von einem Update-Server, über den "Market Place", oder durch Entpacken einer Installationsdatei installieren.

Das frei verfügbare Eclipse SDK umfasst die Eclipse-Plattform, Werkzeuge zur Java-Entwicklung (Java Development Tools, JDT) und die Umgebung zur Entwicklung von Eclipse-Plug-ins (Plug-in Development Environment, PDE).

Rich Client Platform (Eclipse RCP)[Bearbeiten | Quelltext bearbeiten]

Eine Beispielanwendung unter Windows XP
… und dieselbe Applikation unter macOS

Eclipse bietet die Rich Client Platform, welche es Anwendungsentwicklern ermöglicht, basierend auf dem Eclipse-Framework, von der Eclipse-IDE unabhängige Anwendungen zu schreiben.[47]

Die folgenden Komponenten (Plug-ins) werden typischerweise mindestens für eine Eclipse-Rich-Client-Platform-Anwendung verwendet:

  • Eclipse Core Platform – steuert den Lebenszyklus einer Eclipse-Anwendung
  • Eclipse Platform UI – stellt die Workbench mit den Konzepten Sichten, Editoren, Perspektiven, Menüs und Toolbars zur Verfügung
  • Standard Widget Toolkit (SWT)
  • JFace

Seit der Version 4.0 ist es auch möglich andere UI Technologien als SWT zu verwenden, konkret existiert mit dem Projekt e(fx)clipse eine Implementierung in JavaFX vor.[48]

Weitere Eclipse-Komponenten, wie das Hilfesystem oder das automatische Aktualisierungssystem, können auch eingesetzt werden. Üblicherweise wird das Eclipse-OSGi-Framework Equinox zum Kombinieren (bundling) der Komponenten eingesetzt.

Oberfläche[Bearbeiten | Quelltext bearbeiten]

Eclipse ist in Komponenten (parts) gegliedert, die in Sichten (views) und Editoren (editors) gegliedert werden, wobei die Unterscheidung in view und editor sich an der Nutzung orientiert und nicht technischer Natur ist. Diese Fenster können durch Drag and Drop beliebig angeordnet oder minimiert werden.[49]

Sichten[Bearbeiten | Quelltext bearbeiten]

Mit Hilfe von views können Daten direkt bearbeitet werden und darunterliegende Datenstrukturen verändert werden.[49]

Beispiele für views sind

  • die (auch aus den meisten anderen Editoren bekannte) Navigator-View, die die im Projektverzeichnis enthaltenen Dokumente anzeigt.
  • der Klassenexplorer, der baumartig strukturiert Symbole für die Klassen, Funktionen, Variablen, Importe eines geöffneten Quelltextes anzeigt oder
  • das Suchfenster, das die Ergebnisse einer Suche auflistet.

Editoren[Bearbeiten | Quelltext bearbeiten]

Editor der Java Development Tools mit Warnungen und Fehlern

Editoren sind die Komponenten, die nur das jeweils geöffnete Datenelement bearbeiten und in denen der Nutzer explizit speichern muss, um Daten zu verändern.[49] Beispiele sind Fenster, die meist den Quelltext mit Syntaxhervorhebung anzeigen, wobei es für viele Programmiersprachen einen eigenen Editor gibt (zum Beispiel für Java, C, PHP, Python, HTML, aber auch einen einfachen Texteditor). Genauso gibt es aber auch visuelle Editoren (beispielsweise UML-Editoren, GUI-Builder) oder solche, die Baumstrukturen anzeigen (etwa der XML-Editor). Editoren nehmen normalerweise den meisten Raum des Programmfensters in Anspruch. Mehrere geöffnete Quelltexte werden als Reiter geöffnet, die über Tabs am oberen Rand in den Vordergrund gebracht werden können. Außerdem können Tabs fixiert werden, damit der zugehörige Quelltext nicht versehentlich geschlossen wird. Auch Editoren können weitgehend frei per Drag and Drop angeordnet werden, und eine Datei kann in mehreren Editoren gleichzeitig geöffnet werden.

Oft sind folgende interaktive Funktionen bei den Editoren für Programmiersprachen vorhanden:

  • Im Java-Editor kann durch Strg+Linksklick auf einen Funktionsaufruf direkt zu der Deklaration der entsprechenden Funktion gesprungen werden. Fährt man mit dem Mauszeiger über ein Element, für das Quelltext-Dokumentation vorhanden ist, so wird diese in einem Pop-up-Fenster angezeigt.
  • Wird der Cursor auf eine Variable gesetzt, so werden diese und alle weiteren Vorkommen derselben im Dokument farbig unterlegt, in einer Leiste am rechten Rand des Editors werden sie als kleine farbige Striche angezeigt, die als Links zu den entsprechenden Stellen im Quelltext fungieren.
  • Häufig wird Code-Faltung unterstützt.
  • Unterstützung von Autovervollständigung mittels Strg+Leertaste.
  • Frei konfigurierbare Code-Vorlagen mit Variablenunterstützung und Kontextzuordnung.
  • Unterschiede des geöffneten Quelltextes zur auf der Festplatte gespeicherten Version, sowie Zeilennummerierung werden in einer Leiste am linken Rand farbig hervorgehoben.
  • Konfigurierbare automatische Codeformatierung, die des Java-Editors ist die am weitesten entwickelte.

Perspektiven[Bearbeiten | Quelltext bearbeiten]

Hallo-Welt-Programm in der Eclipse C/C++ Perspektive

Perspektiven sind vollständige Anordnungen von parts. Ein editor bleibt beim Perspektivwechsel erhalten.[49] Perspektiven sind weitgehend konfigurierbar, und benutzerdefinierte Konstellationen können gespeichert und geladen werden. Meistens stellen Plug-ins, die man nachinstalliert, vorkonfigurierte Perspektiven zur Verfügung, die dann den eigenen Wünschen entsprechend angepasst werden können.

Erweiterungen[Bearbeiten | Quelltext bearbeiten]

Für die Eclipse-IDE wurden schon zahlreiche Erweiterungen geschrieben, teils proprietär, teils frei verwendbar. Primär wird Eclipse als Java-IDE verwendet, dabei kommen vor allem die in den Java Development Tools zusammengefassten Plug-ins zum Einsatz. Es existieren aber etliche Plug-ins für andere Sprachen oder zur Entwicklung von OSGi-Bundles. Dazu zählt vor allem das CDT-Projekt, das C und C++ unterstützt und u. a. die GNU Compiler Collection und die LLVM (-Clang und -GCC) abdeckt. Darüber hinaus gibt es auch Plug-ins für Perl, PHP, ColdFusion, Ruby, Python, C#, Fortran, Ada2005, Scala usw. Diese können über ein Menü in Eclipse eingebunden werden. Neben Plug-ins für konkrete Programmiersprachen gibt es auch solche, die allgemeine Entwicklungsprozesse unterstützen, wie beispielsweise Mylyn für „aufgabenorientierte Entwicklung“ oder Saros[50] für Verteilte Paarprogrammierung. Oft sind diese Ergänzungen – anders als das Kernprogramm – nur auf Englisch erhältlich.

Neben den Java Development Tools gibt es viele weitere Projekte, die ebenfalls auf der Eclipse-Website koordiniert werden. Ein solches Projekt ist das Eclipse Tools Project, das verschiedene Hilfsmittel entwickelt, die von Entwicklern erweitert werden können. Weitere Projekte sind das Eclipse Modeling Framework (EMF), das Graphical Editing Framework (GEF) und die Eclipse Riena Platform (Riena). Mit EMF lässt sich ein Datenmodell erstellen, das zum Beispiel auf UML basieren kann. GEF ist ein Projekt, das es Entwicklern erlaubt, mit Hilfe eines existierenden Datenmodells schnell einen grafischen Editor zu erstellen. Riena unterstützt Entwickler bei der Ausstattung einer Anwendung mit einem benutzerfreundlichen Interaktionskonzept und ansprechenden Oberflächenelementen.

Basierend auf diesen Erweiterungen und dem modularen Aufbau von Eclipse selbst, lassen sich für Projekte spezifische Eclipse-Bundles erstellen. Diese enthalten alle für ein bestimmtes Projekt notwendigen Teile und Erweiterungen von Eclipse, ohne mit unnötigen Teilen Hauptspeicher und Rechenleistung zu verbrauchen.

Inzwischen gibt es auch Open-Source-Erweiterungen, die eine automatisierte Bereitstellung und Konfiguration erheblich erleichtern. Dazu zählen oasp4j-ide, Oomph und Yatta Profiles.[51]

Seit Version 4.7 integriert Eclipse das Language Server Protocol. Initial profitierten Eclipse Acute für C#, Eclipse Corrosion für Rust und die TextMate Unterstützung für Eclipse.[52]

Verfügbare Systeme und Architekturen[Bearbeiten | Quelltext bearbeiten]

  • Linux (AMD64/GTK 2)
  • Linux (PPC/GTK 2)
  • Linux (PPC64LE/GTK 2)
  • Linux (IA-64/GTK 2)
  • Linux (x86/Motif)

Die letzte Veröffentlichung mit Unterstützung für die 32-Bit-Architektur war Eclipse 2018-09 (Version 4.9).[53]

Marktanteil[Bearbeiten | Quelltext bearbeiten]

In den ersten 10 Jahren verdrängte Eclipse die Konkurrenten JBuilder, OptimalJ, Rational Application Developer, WebGain sowie JDeveloper und besaß zu dem Zeitpunkt in Deutschland über 70 % Marktanteil.[54] Da Eclipse kostenlos angeboten wird, ist es schwer, genaue Zahlen zum Marktanteil von IDEs für Java zu ermitteln. Umfragewerte deuten auf einen Marktanteil von Eclipse von 48 % hin. Damit läge es auf Platz 2, knapp hinter der nur teilweise kostenfreien IDE IntelliJ IDEA von JetBrains mit 65 % und vor der kostenlosen IDE Visual Studio Code von Microsoft mit 27 % sowie Netbeans von Oracle mit 13 %. Sonstige IDEs kommen auf einen verschwindenden Marktanteil von zusammen 2 %.[55]

Weblinks[Bearbeiten | Quelltext bearbeiten]

Commons: Eclipse (IDE) – Sammlung von Bildern, Videos und Audiodateien

Einzelnachweise[Bearbeiten | Quelltext bearbeiten]

  1. Eclipse desktop & web IDEs. (abgerufen am 10. Mai 2019).
  2. projects.eclipse.org.
  3. www.eclipse.org.
  4. www.eclipse.org.
  5. www.eclipse.org.
  6. archive.eclipse.org. 4.6.3 Auflage.
  7. Eclipse IDE for Java. In: Open Hub. (abgerufen am 25. Januar 2021).
  8. eclipse.org. Abgerufen am 15. Januar 2010.
  9. Bernhard Steppan: Eclipse: Ein Ökosystem für Entwickler-Tools. In: computerwoche.de. 21. März 2007, abgerufen am 18. Dezember 2021.
  10. Dominik Mohilo: Eclipse Mars 4.5.2 veröffentlicht: Das letzte große Update vor Neon. In: entwickler.de. 29. Februar 2016, abgerufen am 14. Dezember 2021.
  11. IDE-Wars – Die Foundation schlägt zurück. In: JAVAPRO. 21. Februar 2019, abgerufen am 14. Dezember 2021 (deutsch).
  12. Bug 306864 – Naming Helios + 1 … to Indigo. Abgerufen am 12. April 2012.
  13. Eclipsepedia: Callisto. Abgerufen am 15. Februar 2009.
  14. a b c d e f g h i j k l m n o p q r s t u v Simultaneous Release. Abgerufen am 10. Mai 2013.
  15. Eclipsepedia: Europa. Abgerufen am 15. Februar 2009.
  16. Eclipsepedia: Ganymede. Abgerufen am 15. Februar 2009.
  17. Eclipsepedia: Galileo. Abgerufen am 11. November 2010.
  18. Eclipsepedia: Helios. Abgerufen am 11. November 2010.
  19. Eclipsepedia: Indigo. Abgerufen am 22. Juni 2011.
  20. Eclipsepedia: Juno. Abgerufen am 12. Februar 2012.
  21. Eclipsepedia: Kepler. Abgerufen am 12. Februar 2012.
  22. Eclipsepedia: Luna. Abgerufen am 10. Mai 2013.
  23. Documents related to Mars, the Eclipse Foundation. Abgerufen am 24. Juni 2014.
  24. Eclipse Neon Release Train Now Available. Abgerufen am 23. Juni 2016.
  25. Category:Oxygen - Eclipsepedia. In: wiki.eclipse.org. Abgerufen am 8. März 2016.
  26. Category:Photon - Eclipsepedia. In: wiki.eclipse.org. Abgerufen am 27. Oktober 2017.
  27. Category:SimRel-2018-09 - Eclipsepedia. In: wiki.eclipse.org. Abgerufen am 20. September 2018.
  28. Category:SimRel-2018-12 - Eclipsepedia. In: wiki.eclipse.org. Abgerufen am 26. Januar 2019.
  29. Category:SimRel-2019-03 - Eclipsepedia. In: wiki.eclipse.org. Abgerufen am 26. Januar 2019.
  30. Category:SimRel-2019-06 - Eclipsepedia. In: wiki.eclipse.org. Abgerufen am 20. Juni 2019.
  31. Category:SimRel-2019-09 - Eclipsepedia. In: wiki.eclipse.org. Abgerufen am 22. September 2019.
  32. Category:SimRel-2019-12 - Eclipsepedia. In: wiki.eclipse.org. Abgerufen am 22. September 2019.
  33. Category:SimRel-2020-03 - Eclipsepedia. In: wiki.eclipse.org. Abgerufen am 20. Dezember 2019.
  34. Category:SimRel-2020-06 - Eclipsepedia. In: wiki.eclipse.org. Abgerufen am 27. März 2020.
  35. Category:SimRel-2020-09 - Eclipsepedia. In: wiki.eclipse.org. Abgerufen am 7. August 2020.
  36. Category:SimRel-2020-12 - Eclipsepedia. In: wiki.eclipse.org. Abgerufen am 16. September 2020.
  37. Category:SimRel-2021-03 - Eclipsepedia. In: wiki.eclipse.org. Abgerufen am 18. Dezember 2020.
  38. Category:SimRel-2021-06 - Eclipsepedia. In: wiki.eclipse.org. Abgerufen am 18. Dezember 2020.
  39. Category:SimRel-2021-09 - Eclipsepedia. In: wiki.eclipse.org. Abgerufen am 28. Juni 2021.
  40. Category:SimRel-2021-12 - Eclipsepedia. In: wiki.eclipse.org. Abgerufen am 11. Dezember 2021.
  41. Category:SimRel-2022-03 - Eclipsepedia. In: wiki.eclipse.org. Abgerufen am 13. Dezember 2021.
  42. Category:SimRel-2022-06 - Eclipsepedia. In: wiki.eclipse.org. Abgerufen am 25. März 2022.
  43. Category:SimRel-2022-09 - Eclipsepedia. In: wiki.eclipse.org. Abgerufen am 18. Juli 2022.
  44. Eclipse 3.8.2 Maintenance Build: 3.8.2
  45. Bug 389175 - Dual stream simultaneous release (3.x and 4.x)
  46. Eclipse Babel Project Downloads. Abgerufen am 11. November 2010.
  47. Lars Vogel: Eclipse Rich Client Platform. vogella, Hamburg 2015, ISBN 978-3-943747-14-0.
  48. e(fx)clipse - Projektseite. 1. Januar 2022, abgerufen am 1. Januar 2022 (englisch).
  49. a b c d Lars Vogel: Eclipse IDE. vogella, Hamburg 2013, ISBN 978-3-943747-04-1.
  50. Riad Djemili, C. Oezbek, Stephan Salinger: Saros: Eine Eclipse-Erweiterung zur verteilten Paarprogrammierung. 2007 (fu-berlin.de [PDF]).
  51. Frederic Ebelshäuser, Diana Kupfer: Eclipse IDE-Provisionierung 2.0. In: Informatik Aktuell. 6. Juni 2017, abgerufen am 14. Dezember 2021.
  52. Frank Pientka: Eclipse 4.8 Photon. In: Linux-Magazin 08/2018. Abgerufen am 27. Oktober 2021 (deutsch).
  53. Bug 536766 - Drop 32 bit support in 4.10
  54. Alexander Neumann: 10 Jahre Eclipse: Konsolidierung des Java-IDE-Markts. In: heise Developer. 7. November 2011, abgerufen am 14. Dezember 2021.
  55. The Best Java IDEs to Use in 2022. In: JRebel. Perforce, 14. Oktober 2021, abgerufen am 14. Dezember 2021 (englisch).