Suche
Was Eclipse dieses Jahr für Entwickler und Entwicklerinnen bringt

Eclipse Neon Highlights: Neun nette Neuigkeiten

Holger Voormann
Eclipse Neon

Eclipse Neon, das Sammelrelease rund um die neue Eclipse 4.6 Platform, hat das Licht der Welt erblickt. 84 Eclipse-Projekte haben in diesem Jahr ihre Entwicklungszyklen aufeinander abgestimmt – es gibt also viel zu erzählen! Auf JAXenter begleiten wir Eclipse Neon in den nächsten Tagen mit zahlreichen Artikeln und Hintergrundberichten. Den Anfang macht Holger Voormann, der uns neun seiner persönlichen Highlights aus dem Eclipse Neon Release Train vorstellt.

Eclipse Neon: Neun nette Neuigkeiten

Mit der erweiterbaren Java-Entwicklungsumgebung fing vor über 14 Jahren alles an. Inzwischen gibt es rund 280 Eclipse-Projekte. Nicht alle, aber viele davon nutzen oder erweitern die Eclipse-Plattform, auf der die Eclipse-IDE basiert. Doch in den letzten zwei, drei Jahren gab es zunehmend Kritik an der Plattform. Von der Tragik der Allmende war die Rede, dem Phänomen, dass die Pflege von gern genutzten Allgemeingütern häufig vernachlässigt wird [1], [2]. Eclipse Neon, der elfte jährliche Eclipse Simultaneous Release, setzt dieser Tragik ein Ende. Entwickler und Entwicklerinnen können sich in diesem Sommer über viele neue Funktionen und Verbesserungen bei der Plattform und drumherum freuen. Neun davon möchte ich im Folgenden vorstellen.

Der Eclipse Neon Release Train

277 Projekte wohnen unter dem Dach der Eclipse Foundation. Jedes Jahr kommen mehr neue Projekte dazu als terminiert werden. 84 der 277 Eclipse-Projekte, knapp ein Drittel, veröffentlichten zusammen und aufeinander abgestimmt im Rahmen des elften Simultaneous Release am 22. Juni neue Versionen ihrer Software (Abb. 1).

Eclipse Neon Projekte

Abb. 1: Zunahme an Projekten und der Codemenge beim Simultaneous Release über die Jahre

Alle 79 Projekte vom Vorjahresrelease bis auf den in der Entwicklung eingeschlafenen WindowBuilder, einem grafischen Editor zur Erstellung von Java-Oberflächen in SWT und Swing, sind wieder mit dabei [3]. Sechs Projekte sind neu hinzugekommen. Die zusammengefassten News zu allen 84 Neon-Projekten würden hier bei weitem den Rahmen sprengen. Deshalb werde ich mich auf die neun aus meiner Sicht spannendsten Neuigkeiten mit dem Fokus auf allgemeine Entwicklerwerkzeuge beschränken. Das soll aber nicht heißen, dass sich bei den Frameworks nichts getan hat, die wie beispielsweise Xtext, die Remote Application Platform (RAP) oder der Neuzugang EMF Parsley als Bausteine oder Basis zum Erstellen von Anwendungen verwendet werden können. Auch die Im-Web-fürs-Web-Entwicklungsumgebung Orion werde ich, trotz drei neuer Versionen in einem Jahr, und obwohl Version 12 Bestandteil von Eclipse Neon ist, ignorieren. Genauso bleibt die Cloud-IDE Eclipse Che unerwähnt, die sich im Gegensatz zu Orion mehr an Java- statt JavaScript-/Web-Entwickler(innen) richtet und im letzten Jahr viel Beachtung erhielt, als die Firma Codenvy ihre Exo Platform zum Eclipse-Projekt machte.

Eine kleine Anekdote, die zeigt, dass bei Eclipse Personen einen höheren Stellenwert haben als Firmen, möchte ich Ihnen aber doch nicht vorenthalten: Xtext-Projektleiter Sven Efftinge verließ itemis, nahm den Großteil der Entwickler mit und gründete eine eigene Firma [4]. Ihre Rechte bei Eclipse nahmen die Entwickler zur neuen Firma TypeFox mit, und itemis blieb das Nachsehen [5]. Aber genug der Vorrede, los geht es mit dem etwas ungewöhnlichen Punkt Nummer Neun meiner Top-Neun-Liste.

