Sonnenfinsternis (Software) - Eclipse (software)

Finsternis
Eclipse-Luna-Logo.svg
Eclipse 4.12 screenshot.png
Willkommensbildschirm von Eclipse 4.12
Originalautor(en) IBM
Entwickler Eclipse-Stiftung
Erstveröffentlichung 1.0 / 7. November 2001 ; Vor 19 Jahren ( 2001-11-07 )
Stabile Version
4.21.0  Bearbeiten Sie dies auf Wikidata / 15. September 2021 (vor 31 Tagen)
Vorschauversion
4.21 (2021-09-Version)
Repository
Geschrieben in Java und C
Betriebssystem Linux , macOS , Windows
Plattform Java SE , Standard-Widget-Toolkit , x86-64
Verfügbar in 44 Sprachen
Liste der Sprachen
Albanisch, Arabisch, Baskisch, Bulgarisch, Katalanisch, Chinesisch (vereinfacht, traditionell), Tschechisch, Dänisch, Niederländisch, Englisch (Australien, Kanada), Estnisch, Finnisch, Französisch, Deutsch, Griechisch, Hebräisch, Hindi, Ungarisch, Indonesisch, Italienisch, Japanisch, Klingonisch, Koreanisch, Kurdisch, Litauisch, Malayalam, Mongolisch, Myanmar, Nepalesisch, Norwegisch, Persisch, Polnisch, Portugiesisch (Portugal, Brasilien), Rumänisch, Russisch, Serbisch, Slowakisch, Slowenisch, Spanisch, Schwedisch, Thai, Türkisch, Ukrainisch , Vietnamesisch
Typ Programmiertool , integrierte Entwicklungsumgebung (IDE)
Lizenz Öffentliche Eclipse-Lizenz
Webseite www .eclipse .org Bearbeiten Sie dies auf Wikidata

Eclipse ist eine integrierte Entwicklungsumgebung (IDE), die in der Computerprogrammierung verwendet wird . Es enthält einen Basisarbeitsbereich und ein erweiterbares Plug-in- System zum Anpassen der Umgebung. Eclipse ist hauptsächlich in Java geschrieben und wird hauptsächlich für die Entwicklung von Java-Anwendungen verwendet, kann aber auch zum Entwickeln von Anwendungen in anderen Programmiersprachen über Plug-Ins verwendet werden, einschließlich Ada , ABAP , C , C++ , C# , Clojure , COBOL , D , Erlang , Fortran , Groovy , Haskell , JavaScript , Julia , Lasso , Lua , NATURAL , Perl , PHP , Prolog , Python , R , Ruby (einschließlich Ruby on Rails Framework), Rust , Scala und Scheme . Es kann auch verwendet werden, um Dokumente mit LaTeX (über ein TeXlipse-Plug-in) und Pakete für die Software Mathematica zu entwickeln . Zu den Entwicklungsumgebungen gehören unter anderem die Eclipse Java Development Tools (JDT) für Java und Scala, Eclipse CDT für C/C++ und Eclipse PDT für PHP.

Die ursprüngliche Codebasis stammt von IBM VisualAge . Das Eclipse Software Development Kit (SDK), das die Java-Entwicklungstools enthält, ist für Java-Entwickler gedacht. Benutzer können ihre Fähigkeiten erweitern, indem sie für die Eclipse-Plattform geschriebene Plug-Ins installieren, wie z. B. Entwicklungs-Toolkits für andere Programmiersprachen, und ihre eigenen Plug-In-Module schreiben und beitragen. Seit der Einführung der OSGi- Implementierung ( Equinox ) in Version 3 von Eclipse können Plug-Ins dynamisch gestoppt werden und werden als (OSGI) Bundles bezeichnet.

Eclipse Software Development Kit (SDK) ist freie Open-Source-Software , die unter den Bedingungen der Eclipse Public License veröffentlicht wird , obwohl sie mit der GNU General Public License nicht kompatibel ist . Es war eine der ersten IDEs die unter GNU Classpath lief und es läuft ohne Probleme unter IcedTea .

