Entwicklungsumgebung: Eclipse in neuer Version 2020-06 erschienen

Unterstützung für Java 14, mehr Möglichkeiten, Java-Code aufzuräumen, und etliche Überarbeitungen bringt das neue Quartals-Release der IDE.

Lesezeit: 3 Min.
In Pocket speichern
vorlesen Druckansicht Kommentare lesen 35 Beiträge

(Bild: Eclipse)

Von

Die quelloffene Desktop-IDE Eclipse ist in Version 2020-06 erschienen. Sie liegt vor in Form erweiterbarer IDE-Pakete für unterschiedliche Einsatzzwecke und Programmiersprachen, allen voran für Java-, C/C++-, PHP-, Rust- und Webentwickler.

Optisch unterscheidet sich die neue Ausgabe vom März-Release durch einen neuen Startbildschirm, ein klareres Design mit standardmäßig eckigen statt runden Tabs und auf Windows mit hellgrauem statt hellblauem Hintergrund. Erwähnenswerte Überarbeitungen gibt es bei der Unterstützung für Java, bei der eingebauten Versionsverwaltung Git und bei allgemeinen Funktionen, die nicht nur Java-Entwickler betreffen.

Die Unterstützung für Java 14 ist nicht mehr nachzuinstallieren, sondern nun fest eingebaut. In Java 14 gibt es statt einer nun vier Arten von switch-Anweisungen. Eclipse bietet hierfür entsprechende Vorlagen und Korrekturvorschläge an, um beispielsweise ein return an unerlaubter Stelle durch ein yield zu ersetzen.

Neben dieser einzigen standardmäßig nutzbaren sprachlichen Änderung gibt es in Java 14 drei die Syntax betreffende sogenannte Preview-Features: Text Blocks, Records und Pattern Matching für instanceof. Preview-Features sollten nur zu Testzwecken verwendet werden, da sie sich noch ändern können, bevor sie zum Standard werden. Sie müssen explizit aktiviert werden, was nun einfach per Rechtsklick auf das Projekt und Configure | Enable preview features möglich ist.

Text Blocks sind Zeichenketten, die sich über mehrere Zeilen erstrecken und bereits als Preview Feature in Java 13 vorhanden waren. Hinzugekommen sind die beiden Escape-Sequenzen \ (nur am Zeilenende erlaubt, um den nachfolgenden Zeilenumbruch im Quelltext zu maskieren) und \s (ein Leerzeichen, das sich am Zeilenende nutzen lässt, um vorangegangene Leerzeichen zu schützen und sichtbarer zu machen). Ein record ist ein neuer Typ für unveränderliche Daten ohne die bei Objektorientierung sonst übliche Möglichkeit der Vererbung. Pattern Matching für instanceof ist ein klassisches instanceof gefolgt von einem Variablennamen. Es erspart explizites Zuweisen des umgewandelten Typs zu einer Variable.

Eclipse versteht diese neuen Sprachkonstrukte nun "out of the box", und der Eclipse-eigene Java-Compiler erzeugt den entsprechenden Bytecode oder zeigt gegebenenfalls Warnungen oder Fehler an. Zum Erstellen von Records gibt es einen neuen Dialog sowie eine neue Vorlage, und der Formatierer umfasst einige neue Einstellmöglichkeiten bei Records.

Eine NullPointerException verriet bisher nur, in welcher Zeile sie auftrat, aber nicht, was null war und wodurch welcher Methodenaufruf oder welcher Zugriff auf ein Feld einer Objektinstanz fehlschlug. Um das zu verbessern, wurden mit Java 14 sogenannte Helpful NullPointerExceptions eingeführt. In Eclipse lässt sich dieses an sich deaktivierte Java-Feature in den Einstellungen (Window | Preferences[caps]) in [caps]Java | Installed JREs freischalten, indem man die JRE oder das JDK selektiert, auf Edit... klickt und bei "Default VM arguments" "-XX:+ShowCodeDetailsInExceptionMessages" eingibt.

Hilfreiche NullPointerException-Fehlermeldungen werden von allen HotSpot Java VMs ab Java 14 unterstützt. Bei der Eclipse OpenJ9 Java 14 VM muss man auf diese Funktion noch auf das nächste Update am 20. Juli 2020 warten. Dafür ist aber im Gegensatz zu den HotSpot VMs eine Rückportierung für Java 8 und 11 geplant.