Eclipse Neon Highlight #9: Code of Conduct

Der Wettstreit zwischen Open Source und kommerzieller Software sollte nicht ideologisch sondern technisch ausgetragen werden. Der Kommentar „We Told You So“ vom geschäftsführenden Direktor von Eclipse, Mike Milinkovich, zu JetBrains‘ Ankündigung, ihr Bezahlmodell auf ein Abo-Modell umzustellen, wurde von einigen als hämisch und unangebracht empfunden [6]. Wenn es aber um die Mitarbeit geht, sind Open Source und möglichst auch die Unabhängigkeit von einer einzelnen Firma für mich wichtige Kriterien.

Ein weiterer wichtiger Punkt, der für Eclipse spricht: Mit dem „Code of Conduct“ gab sich die Eclipse Foundation Mitte letzten Jahres einen Verhaltenskodex, um Diskriminierungen jeglicher Art auszuschließen [7]. Das Zugehörigkeitsgefühl zu einer solchen Gemeinschaft hilft mir, den Glauben an Menschlichkeit und Miteinander nicht zu verlieren, wenn in meiner Nachbarschaft aus Fremdenhass wiederholt ein Flüchtlingsheim angezündet wurde oder wenn Europas Abschottungspolitik Flüchtlinge im Mittelmeer ertrinken lässt. Dass der Code of Conduct keine leere Versprechung ist, sah man, als aus dem langjährigen festangestellten Foundation-Mitarbeiter Andrew eine Andrea wurde, ohne dass sie angefeindet wurde oder sich hätte verstecken müssen [8].

#8: JavaScript- und Android-Download-Pakete

Die C/C++- und PHP-Download-Pakete zeigen mit im letzten Jahr rund 1,4 und 0,8 Millionen Downloads, dass Eclipse auch jenseits von Java eine attraktive IDE ist. Die beiden jeweils hinter diesen Paketen stehenden Projekte, C/C++ Development Tooling (CDT) und PHP Development Tools (PDT), machten in Eclipse Neon einen Versionssprung auf 9.0 beziehungsweise auf 4.0, der für zahlreiche Neuerungen steht [9], [10]. In Neon erweitern zwei weitere Download-Pakete die Zielgruppe der Eclipse-IDE: eins für Android und eins für JavaScript/Web. Das seit eineinhalb Jahren existierende Eclipse-Projekt und Neon-Neuzugang Andmore führt das von Google aufgegebene Android Developer Tool (ADT) fort [11], [12]. Um aber langfristig mit dem auf IntelliJ IDEA basierenden Android Studio mithalten zu können, bräuchte es mehr als eine Handvoll Entwickler. Vielleicht wird ja das Projekt Andmore durch das Android-Download-Paket bekannter und gewinnt dadurch mehr Mitstreiter.

Die JavaScript Development Tools (JSDT) haben das schon geschafft [13]. Zwei Jahre lang hat sich nur wenig getan, doch seit Ende letzten Jahres wurde das Projekt unter anderem von Red Hat wiederbelebt. Die Anzahl monatlicher Commits schnellte wieder in den drei- bis vierstelligen Bereich. Mit Eclipse Neon unterstützt JSDT die im Juni 2015 verabschiedete Version 6 von JavaScript oder, wie eigentlich der offizielle Name lautet, ECMAScript 6. Im Vergleich zu ECMAScript 5 wurde die zunehmend auch außerhalb des Web-Browsers zum Einsatz kommende Sprache deutlich erweitert [14].