Geschichte

Eclipse wurde von der Smalltalk- basierten VisualAge- Familie integrierter Entwicklungsumgebungsprodukte (IDE) inspiriert . Obwohl ziemlich erfolgreich, bestand ein Hauptnachteil der VisualAge-Produkte darin, dass der entwickelte Code nicht in einem komponentenbasierten Softwareentwicklungsmodell enthalten war . Stattdessen wurde der gesamte Code für ein Projekt in einem komprimierten Klumpen aufbewahrt (etwas wie eine ZIP-Datei, aber in einem proprietären Format namens .dat). Auf einzelne Klassen konnte nicht ohne weiteres zugegriffen werden, schon gar nicht außerhalb des Tools. Ein Team hauptsächlich im IBM Cary, NC-Labor hat das neue Produkt als Java-basierten Ersatz entwickelt. Im November 2001 wurde ein Konsortium mit einem Board of Stewards gebildet, um die Entwicklung von Eclipse als Open-Source-Software voranzutreiben . Es wird geschätzt, dass IBM zu diesem Zeitpunkt bereits fast 40 Millionen US-Dollar investiert hatte. Die ursprünglichen Mitglieder waren Borland , IBM , Merant , QNX Software Systems , Rational Software , Red Hat , SuSE , TogetherSoft und WebGain . Die Zahl der Stewards stieg bis Ende 2003 auf über 80. Im Januar 2004 wurde die Eclipse Foundation gegründet.

Eclipse 3.0 (veröffentlicht am 21. Juni 2004) wählte die Spezifikationen der OSGi Service Platform als Laufzeitarchitektur.

Die Association for Computing Machinery hat Eclipse am 26. April 2012 mit dem ACM Software Systems Award 2011 ausgezeichnet .

Lizenzierung

Die Eclipse Public License (EPL) ist die grundlegende Lizenz, unter der Eclipse-Projekte veröffentlicht werden. Einige Projekte erfordern eine duale Lizenzierung, für die die Eclipse Distribution License (EDL) verfügbar ist, deren Nutzung jedoch beantragt werden muss und im Einzelfall geprüft wird.

Eclipse wurde ursprünglich unter der Common Public License veröffentlicht , später jedoch unter der Eclipse Public License neu lizenziert. Die Free Software Foundation hat erklärt, dass beide Lizenzen freie Softwarelizenzen sind , jedoch nicht mit der GNU General Public License (GPL) kompatibel sind .

Name

Laut Lee Nackman, damaliger Chief Technology Officer der IBM Rational Division (seit 2003) war der Name "Eclipse" (mindestens 2001) kein Wortspiel bei Sun Microsystems , da das Produkt zu dieser Zeit die Hauptkonkurrentin war Der Name war Microsoft Visual Studio , das Eclipse in den Schatten stellen sollte.

Verschiedene Versionen von Eclipse haben unterschiedliche wissenschaftliche Namen bekommen. Den Versionen, die nach Callisto , Europa und Ganymed benannt sind , die Monde des Jupiter sind , folgte eine Version, die nach Galileo , dem Entdecker dieser Monde, benannt wurde. Darauf folgten zwei Sonnennamen, Helios aus der griechischen Mythologie und Indigo , eine der sieben Farben eines Regenbogens (der von der Sonne produziert wird). Die Version danach, Juno, hat eine dreifache Bedeutung: eine römische mythologische Figur , ein Asteroid und ein Raumschiff zum Jupiter . Kepler , Luna und Mars setzten das Astronomiethema fort, und dann bildeten Neon und Sauerstoff ein Thema der chemischen Elemente . Photon repräsentierte eine Rückkehr zu Sonnenthemen.

Ab 2018 wurde das alphabetische Schema aufgegeben, um sich besser an die neue Simultaneous-Release-Strategie anzupassen. Releases werden im Format YYYY-MM benannt, um die vierteljährlichen Releases widerzuspiegeln, beginnend mit Version 4.9 namens 2018-09.

Veröffentlichungen

