Suche
(K)ein Schwanengesang auf Java - Teil 5

Expertencheck: Welche neuen Features erwarten uns in Java 10?

Gabriela Motroc

© Shutterstock / Pavlo S

 

Bald kommt Java 9 – doch wie geht es danach weiter? Im letzten Teil unserer Interviewreihe geben die Java-Experten einen Ausblick auf Java 10 und verraten uns, welche neuen Features bei ihnen auf der Wunschliste stehen.

Was ist los in der Java-Welt? Jede Menge! Java 9 kommt im September, Java EE 8 steht in den Startlöchern und 11 Java-Experten geben uns Einblicke in die Zukunft der Programmiersprache. In dieser Interviewserie besprechen wir, wo wir mit Java 9 stehen, welchen Weg Java 10 einschlagen wird und welche Technologien Javas Führungsposition gefährden könnten.

Top 20 Java Influencers

Gefragt haben wir führende Experten der Szene, die auf Twitter besonders aktiv sind. Auf der Basis der Social-Authority-Metriken MozRank and Klout ergibt sich folgende Top 20 der Social Influencer in Java 2017:

 

Java Influencer - Java 10

Komplette Liste unter: www.jaxlondon.com/blog

(K)ein Schwanengesang auf Java

Haben wir uns im ersten Teil der Serie damit beschäftigt, ob JavaScript die Führungsposition von Java gefährden könnte, ging es im zweiten Teil um die Verschiebung von Java 9. In Teil 3 haben die Experten die Relevanz des Projektes Jigsaw für die Java-Community bewertet, in Teil 4 ging es gängigen Missverständnissen bzgl. Java 9 an den Kragen.

Damit kommen wir zum letzten Teil der Reihe, in dem die Experten einen Ausblick auf Java 10 wagen:

Die Java Influencer

Markus Eisele ist Head of Developer Advocacy bei Lightbend.

Mario Fusco ist Senior Software Engineer bei Red Hat.

Marcus Biel ist Software Craftsman und JCP-Mitglied.

Lukas Eder ist Gründer der Data Geekery GmbH und Erfinder von jOOQ.

Trisha Gee ist Developer Advocate bei JetBrains.

Vlad Mihalcea ist CEO bei Hypersistence.

Jake Wharton ist Android-Entwickler bei Square Inc.

Thorsten Heller ist CEO bei greenbird Integration Technology.

Baruch Sadogursky ist Developer Advocate bei JFrog.

Quentin Adam ist CEO von Clever Cloud.

Bruno Borges ist Principal Product Manager bei Oracle.

11 Antworten: Welche neuen Features würdest du gerne in Java 10 sehen?

Markus Eisele: Mein größtes Interesse liegt in der Steigerung der Entwicklerproduktivität. Danach kommt eine Weiterentwicklung der Lambdas sowie eine bessere Unterstützung für Streams in allen APIs, zum Beispiel in JDBC. Und es gibt schon einige interessante Vorschläge für JEPs (JDK Enhancement Proposals), die ich gerne in Java 10 sehen würde.

Ich bin wirklich begeistert über die geplanten Features in Projekt Valhalla.

Mario Fusco: Ich bin wirklich begeistert über die geplanten Features in Projekt Valhalla. Value types werden sicherlich das relevanteste neue Feature sein. Die Spezialisierung der Generics wird uns zudem jede Menge unnötiger Boxing/Unboxing-Operationen ersparen, die immer viel Zeit fressen. Wahrscheinlich werden die reifizierten Generics weniger Auswirkungen haben; aber entlasten werden sie Entwickler wie mich, die an Frameworks und Libraries arbeiten und im Allgemeinen stärker von Reflections Gebrauch machen.

Und dann habe ich kürzlich eine E-Mail von Brian Goetz gesehen, in der die Möglichkeit beschrieben wurde, Pattern Matching in Java einzuführen. Das würde helfen, den Einsatz bzw. Missbrauch des Visitor Patterns zu begrenzen.

Für mich sind grundsätzlich alle Veränderungen, die die funktionalen Aspekte in Java stärken, sehr willkommen.

Marcus Biel: Nun, wenn ich einen Wunsch frei hätte…. Allgemein gesprochen sind das Entfernen von Features und die Korrektur falscher Entscheidungen der Vergangenenheit für mich wichtiger als neue Features. Ich würde gerne einige Veränderungen sehen, die allerdings nicht mehr Rückwärstkompatibel wären.

Entfernen könnte man nach meinem Gusto etwa die Checked Exceptions – aber das wird so schnell wohl nicht passieren. Wie dem auch sei, meine Wunschliste für Java 10 sieht in etwa so aus:

– Pattern Patching
– Value Objects
– Multiline Strings
– List<int>

Lukas Eder: Alles, was momentan im Kontext des Projekts Valhalla und anderen OpenJDK-Projekten diskutiert wird:

– Array 2.0
– Value types
– Generic specialization
– ADT und Pattern Matching (ich hoffe hier persönlich auch auf First Class Union und Intersection Types)
– Declaration site variance für Generics
– Generic enums
– Named und Defaulted Parameters

Und als SQL-Mann wäre ich extrem erfreut darüber, wenn wir diese Multiline Strings auch in Java hätten! Schön, wäre auch syntaktischer Zucker wie zum Beispiel:

– Datenklassen
– Flow-sensitives Typing (keine Notwendigkeit für Casts innerhalb eines „if-instanceof“ Blocks)
– Destrukturirung von Map Entries und anderen Typen
– List und Map Access-Literale
– Ein deutlich mächtigeres Stream API mit vielen neuen Features
– Type Aliases
– Lokale Methoden
– Lokale Importe

Einige haben vielleicht gemerkt, dass ich mir diese Features von Sprachen wie Kotlin oder Ceylon abgeguckt habe.

Trisha Gee: Ich würde gerne Lokale Variablen Typen-Inferenz in Java 10 haben. Eigentlich war ich lange Zeit der Meinung, dass wir uns keine Gedanken um all den unnötigen Boilerplate-Code machen müssten, da Entwickler diesen mit der Zeit ohnehin ausblenden. Doch je mehr Optimierungen zur Reduzierung von solchem Boilerplate-Code wir bekommen (z.B. Lambda Expressions, Methoden-Referenzen und die neuen Collections-Factory-Methoden), desto mehr realisiere ich, dass eine Sprache prägnant sein kann, ohne die semantische Aussagekraft zu verlieren.

Vom Standpunkt der Performance aus würde ich mich über etwas wie die Value Types freuen.

Vom Standpunkt der Performance aus würde ich mich über etwas wie die Value Types freuen. Ich weiß, dass derzeit diskutiert wird, was hier getan werden könnte, wie eine entsprechende Umsetzung aussehen würde und welche Ziele man damit verfolgen sollte. Ich denke, diese Diskussionen sind wirklich wichtig und könnten die Performance von Java-Anwendungen noch weiter voran bringen.

Vlad Mihalcea: Multi-line Strings.

Jake Wharton: Abgesehen von all den schönen Dingen, die bereits in der Pipeline sind – wie Value Types, Generics über Primitive, ein besseres Pattern Matching, etc. – würde ich mich über eine Unterstützung für partielle Klassen freuen, wie wir sie etwa in C# haben.

Als Autor von Annotations-Prozessorem halte ich die Unmöglichkeit, Klassen zu modifizieren, für eine zwar verständliche aber hinderliche Restriktion. Partielle Klassen würden es erlauben, in einer Klasse einen Contract zu definieren, der von anderen partiellen Klassen desselben Typus erfüllt werden müsste. Dies würde Annotations-Prozessoren erlauben, die Lücken in diesen Klassen aufzufüllen, anstatt sich wie heute mit Unterklassen oder Delegationen zu begnügen.

Thorsten Heller: Ein größerer Fokus auf einen eingebauten DevOps Support in der Core Java-Plattform wäre toll.

Baruch Sadogursky: Ich freue mich vor allem auf Projekt Valhalla. Es wird wirklich die Art und Weise verändern, wie wir Java-Programme schreiben.

Quentin Adam: Für mich zählen am meisten das Pattern Matching und die Value Classes. Als funktionaler Programmierer bin ich da allerdings wohl ein wenig voreingenommen.

Bruno Borges: Ich habe zwei ERs im OpenJDK JIRA, die ich gerne in Java 10 implementiert sehen würde:

Es gibt viele Proposals für Java 10, und alle sind spannend.

Einer ist JDK-8149423, bei dem es darum geht, einen Quellcode-Fingerabdruck im Bytecode zu verankern, sodass IDEs prüfen können, ob der Quellcode, der im Editor geöffnet ist, wirklich der ist, der momentan debuggt wird. Ist es dir auch schon einmal passiert, dass du eine Quellcodezeile debuggst und siehst, wie ein Breakpoint auf eine leere Zeile springt? Ja genau, ich hasse das. Denn der Quellcode ist nicht der Code im JVM-Speicher.

Die andere kleine Sache ist die Verbesserung des JAR Tools für die Wiederherstellung der File Permissions (JDK-8149423).

Wie dem auch sei, es gibt viele Proposals für Java 10, und alle sind spannend. Aber diese beiden Punkte sind eben meine eigenen Ideen dazu … 😉

(K)ein Schwanengesang auf Java – die Interview-Serie mit Java-Experten

Bisher erschienen:

Teil 1: Heißt Javas Schicksal JavaScript?
Teil 2: Ist die Verschiebung von Java 9 gerechtfertigt?
Teil 3: Wie relevant ist Projekt Jigsaw wirklich?
Teil 4: Das sind die häufigsten Missverständnisse zu Java 9
Teil 5: Welche neuen Features erwarten uns in Java 10?

Geschrieben von
Gabriela Motroc
Gabriela Motroc
Gabriela Motroc ist Online-Redakteurin für JAXenter.com. Vor S&S Media studierte Sie International Communication Management an der The Hague University of Applied Sciences.
Kommentare
  1. Pumuckl2017-12-06 10:36:14

    Einer ist JDK-8149423, bei dem es darum geht, einen Quellcode-Fingerabdruck im Bytecode zu verankern, sodass IDEs prüfen können, ob der Quellcode, der im Editor geöffnet ist, wirklich der ist, der momentan debuggt wird.

    Das wäre absolut brauchbar. Wenn das im Zusammenhang mit GXT oder Vaadin Projekten funktionieren könnte.

Schreibe einen Kommentar

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