Ein Run As | npm Install im Rechtsklickmenü der Datei package.json, in der die Abhängigkeiten definiert sind, reicht aus, um sich per Node Package Manager (npm) alle benötigten JavaScript-Bibliotheken ins Projekt zu holen. Auch die Paketverwaltung Bower (bower.json) sowie zum Bauen Grunt (Gruntfile.js) und Gulp (gulpfile.js) werden auf diese Weise unterstützt. Da aber die Node.js/npm-, Bower-, Grunt- und Gulp-Aufrufe einfach nur an die Kommandozeile weitergeleitet werden, muss auf dem Rechner die entsprechende Software installiert sein. Benötigt npm Git, um eine abhängige Bibliothek herunterzuladen, muss für die Kommandozeile zusätzlich auch noch Git installiert sein, obwohl – wie in fast allen Download-Paketen – zur Versionierung eine Git-Integration inklusive der Eclipse-eigenen Git-Implementierung JGit bereits vorhanden ist. Der neue JSON-Editor und die JavaScript-Debugger-Funktionalität runden das JavaScript-/Web-Paket ab (Abb. 2).

Eclipse Neo: JavaScript-Debugging

Abb. 2: JavaScript-Debugging

Von den genannten und weiteren JavaScript-/Web-Verbesserungen profitiert auch das JavaEE-Paket, das im letzten Jahr am häufigsten heruntergeladen wurde. Bei den Java-Paketen gab es zum Bauen schon immer Ant, schon länger Maven, und seit Mars.1 gibt es zum Nachinstallieren zusätzlich die vom Projekt Buildship beigesteuerte Unterstützung für das bei Android beliebte Gradle. Zur Virtualisierung liefert das Linux-Tools-Projekt seit Mars und in Neon verbessertes Docker Tooling und neu in Neon Vagrant Tooling [15]. Das Projekt EGerrit, ein weiterer Neon-Neuzugang, erleichtert das Arbeiten mit Gerrit, dem Review-System für Git. Zusammen mit den beiden neuen Download-Paketen bietet Eclipse Neon damit Out-of-the-Box oder bei Bedarf nachinstallierbare Tool-Unterstützung für ein weites Spektrum der Softwareentwicklung.

Ein Hinweis: Die Download-Seite wurde geändert und bietet als primären Weg den Eclipse Installer an [16]. Wer aber nur ein Paket haben will, findet weiterhin alle Download-Pakete unter dem Link Download Packages.

#7: Kleinere Plattform-Verbesserungen

Vier kleinere Plattform-Verbesserungen sollen exemplarisch die evolutionäre Weiterentwicklung der Eclipse-IDE illustrieren. Achtung Spoiler: das sind nicht die einzigen Plattform-Verbesserungen auf meiner Top-Neun-Liste. In der Dateisuche (Strg+H) ist neben Derived resources (zur Erinnerung: derived ist ein Eclipse-spezifisches Datei- und Ordnerattribut, um Bereiche von der Suche und der Versionierung auszunehmen, z.B. bei Java den bin-Ordner mit den kompilierten *.class-Dateien) ein weiteres Kontrollkästchen Binary files hinzugekommen. Hakt man dieses an, so werden auch Binärdateien durchsucht. Hilfreich ist das z. B. bei der Suche nach Kommentaren von GIF-, PNG- oder JPEG-Bilddateien oder bei der Suche von Bytesequenzen mittels regulären Ausdrücken: \xCA\xFE\xBA\xBE findet beispielsweise die ersten vier Bytes einer *.class-Datei [17].

Die zweite Verbesserung, die ich ganz praktisch finde, ist die neue Einstellungsoption Terminate and Relaunch while launching from history (unter Window | Preferences | Run/Debug | Launching), mit der beim Starten einer Anwendung automatisch noch laufende Instanzen der gleichen Anwendung beendet werden können. Ohne diese Einstellung zu aktivieren lässt sich bei Bedarf das Verhalten erzwingen, indem man beim Starten die Umschalttaste gedrückt hält. Das funktioniert im Untermenü von Run | Run History und in der Symbolleiste in den Aufklapp-Menüs von Debug, Run und External Tools, jedoch nicht, wenn man auf einen der Symbolleistenknöpfe direkt klickt. Gut möglich aber, dass das irgendwann noch kommt, schließlich funktioniert das Gedrückthalten der Steuerungstaste zum Öffnen einer Startkonfiguration auch durchgängig.