Seit 2006 koordiniert die Stiftung eine jährliche Simultaneous Release . Jede Version enthält die Eclipse-Plattform und mehrere andere Eclipse-Projekte.

Von 2008 bis 2018 fand jede Simultaneous Release am 4. Mittwoch im Juni statt. Im Jahr 2018 wurde das Projekt auf vierteljährliche (13-wöchige) YYYY-MM- Releases ohne zwischenzeitliche Service-Releases umgestellt .

Versionsname Datum Plattformversion Projekte Wichtigste Änderungen
N / A 21. Juni 2004 Alte Version, nicht mehr gepflegt: 3.0
N / A 28. Juni 2005 Alte Version, nicht mehr gepflegt: 3.1 Java 5- Unterstützung hinzugefügt : Generics, Annotations, Boxing-Unboxing, Enums, Enhanced for Loop, Varargs, statische Importe
Kallisto 30. Juni 2006 Alte Version, nicht mehr gepflegt: 3.2 Callisto-Projekte
Europa 29. Juni 2007 Alte Version, nicht mehr gepflegt: 3.3 Europa-Projekte
Ganymed 25. Juni 2008 Alte Version, nicht mehr gepflegt: 3.4 Ganymed-Projekte
Galilei 24. Juni 2009 Alte Version, nicht mehr gepflegt: 3.5 Galileo-Projekte
Helios 23. Juni 2010 Alte Version, nicht mehr gepflegt: 3.6 Helios-Projekte
Indigo 22. Juni 2011 Alte Version, nicht mehr gepflegt: 3.7 Indigo-Projekte Added Java 7 - Unterstützung (3.7.1 SR1): Verbesserte Typ Inference für Generic Instance Creation (Diamond), Multi-catch, versuchen-with-Ressourcen Aussage, vereinfachtes varargs Method Invocation, Streicher in Schalter, binäre Literale und Unterstrichen in Zahlenliterale, Polymorphe Methoden
Juno 27. Juni 2012 Alte Version, nicht mehr gepflegt: 3.8 und 4.2

Juno-Projekte
Kepler 26. Juni 2013 Alte Version, nicht mehr gepflegt: 4.3 Kepler-Projekte
Luna 25. Juni 2014 Alte Version, nicht mehr gepflegt: 4.4 Luna-Projekte Integrierte Java 8- Unterstützung; in der Vorgängerversion war dies über ein Java-8-Patch- Plugin möglich .
Mars 24. Juni 2015 Alte Version, nicht mehr gepflegt: 4.5 Mars-Projekte
Neon 22. Juni 2016 Alte Version, nicht mehr gepflegt: 4.6 Neon-Projekte
Sauerstoff 28. Juni 2017 Alte Version, nicht mehr gepflegt: 4.7 Sauerstoffprojekte Oxygen.1a führte die Unterstützung für Java 9 und Junit 5 ein und Oxygen.3a führte die Unterstützung für Java 10 ein.

Die Unterstützung für die folgenden Unix-basierten Plattformen wurde eingestellt: AIX, Solaris, HP-UX und s390.