Nicht nur bei der Entwicklung mit Java 14, sondern auch mit älteren Java-Versionen sind die drei neu hinzugekommenen sogenannten Code Clean-ups hilfreich, eine Art Autokorrektur für Java-Code, die sich manuell oder automatisch als Save Actions ausführen lassen: das Ersetzen aller expliziten Typdefinition durch var, wo das möglich ist, das Ersetzen aller einfachen logischen Und (&) und Oder (|) durch die entsprechenden bedingten Operatoren (&& beziehungsweise ||), wo das die Semantik nicht verändert, und das Zusammenführen gleicher if-, else if- und else-Blöcke.

Verbesserungen gibt es auch beim eingebauten Git. In der "Git-Repositories"-View lassen sich nun Filter für Tags setzen. Das Klonen eines Git-Repository ist jetzt auch von einer Git-Bundle-Datei möglich, eine Archivdatei ähnlich einer Zip-Datei, aber in einem Git-spezifischen Format. Wenn es noch nicht gepushte Commits gibt und die Staging Area leer ist, wird in der "Git-Staging"-View der Commit and Push...- zum Push HEAD...-Knopf. Das erspart den Wechsel an eine andere Stelle in der Oberfläche, um diese – je nach Arbeitsweise häufig genutzte – Funktion aufzurufen.

Schriften mit Ligaturen, die bisher nur unter Linux und macOS vollständig unterstützt wurden, sieht man nun auch unter Windows. Fira Code, Monoid, Victor Mono und andere Schriftarten mit Ligaturen zum Programmieren lassen sich damit auch auf Windows verwenden. Abhängig von den in der Schrift enthaltenen Programmier-Ligaturen werden beispielsweise die Zeichenkombinationen "->" als echter Pfeil, "!=" als durchgestrichenes Gleichheitszeichen und "<=" als ein Gleich-oder-kleiner-Zeichen dargestellt.

Die Verbesserungen an der Oberfläche betreffen nicht nur den Hell-, sondern auch den Dunkelmodus. Unter Windows sind nun auch alle Scrollbalken und die Menüleiste dunkel. Hell bleiben dagegen nur noch die Menüs selbst, falls nicht der Dunkelmodus von Windows aktiviert ist. In den IDE-Paketen für Enterprise-Java- und für PHP-Entwickler werden JavaScript-Dateien nun mit dem Editor aus dem "Eclipse Wild Web Developer"-Projekt geöffnet, der umfangreiche Codevervollständigung für HTML-Objekte wie "document" und "location" bietet.

Die Entwicklung für das nächste, für den 16. September geplante Release hat bereits begonnen. Unterstützung für das fast zeitgleich erscheinende Java 15 soll es dann bereits zum Nachinstallieren in einer Vorabversion geben. Die eingebaute Java-15-Unterstützung wird es erfahrungsgemäß voraussichtlich erst bei zeitgleich erscheinenden Java-Versionen im darauf folgenden Quartalsrelease geben.

Das September-Release wird nicht mehr Java 8, sondern Java 11 zum Ausführen von Eclipse voraussetzen. Das Schreiben von Code für ältere Java-Versionen wird Eclipse aber weiterhin unterstützen. Das erwähnte Ersetzen von expliziten Typdefinitionen durch var kann dann auf die Eclipse-Codebasis angewandt werden. Es wird auch daran gearbeitet, dass Eclipse künftig Java enthalten soll. Diese Arbeiten erfolgen in dem dafür eigens angelegten Eclipse-Projekt JustJ, das verschiedene Java-Versionen jeweils als installierbare und per Eclipse-Update-Mechanismus aktualisierbare Erweiterungen für Eclipse und Eclipse-basierende Anwendungen anbietet.

Mehr Details und eine Liste mit Links zu den jeweiligen Neuerungen der an der Ausgabe beteiligten Eclipse-Projekte sind auf der Webseite des neuen Release zu finden. Die neuen Eclipse-IDE-Pakete lassen sich via Eclipse Installer installieren oder als Zip-Datei herunterladen. Eine bestehende Eclipse IDE lässt sich über Help | Check for Updates aktualisieren. Bei etwas älteren Versionen muss dazu die "Latest Eclipse Release"-Update-Site aktiviert werden. (ane)