Wer mit Working Sets arbeitet, wird sich über die dritte kleine Verbesserung freuen: In den Dialogen zum Erstellen von Projekten gibt es im Bereich Working sets nun mit New… den direkten Weg zum Erstellen eines neuen Working Sets. Neu ist auch die Funktion Autosave, die bei einer vorgegebenen Zeitspanne an Inaktivität ein Save All durchführt. Standardmäßig ist Autosave aber ausgeschaltet (Window | Preferences | General | Editors | Autosave), da das Speichern standardmäßig das (inkrementelle) Bauen auslöst (Project | Build Automatically), was wiederum die Eingabe zeitweise blockieren kann. Beim Konkurrenten IntelliJ IDEA ist es umgekehrt: Autosave ist in der Voreinstellung ein- und dafür das automatische Bauen ausgeschaltet. Ein Novum war, dass die Entwicklung von Autosave und anderen Verbesserungen im Rahmen des Friend of Eclipse Enhancement Program (FEEP) mit Geldspenden finanziert wurde [18]. Zu kritisieren ist zwar, dass die Geldspender nicht entscheiden dürfen, was genau entwickelt wird, aber solange sich FEEP nur um das kümmert, was sonst von niemand anderem erledigt würde, finde ich das eine gute Sache [19]. Außerdem gibt es Performance-Verbesserungen: Die Eclipse-IDE startet nun etwas schneller.

#6: Java (9)

Unterstützung für Java 9 gibt es in Eclipse 4.6, alias Neon offiziell zwar noch nicht, aber eine Beta-Version zum Nachinstallieren ist bereits verfügbar (Abb. 3) [20].

Eclipse Neon:  Java-9-Modul-Editor

Abb. 3: Der Java-9-Modul-Editor

 

Java 9 soll ja erst im März 2017 fertig werden, ein Moving Target für Eclipse [21], [22]. Vielleicht wird es bei Java aber auch wieder später. Viel besser fände ich, wenn es wie bei Eclipse feste Release-Termine gäbe, auch wenn dies mitunter zu Abstrichen in der Liste der geplanten Features führte. Java-9-Unterstützung heißt bei Eclipse nicht nur wie bei den Konkurrenten NetBeans und IntelliJ IDEA Änderungen im Java-Tooling, sondern auch beim Eclipse-eigenen Java-Compiler, der – nebenbei bemerkt – auch Bestandteil von IntelliJ IDEA ist und dort optional verwendet werden kann [23].

Von Anfang an war der inkrementelle Java-Compiler einer der großen Vorteile von Eclipse. Gespannt darf man sein, wie die Konkurrenz die neue Fähigkeit des Java 9 SDK zum inkrementellen Kompilieren nutzen wird und wie sich das Tooling zwischen den Konkurrenten bei den Java-Modulen, die es ab Java 9 geben wird, unterscheiden wird [24]. Eclipse Neon selbst setzt mindestens Java 8 voraus und lässt sich, wenn man die entsprechenden Hinweise beachtet, bereits mit der Vorabversion von Java 9 ausführen [25].

Beim Tooling für Java 8 und älteren Versionen bringt Neon nur kleinere Verbesserungen. Die beim Kompilieren erkannten Probleme können nun auch wahlweise als Infos angezeigt werden. Eigentlich müsste daher der Punkt Errors/Warnings in den Einstellungen (Window | Preferences) unter Java | Compiler nun Errors/Warnings/Infos heißen. Im Editor werden Infos blau unterkringelt und in den Dateisymbolen weist ein kleines blaues „i“ auf vorhandene Infos hin. Die Analyse zur Vermeidung von NullPointerExceptions mit Hilfe von Annotation wurde bezüglich Java-Generics-Typen verfeinert, und es lassen sich nun mehrere alternative Null-Annotationen konfigurieren, z. B. für @Nullable sowohl org.eclipse.jdt.annotation.Nullable als auch edu.umd.cs.findbugs.annotations.CheckForNull. Leider sind aber keine alternativen Null-Annotationen voreingestellt.