Photon 27. Juni 2018 Alte Version, nicht mehr gepflegt: 4.8 Photonenprojekte Unterstützung für 32-Bit-Windows und Linux eingestellt.
2018-09 19. September 2018 Alte Version, nicht mehr gepflegt: 4.9 2018-09 Projekte
2018-12 19. Dezember 2018 Alte Version, nicht mehr gepflegt: 4.10 2018-12 Projekte Unterstützung für Java 11 hinzugefügt.
2019-03 20. März 2019 Alte Version, nicht mehr gepflegt: 4.11 2019-03 Projekte
2019-06 19. Juni 2019 Alte Version, nicht mehr gepflegt: 4.12 2019-06 Projekte
2019-09 18. September 2019 Alte Version, nicht mehr gepflegt: 4.13 2019-09 Projekte
2019-12 18. Dezember 2019 Alte Version, nicht mehr gepflegt: 4.14 2019-12 Projekte
2020-03 18. März 2020 Alte Version, nicht mehr gepflegt: 4.15 2020-03 Projekte Update-Unterstützung für Webentwicklungssprachen, basierend auf dem Language Server Protocol
2020-06 17. Juni 2020 Alte Version, nicht mehr gepflegt: 4.16 2020-06 Projekte
2020-09 16. September 2020 Alte Version, nicht mehr gepflegt: 4.17 Projekte 2020-09 Erfordert JDK 11 zum Ausführen.
2020-12 16. Dezember 2020 Alte Version, nicht mehr gepflegt: 4.18 2020-12 Projekte Ein JDK ist in die meisten Pakete eingebettet, daher ist eine Java-Installation keine Voraussetzung.
2021-03 17. März 2021 Alte Version, nicht mehr gepflegt: 4.19 Projekte 2021-03
2021-06 16. Juni 2021 Alte Version, nicht mehr gepflegt: 4.20 Projekte 2021-06
2021-09 15. September 2021 Aktuelle stabile Version: 4.21 Projekte 2021-09
2021-12 8. Dezember 2021 Zukünftige Veröffentlichung: 4.22 2021-12 Projekte
Legende:
Alte Version
Ältere Version, noch gepflegt
Letzte Version
Neueste Vorschauversion
Zukünftige Veröffentlichung
  1. ^ Es gibt eine Version 3.8 von Eclipse Juno; es wird nicht auf der Hauptseite für Downloads beworben, aber eine gepackte Distribution steht zum Download bereit. Eclipse 3.8 bietet Bugfixes für Indigo und fügt Java 7-Unterstützung hinzu, und seine Wartung wurde mit 4.2 dual gestreamt. Funktionen und Plug-Ins, die einer Paketdistribution entsprechen, können innerhalb der IDE hinzugefügt werden.

Die Architektur

Eclipse verwendet Plug-Ins, um alle Funktionen innerhalb und über dem Laufzeitsystem bereitzustellen. Sein Laufzeitsystem basiert auf Equinox , einer Implementierung der OSGi Core Framework-Spezifikation.

Neben der Erweiterung der Eclipse-Plattform mit anderen Programmiersprachen wie C und Python ermöglicht das Plug-in-Framework der Eclipse-Plattform auch die Arbeit mit Schriftsatzsprachen wie LaTeX und Netzwerkanwendungen wie Telnet und Datenbankverwaltungssystemen . Die Plug-in-Architektur unterstützt das Schreiben jeder gewünschten Erweiterung der Umgebung, beispielsweise für das Konfigurationsmanagement . Java- und CVS- Unterstützung wird im Eclipse SDK bereitgestellt , mit Unterstützung für andere Versionskontrollsysteme, die von Drittanbieter- Plug-Ins bereitgestellt werden .

Mit Ausnahme eines kleinen Laufzeitkernels ist alles in Eclipse ein Plug-In. Somit lässt sich jedes entwickelte Plug-In genauso in Eclipse integrieren wie andere Plug-Ins; insofern sind alle Features „gleichberechtigt“. Eclipse bietet Plug-Ins für eine Vielzahl von Funktionen, von denen einige von Drittanbietern stammen, die sowohl kostenlose als auch kommerzielle Modelle verwenden. Beispiele für Plug-Ins sind für Unified Modeling Language (UML), für Sequenz- und andere UML-Diagramme, ein Plug-In für DB Explorer und vieles mehr.

Das Eclipse SDK enthält die Eclipse Java Development Tools (JDT) und bietet eine IDE mit einem integrierten Java- Inkremental-Compiler und ein vollständiges Modell der Java-Quelldateien. Dies ermöglicht erweiterte Refactoring- Techniken und Codeanalysen. Die IDE machen auch die Verwendung eines Arbeitsbereich , in diesem Fall einen Satz von Metadaten über einen flachen Dateibereich ermöglicht externe Datei Modifikationen, solange die entsprechenden Arbeitsbereich Ressource danach wird aktualisiert.

