Java 7 Tage Überblick – Was kommt dannach? Java 8


Ich weiß die Überschrift dieses Eintrags ist wenig kreativ, aber sein wir uns ehrlich, es war eh schon allen klar, nach der 7 kommt die 8. Chromo machts vor, auch Firefox steigt auf den Highway der Versionsnummernvergabe und nachdem Java nun 5 Jahre still stand möchte Oracle die Programmiersprache in einen Schnellzug verwandeln. Bereits Ende 2012 will man mit Java 8 JSRs nachreichen, die sich zeitlich nicht mehr in dieses Release unterbringen liesen.

Darunter fallen folgende JSRs:

  • JSR 294: Language and VM support for modular programming
  • JSR 308: Annotations on Java types
  • JSR TBD: Language support for collections
  • JSR TBD: Project Lambda
  • Modularization (Project Jigsaw)
  • JSR 296: Swing application framework
  • Swing JDatePicker component

Dabei ist ausdrücklich vermerkt, dass nicht alle der aufgeführten Punkte fix einen Platz in Java 8 haben werden. Was dabei auf uns zukommt sei nun kurz zu jedem der Punkte erklärt:

JSR 294: Language and VM support for modular programming

Der JSR 294 soll Sprach und VM Features beinhalten um modulares Programmieren zu ermöglichen/erleichtern indem es standardisierte Möglichkeiten für das Zugreifen auf Module bieten soll. Dies soll modularen Systemen wie OSGI und Jigsaw zugute kommen können. Nähere Detail unter http://jcp.org/en/jsr/detail?id=294 Ein guter Blog Eintrag der das den Bereich auf den JSR 294 abzielt erklärt ist auf blog.bjhargrave.com zu finden (in Englisch).

JSR 308: Annotations on Java types

Dieser JSR befasst isch mit einer Erweiterung der Verwendbarkeit von Annotationen. Bisher konnte man nur Packages, Typen, Methoden und Konstruktoren, Felder, lokale Variablen, Methodenparameter und Enumeratoren mit Annotationen versehen. Dies soll nun soweit erweitert werden, dass Annotationen überall dort Verwendung finden können, wo Typen erlaubt sind. Man kann nun zB dei Typangaben einer Map eine Annotation anhängen.

Map<@NunNull String, Integer> map;

Mehr dazu hier.

JSR TBD: Language support for collections

Dieser Teil wurde aus Project Coin herausgenommen und auf das nächste Release verschoben. Er beinhaltet eine erweiterte Sprachunterstützung für Collections, die dem Entwickler den Umgang damit erleichtern sollen. Wie die Implementierung dazu genau aussehen wird weiß ich noch nicht, ich möchte daher auf die Mailing Liste von Project Coin verweisen, wo man näheres in Erfahrung bringen könnte.

JSR TBD: Project Lambda

Vor einiger Zeit noch unter dem Namen „Closures“ wild diskutiert, versteckt sich hinter Project Lambda. Dahinter verbirgt sich die Möglichkeit Funktionsaufrufe als Parameter zu übergeben. Ein schnelles Beispiel, anstatt eine Runnable instanzieren zu müssen, soll man den inhalt der Runnable#run() Methode direkt übergeben können:

new Thread(#{System.out.println("Nullpointer!")}).start();

Dies ist ein stark vereinfachtes Beispiel, dass ich von folgendem Artikel aus jaxenter übernommen habe. Weitere Information gibts dort, oder aber direkt auf der Projekthomepage.

Modularization (Project Jigsaw)

Während JSR 294 für die Modularisierung unterstützend sein soll, wird in Project Jigsaw der Stier bei den Hörnern gepackt. Zwar kann man in Java aktuell Klassen zu Paketen zusammenfassen und hat damit einzeln gruppierte „Module“, doch es ist dabei nirgends definiert, was so ein Modul anderen Modulen an Funktionalität zur Verfügung stellt, welche es selbst benötigt, und in welchen Versionen. Letzteres ist zum Teil in Build Tools wie Maven abgebildet, jedoch kann lediglich eine Version des Jars eingebunden werden. Was wenn eine andere Bibliothek eine andere Version desselben Jar Files benötigt? Dieses Problem kann mit Project Jigsaw in Java 8 angegangen werden. Andere Lösungen wie z.B. OSGi (Open Service Gateway Initiative) wären ebenfalls eine Variante, Project Jigsaw soll jedoch mit dem JDK freihaus mitgeliefert werden.

JSR 296: Swing application framework

Hierzu habe ich leider nicht viel gefunden, die JSR Seite ist recht spärlich befüllt. Es soll erreicht werden, dass das Erstellen von Swing Anwendungen vereinfacht wird indem für Standardelemente ein Framework geschaffen wird, dass zB Startup, Shutdown, Resourcenmanagement oder Action- bzw. Session Statemanagement vereinfacht.

Swing JDatePicker component

Eigentlich sowas wie eine Standardkomponente, dennoch nicht im Java Core integriert, ein Date Picker! Zur Ehrenrettung von Java wurde in SwingX eine entsprechende Componente geschaffen, die bald ins Standardrepatoire übernommen werden könnte. Wie diese Komponente aussieht findet ihr hier und hier gibts die API dazu.

Nicht auf der Featureseite von Java 7 für kommende Versionen vermerkt, aber dennoch eine interessante und auch notwendige Neuerung die da bald kommen könnte:

JSR 310: Date and Time API

Ziel davon ist es eine neue simplere API zu schaffen um mit Zeiten und verschiedenen Daten umgehen zu können. Eine Referenzimplementierung dazu schafft das Sourceforge Projekt ThreeTen. Da das Projekt sich noch in der Alpha Phase befindet sei zumindest auf den UserGuide verwiesen, der die Funktionalität in grundzügen erklärt.

So, da darf man schonmal gespannt sein, doch bis es soweit ist, viel Spaß mit Java 7!

Ähnliche Artikel:

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*