Apropos Annotationen, im Dialog zum Erstellen einer Annotation können mittels Kontrollkästchen und Optionsfeldern @Retention, @Target und @Documented ausgewählt und ihre Werte eingestellt werden. Zum Code-Formatieren gibt es jetzt noch feinere Einstellungsmöglichkeiten. Der Befehl Open from Clipboard zum Öffnen einer Klasse im Editor oder eines Stacktraces in der Java Stack Trace Console, wenn sich der Klassenname beziehungsweise der mehrzeilige Stacktrace in der Zwischenablage befindet, hat nun standardmäßig das Tastaturkürzel Strg+Shift+V bekommen. Es lassen sich nun gleichzeitig mehrere Java-Elemente auswählen, um per entsprechendem Menüpunkt im Rechtsklickmenü oder per Tastaturkürzel zu suchen: References (Strg+Shift+G), Declarations (Strg+G) oder bei Interfaces Implementors, sowie bei Feldern Read Access und Write Access (Abb. 4).

Eclipse Neon Java-Editor

Abb. 4: Wo wird überall die überladene Methode aufgerufen?

 

#5: Git-Support in Eclipse Neon

Ähnlich wie beim Java-Compiler entschied man sich vor sieben Jahren auch bei der Versionsverwaltung Git für eine eigene Implementierung. Der Aufwand war enorm, hat sich aber gelohnt: Heute wird Eclipse JGit, die einzige Java-Implementierung von Git, von vielen genutzt. Auch von NetBeans, wogegen bei IntelliJ IDEA (noch) eine separate Installation der Kommandozeilenversion von Git vorausgesetzt wird. Mit Neon berücksichtigt JGit nun auch die Einstellungen in der Datei .gitattributes zum Umgang mit den auf Windows, Linux und Mac OS unterschiedlichen Zeilenumbrüchen.

In EGit, der JGit-Eclipse-Integration, findet man Änderungen unter anderem in der Git Staging View, die standardmäßig nun anstatt des blockierenden Commit-Dialogs verwendet wird: Unstaged Changes lassen sich nach untracked, missing und modified gruppieren, und der Bereich Commit Message wird je nach den Platzverhältnissen – bei einer HTML-Seite würde man von Responsive Webdesign sprechen – unter oder wie bisher neben Unstaged Changes und Staged Changes angezeigt [26]. An der Git-Erweiterung Git Large File Storage (LFS) zur Vermeidung, dass ältere Versionen großer Dateien lokal vorhanden sein müssen, was Speicher und Bandbreite kostet, wird noch gearbeitet und ist hoffentlich bald Out-of-the-Box nutzbar [27].

#4: Einstellungen geräteübergreifend synchronisieren

Damit Benutzer ihre Einstellungen geräteübergreifend synchronisieren können, wurde Eclipse zum Cloud-Speicher-Anbieter [28]. Um diese von Microsoft Visual Studio abgeschaute Funktion zu nutzen, muss man in den Einstellungen (Window | Preferences) jeweils unter Oomph | Setup Tasks | Preference Recorder bei Record und unter Oomph | Setup Tasks | Preference Synchronizer bei Synchronize with Eclipse.org ein Häkchen setzen [29]. Wenn man dann danach erstmalig Einstellungen ändert, wird man nach seinem Eclipse-Login gefragt. Hat man noch kein Eclipse-Account, folgt man dem Link Create an account, um dies nachzuholen. Danach, sowie bei allen zukünftigen Änderungen, erscheint ein (weiterer) Dialog, der die zu synchronisierenden Einstellungen anzeigt, bevor sie in der Cloud landen (Abb. 5).

Eclipse Neon Properties

Abb. 5: Sollen die geänderten Einstellungen in der Cloud gespeichert werden?

 

Gegebenenfalls können hier einzelne Einstellung einmalig oder für immer vom Synchronisieren ausgenommen werden. Achtung: weil Eclipse zwar verhindern aber nicht garantieren will, dass Dritte unerlaubt auf die Daten zugreifen, muss man sich damit einverstanden erklären, dass die eigenen Daten gemeinfrei sind [30], [31]. Bei Einstellungen sollte das kein Problem sein. Bei Templates und bei Einstellungen von Nicht-Eclipse-Plug-ins sollte man aber sicherheitshalber etwas genauer hinschauen.