Eclipse implementiert die grafischen Steuerelemente des Java-Toolkits namens Standard Widget Toolkit (SWT), während die meisten Java-Anwendungen den Java-Standard Abstract Window Toolkit (AWT) oder Swing verwenden . Die Benutzeroberfläche von Eclipse verwendet auch eine zwischengeschaltete grafische Benutzeroberflächenschicht namens JFace , die den Aufbau von Anwendungen auf Basis von SWT vereinfacht. Eclipse wurde während eines Google Summer of Code (GSoC)-Projekts im Jahr 2014 für Wayland entwickelt .

Ab 2017 bieten die vom Babel-Projekt entwickelten Sprachpakete Übersetzungen in über 40 natürliche Sprachen .

Rich-Client-Plattform

Eclipse bietet die Rich-Client-Plattform (RCP) für die Entwicklung allgemeiner Anwendungen.

Die folgenden Komponenten bilden die Rich-Client-Plattform:

Beispiele für Rich-Client-Anwendungen auf Basis von Eclipse sind:

Serverplattform

Eclipse unterstützt die Entwicklung für Tomcat , GlassFish und viele andere Server und ist oft in der Lage, den erforderlichen Server (für die Entwicklung) direkt aus der IDE zu installieren. Es unterstützt Remote-Debugging und ermöglicht es einem Benutzer, Variablen zu beobachten und den Code einer Anwendung zu durchlaufen, die auf dem angeschlossenen Server ausgeführt wird.

Webtools-Plattform

Das Projekt Eclipse Web Tools Platform (WTP) ist eine Erweiterung der Eclipse-Plattform mit Tools zur Entwicklung von Web- und Java EE-Anwendungen. Es umfasst Quell- und grafische Editoren für eine Vielzahl von Sprachen, Assistenten und integrierte Anwendungen zur Vereinfachung der Entwicklung sowie Tools und APIs zur Unterstützung der Bereitstellung, Ausführung und Prüfung von Apps.

Modellierungsplattform

Das Modeling-Projekt beinhaltet alle offiziellen Projekte der Eclipse Foundation mit Fokus auf modellbasierte Entwicklungstechnologien. Alle sind mit dem von IBM erstellten Eclipse Modeling Framework kompatibel. Diese Projekte sind in mehrere Kategorien unterteilt: Modelltransformation, Modellentwicklungstools, konkrete Syntaxentwicklung, abstrakte Syntaxentwicklung, Technologie und Forschung und Amalgam.

Model Transformation-Projekte verwenden Eclipse Modeling Framework (EMF)-basierte Modelle als Eingabe und erzeugen entweder ein Modell oder Text als Ausgabe. Modell-zu-Modell-Transformationsprojekte umfassen ATLAS Transformation Language (ATL), eine Open-Source-Transformationssprache und ein Toolkit, die verwendet werden, um ein bestimmtes Modell zu transformieren oder ein neues Modell aus einem bestimmten EMF-Modell zu generieren. Model-to-Text-Transformationsprojekte enthalten Acceleo , eine Implementierung von MOFM2T , einer Standard-Model-to-Text-Sprache der Object Management Group (OMG). Der Codegenerator von Acceleo kann jede beliebige Textsprache (Java, PHP, Python usw.) aus EMF-basierten Modellen generieren, die mit einem beliebigen Metamodell ( Unified Modeling Language (UML), Systems Modeling Language (SysML) usw.) definiert sind. Es ist Open-Source.

Model Development Tools-Projekte sind Implementierungen verschiedener Modellierungsstandards, die in der Branche verwendet werden, und deren Toolkits. Unter diesen Projekten finden sich Implementierungen mehrerer Standards:

Das Projekt Concrete Syntax Development enthält das Graphical Modeling Framework, ein Eclipse-basiertes Framework, das sich der grafischen Darstellung von EMF-basierten Modellen widmet.

Das Abstract Syntax Development-Projekt hostet das Eclipse Modeling Framework, den Kern der meisten Modellierungsprojekte der Eclipse Foundation und das Framework, das für EMF wie Connected Data Objects (CDO), EMF-Abfrage oder EMF-Validierung verfügbar ist .