Der sogenannte Eclipse User Storage Service (EUSS) steht auch anderen Anwendungen offen. Derzeit wird er auch vom Marketplace Client (Help | Eclipse Marketplace…) für Favoriten genutzt. Um Plug-ins zu favorisieren, wird man jetzt nicht mehr auf die Webseite umgeleitet, und im neuen Tab Favorites werden die favorisierte Plug-ins angezeigt. So sind die eigenen favorisierten Plug-ins schnell auf einem anderen Gerät gefunden und installiert. Ich bin gespannt, für welche Zwecke der EUSS sonst noch genutzt werden wird.

#3: Automatischer Zeilenumbruch

Die Story der Realisierung des Word-Wrap-Modus in Texteditoren, also automatischer Zeilenumbruch statt eines horizontalen Scrollbalkens, war für mich eine emotionale Achterbahnfahrt. Im März 2003 wurde die Anforderung erstmals formuliert. Fast zehn Jahre dauerte es bis zur ersten brauchbaren Lösung, vorgeschlagen von dem damaligen Studenten Florian Weßling [32]. Drei weitere Jahre sollte es dann noch bis zur Fertigstellung dauern. Frustriert war ich, als der von mir weiterentwickelte Lösungsvorschlag aus formalen Gründen zunächst nicht einmal genauer angeschaut wurde. Mit Neon kam das Happyend, und ich bin stolz darauf, dass auch etwas Code von mir drin steckt.

Der Status für den Eintrag im Bug-Tracking-System, für den am häufigsten votiert wurde, konnte auf RESOLVED FIXED gesetzt werden [33]. Endlich gibt es automatische Zeilenumbrüche nicht nur in der Console View, sondern in allen auf dem Texteditor basierenden Editoren: in Java, C/C++, PHP, HTML, XML, JSON und in vielen, vielen weiteren Editoren, nicht nur in denen, die von Eclipse selbst entwickelt wurden (Abb. 6).

Eclipse Neon: Automatischer Zeilenumbruch

Abb. 6: Automatischer Zeilenumbruch ist nun in allen Texteditoren möglich

 

Der Word-Wrap-Modus hat sogar ein eigenes Tastaturkürzel, Alt+Shift+Y, und ein eigenes Symbol in der Symbolleiste bekommen, links neben dem Block-Selektion-Modus. Standardmäßig angezeigt wird das Symbol aber nur dann, wenn ein reiner Texteditor aktiv ist. Im Dialog Customize Perspective (Window | Perspective | Customize Perspective…) lässt sich das aber im Tab Action Set Availability durch ein Häkchen bei Editor Presentation ändern. Wer zu faul ist, sich das Tastaturkürzel zu merken und die Symbolleiste anzupassen, findet die Funktion zum Umschalten auch per Quick Access (Ctrl+3) unter Toggle Word Wrap.

#2: (Hochauflösende) Darstellung

Mein nächster Computer wird sicherlich einen hochauflösenden Monitor haben, und Eclipse soll darauf gut aussehen. Bis kurz vor Schluss wurde daran mit Hochdruck gearbeitet. In Neon sind bereits etliche, wenn auch nicht alle Icons zusätzlich in doppelt hoher Auflösung vorhanden (Abb. 7).

Eclipse Neon Icons

Abb. 7: Nicht alle Icons gibt es in doppelter Auflösung, z. B. das Taschenlampensymbol

 

Schon vor über einem Jahr wurde damit begonnen, die Bitmap-GIF-Icons als Vektorgrafik-SVG-Icons neu zu machen. Auch Schriften und beispielsweise abgerundete Umrandungen gewinnen mit hoher Auflösung an Schärfe. Bis aber alle Icons, nicht nur die von der Plattform, in höherer Auflösung vorhanden sind und alles perfekt dargestellt wird, wird es noch dauern. Apropos Darstellung, in Neon wird unter Mac OS die Symbolleiste nun in dem Stil angezeigt, wie man ihn von anderen Anwendungen kennt, und unter Linux sind die meisten Probleme mit GTK3 gelöst. Insbesondere mit dem nach Mars.2 erschienenen Ubuntu 16.04 gab es Probleme [34]. Einen Fullscreen-Modus (Window | Appearance | Toggle Full Screen) gibt es nun auch unter Windows und Linux. Unabhängig vom Betriebssystem lässt sich die Schriftgröße in Texteditoren mit den Tastaturkürzeln Strg+- und Strg++ anpassen.

#1: Smart Tooling

Öffnet man eine Datei, für die es in der Eclipse-IDE keinen Editor gibt, wird anhand der Dateiendung auf dem Eclipse Marketplace nach Plug-ins mit passendem Editor gesucht und, wenn was gefunden wurde, zur Installation angeboten (Abb. 8).

Eclipse Neon Gradle-Support

Abb. 8: Für *.gradle-Dateien gäbe es einen Editor für Sie!

 

 

Abschalten lässt sich das von IntelliJ IDEA abgeschaute Verhalten in den Einstellungen (Window | Preferences) unter General | Editors | File Associations, indem man bei Open unassociated file with etwas anderes als Search Marketplace wählt. Aber wer würde auf eine so komfortable Möglichkeit zur Anpassung seines Entwicklerwerkzeuges auf die aktuellen Bedürfnisse verzichten wollen? Um die Schätze des reichhaltigen Marketplace-Angebots zu entdecken, würde ich mir vielmehr das Feature auch an anderen Stellen wünschen, beispielsweise beim New-Dialog, sowie beim Import– und beim Export-Dialog.

Ebenfalls neu in Neon ist Smart Import [35]. Anstatt Plug-ins nachzuinstallieren, soll das bestehende Tooling besser genutzt werden. Smart Import analysiert dazu den Inhalt eines Verzeichnisses, schlägt (Unter-)Verzeichnisse zum Importieren als Projekte vor und konfiguriert es nach dem Import. Beispielsweise könnte Smart Import anhand des Inhalts einer vorhandenen pom.xml-Datei erkennen, dass es sich um ein Java-Projekt handelt und welche Verzeichnisse als Quelltextverzeichnisse zum Build Path hinzuzufügen sind (Abb. 9).

Eclipse Neon Smart Import

Abb. 9: Smart Import

 

Smart Import findet man im Menü sowohl unter File | Import… | General | Projects from Folder or Archive als auch unter File | Open Projects from File System… Die alte, ähnlich benannte Import-Funktion Existing Projects into Workspace setzt das Vorhandensein einer Eclipse-.project-Datei voraus. Smart Import kann dagegen auch nicht mit Eclipse erstellte Projekte öffnen beziehungsweise importieren. Außerdem kann Smart Import zum Konfigurieren auch auf existierende Projekte angewandt werden: Projektordner auswählen und im Rechtsklickmenü Configure | Configure and Detect Nested Projects wählen. Plug-ins können Detektoren/Konfiguratoren beisteuern und den Import dadurch smarter machen. Noch ist die Schnittstelle als instabil gekennzeichnet und verwendet java.io.File statt org.eclipse.core.resources.IFile. Das führt dazu, dass ZIP-Archive bereits zur Analyse ausgepackt werden und leider nicht wieder gelöscht werden, wenn man den Import abbricht. Trotzdem beeindruckt Smart Import, der fairerweise besser als experimentell gekennzeichnet hätte werden sollen, jetzt bereits durch seine Nützlichkeit.

Luft nach oben

Auf Neon wird Oxygen folgen oder – falls Jahreszahlen gegen das bisherige Namensschema gewinnen – Eclipse 2017 [36]. Das mit Mars eingeführte Error Reporting half zahlreiche Fehler zu identifizieren und zu beseitigen [37]. Zukünftig soll es auch für Nicht-Eclipse-Projekte und Eclipse-basierte Anwendungen offen stehen. Wer Eclipse besser machen will, sollte das Senden der Fehlermeldungen zulassen. Eine gute Idee finde ich die von Mikaël Barbero, zur Suche nach Schwachstellen den UI Responsiveness Monitor um den Job Canceling Monitor zu ergänzen [38]. Um das Benutzerverhalten besser zu verstehen, sollte es eigentlich mithilfe einer sogenannten Unique User ID (UUID) getrackt werden. Aufgrund Datenschutzbedenken lies man das aber dann doch fallen [39].