Technologie- und Forschungsprojekte sind Prototypen des Modellierungsprojekts; Dieses Projekt wird verwendet, um alle Modellierungsprojekte der Eclipse Foundation während ihrer Inkubationsphase zu hosten.

Amalgam bietet die Paketierung und Integration zwischen allen verfügbaren Modellierungstools für das Eclipse-Paket für Modellierungstools.

Verwaltung des Anwendungslebenszyklus

Application Lifecycle Management (ALM) und Task - Management in Eclipse benötigten eine optionale Komponente namens Mylyn ( / m l ɪ n / ), eine Open-Source - Implementierung der Task-orientierte Schnittstelle . Es bietet eine API für Tools, die die aufgabenorientierte Schnittstelle einbetten. Für Softwareentwickler hilft es einem Entwickler, bei vielen verschiedenen Aufgaben (wie Fehlern, Problemberichten oder neuen Funktionen) effizient zu arbeiten. Aufgaben sind in Mylyn integriert. Bei allen integrierten Aufgaben überwacht Mylyn die Benutzeraktivität und versucht, für die jeweilige Aufgabe relevante Informationen zu identifizieren. Es verwendet diesen Aufgabenkontext, um die Eclipse-Benutzeroberfläche auf die zugehörigen Informationen zu konzentrieren. Mylyn kann in Repositorys wie Bugzilla , Trac , Redmine , Mantis , JIRA , Unfuddle und GitHub integriert werden . Es konzentriert sich auf die Verbesserung der Produktivität, indem Suchen, Scrollen und Navigation reduziert werden. Durch die explizite Darstellung des Aufgabenkontexts soll Mylyn auch Multitasking, Planung, Wiederverwendung früherer Bemühungen und den Austausch von Fachwissen erleichtern.

Der Projektname kommt von Myelin , einer elektrisch isolierenden Schicht, die die Axone der Neuronen umgibt. Der ursprüngliche Name dieses Projekts, "Mylar", replizierte eine Marke einer boPET -Filmfirma, daher änderte die Eclipse Foundation den Projektnamen.

Erweiterungen

Eclipse unterstützt eine reiche Auswahl an Erweiterungen, darunter Unterstützung für Python über PyDev , Android- Entwicklung über Googles ADT ( seit 2015 von Android Studio abgelöst ), JavaFX über e(fx)clipse, JavaScript , jQuery und viele andere auf dem Eclipse Marketplace. Valable ist ein Vala- Plug-In für Eclipse.

Alternative Distributionen

Im Eclipse-Projekt gibt es mehrere alternative Distributionen.

PHP-Entwicklungstools

Das Projekt PHP Hypertext Preprocessor (PHP) Development Tools bietet ein Framework für die Eclipse-Plattform. Das Projekt umfasst alle Entwicklungskomponenten, einschließlich der Code-Vervollständigung, der Entwicklung von PHP und der Erweiterbarkeit. Es nutzt die vorhandene Eclipse Web Tools Platform (WTP) und das Dynamic Languages ​​Toolkit (DLTK).

Android-Entwicklungstools

Android Development Tools (ADT) wurde 2015 durch das eigene Plugin der Eclipse Foundation namens Andmore: Development Tools for Android abgelöst , nachdem Google die Entwicklung seines Plugins für die Eclipse-IDE eingestellt hatte, das eine integrierte Umgebung zur Verfügung stellen soll Android-Anwendungen erstellen. ADT/Andmore erweitert die Fähigkeiten von Eclipse, damit Entwickler neue Android-Projekte einrichten, eine Anwendungs-UI erstellen, Pakete basierend auf der Android Framework API hinzufügen, ihre Anwendungen mit den Android SDK-Tools debuggen und signierte (oder unsignierte) APK-Dateien exportieren können um ihre Bewerbungen zu verteilen. Es steht kostenlos zum Download zur Verfügung. Googles ADT war bis 2015 die offizielle IDE für Android, wurde aber durch Eclipses Andmore und das offizielle Android Studio ersetzt .

Siehe auch

Verweise

Quellen

Externe Links