Etwas Zeit wird wohl noch der Feinschliff für die Unterstützung hochauflösender Displays benötigen. Die offizielle Unterstützung für Java 9 ist für Oxygen zu erwarten, und vielleicht wird sich das Arbeiten in der Java-IDE durch einen neuen Java-Indexer schneller anfühlen [40]. Wenn alles nach Plan läuft, wird EclEmma als neues Eclipse-Projekt die Java-IDE um die Möglichkeit zur Erfassung der Testabdeckung bereichern [41]. Auch die Pläne bei JavaScript sind ambitioniert: Der Austausch des Parsers soll mehr Performance und höhere Fehlertoleranz bringen [42]. Es tut sich viel bei Eclipse. Besonders freut mich das Wiedererwachen der Plattform und der IDE, sowie die Wiederbelebung im Bereich Web/JavaScript. Auch im Bereich Internet of Things, von dem ich hier gar nichts berichtet habe, ist Eclipse stark vertreten. Wer über die Entwicklung auf dem Laufenden bleiben will, dem sei Eclipse Weekly von Dominik Mohilo auf jaxenter.de empfohlen [43].

IDE #1

Der zwar wichtige, aber aus Benutzersicht zu frühe Wechsel der Plattform von 3.x auf 4.x liegt nun vier Jahre zurück. Er hat viel Kraft gekostet und die Entwicklung neuer Features verlangsamt. Auch bei den Entwicklern gab es einen Generationswechsel. Urvater von Eclipse Erich Gamma, der im November 2001 die Version 1.0 von Eclipse vorstellte, ist heute bei Microsoft. Im April diesen Jahres stellte er die Version 1.0 von Visual Studio Code vor, halb Editor, halb IDE. Visual Studio Code ist Open Source und Microsoft seit März ein Eclipse-Mitglied, Belege für eine Zeitenwende [44].

Bei Eclipse wurde mit der Arbeit zur Unterstützung des Language-Server-Protokolls von Visual Studio Code begonnen [45]. Die Idee des Protokolls ist, möglichst viel Sprach-Spezifisches wie Code-Highlighting oder die Vorschläge für die Autovervollständigung auf einen Server auszulagern. Ein Editor, der dieses Protokoll unterstützt, würde mit einem Schlag alle Sprachen unterstützen, für die es einen Language Server gibt. Oder umgekehrt: mit der Bereitstellung eines Language Servers für eine Sprache hätte man Sprachunterstützung in allen Editoren/IDEs, die das Protokoll unterstützen.

Auch zwischen Eclipse und JetBrains gibt es, wenn man an Xtext für IntelliJ IDEA und die Eclipse-Plug-ins von JetBrains für Kotlin denkt, sowohl Kooperation als auch Konkurrenz. So oder so profitiert der Nutzer, dem die Wahl zwischen verschiedenen IDEs bleibt. Ich habe mir Visual Studio Code (sehr spartanisch und stürzte reproduzierbar ab), NetBeans (interessant für Einsteiger aber nur begrenztes Angebot an Erweiterungen) und IntelliJ IDEA (leider nicht Open Source; ein paar Dinge gefallen mir besser als bei Eclipse, aber häufiger ist es umgekehrt [46]) angesehen. Auch wenn die Eclipse-Neon-Webseite, die den Charme der 80er Jahre versprüht, anderes vermuten lässt, ist für mich Eclipse die modernste IDE und bleibt weiterhin meine Nummer Eins [47].

Verwandte Themen:

Geschrieben von
Holger Voormann
Holger Voormann
Holger Voormann: irgendwas mit Eclipse; früher festangestellt, seit 2010 freiberuflich; Eclipse Vex (a Visual Editor for XML) Committer, aber länger inaktiv; dafür kleinere Code-Beiträge für die Eclipse-Plattform, aber nicht als Committer; bloggt unregelmäßig (eclipsehowl.wordpress.com); antwortet nicht immer auf E-Mails (eclipse@voormann.de) und auf Tweets (@howlger)
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.