Interview mit Georges Saab

Konservativ – aber verlässlich: Oracle VP Georges Saab über Java 8 und die Herausforderung einer Millionen-Community

Lucy Carey
Georges Saab

Was lange währt, wird endlich gut – nach genau zwei Jahren, sieben Monaten und 18 Tagen hat Oracle Java 8 offiziell freigegeben. Georges Saab, Oracles Vice President of Software Development der Java-Plattform-Gruppe, zieht im Gespräch mit JAXenter ein Resumée des langen Weges, auf dem zwar Projekt Jigsaw auf der Strecke bleiben musste, auf dem mit Projekt Lambda aber die „wichtigste Neuerung seit zehn Jahren“ eingeführt wurde. Und wie soll es mit Java 9 nun weiter gehen?

JAXenter: Gestern habt Ihr das offizielle Launch-Event für Java 8 abgehalten. Java 8 ist damit also freigegeben – nach über zwei Jahren der Entwicklung. Herzlichen Glückwunsch dafür! Wie viele Techniker waren an dem Release beteiligt?

Georges Saab: Ein Major Release wie Java SE 8 zu realisieren, ist zunächst einmal eine riesige Community-Anstrengung, die weit über die Grenzen einer einzelnen Firma oder Organisation hinausgeht. Das macht es aber auch sehr schwer, diese Frage genau zu beantworten.

Oracle lässt die Java-Plattform beispielsweise weltweit an verschiedenen Standorten von hunderten von Softwarespezialisten entwickeln. Tatsächlich suchen wir im Moment sogar nach zusätzlichen Leuten, z.B. in Stockholm, Santa Clara oder St. Petersburg. Mehr Infos dazu gibt es unter http://oracle.com/javajobs.

Neben der beachtlichen Arbeit von Angestellten bei Firmen wie Oracle oder IBM hat die lebendige OpenJDK Community wichtige Beiträge für das JDK 8 von Wissenschaftlern wie Michael Ernst von der Universität Washington und von Einzelpersonen wie Stephen Colebourne erhalten. Durch ihre Implementierungsarbeit und ihre Führungsrolle in JSR 308 (Type Annotations) bzw. JSR 310 (Date and Time API) sind Michael und Stephen einige der wichtigsten Features im neuen Release zu verdanken. Nicht vergessen dürfen wir an dieser Stelle Doug Lea und sein Team, die erneut einige signifikante Concurrency-Updates beigesteuert haben.

Das ist aber längst nicht alles: Ohne die vielen einzelnen Java-Entwickler, die schon frühzeitig JDK 8 Early Access-Builds getestet haben, wäre das Release nicht so ausgereift wie jetzt. Eine wichtige Rolle hat auch das substantielle Feedback zu den neuen Features gespielt, das durch Community-Initiativen wie Adopt-A-JSR und Adopt OpenJDK ermöglicht wurde.

JAXenter: Was waren die konkreten Design-Ziele für das Java 8 Release?

Georges Saab: Bei den Zielvorgaben für Java SE 8 haben wir uns an allgemeinen Trends in der Entwickler-Community und bei Hardware-Architekturen orientiert. Unser Ziel ist, den breitest möglichen Erfolg der Java-Kern-Technologie auch in den kommenden Jahren zu gewährleisten. Bei Java SE 8 lag das Hauptaugenmerk auf den Bereichen Produktivität, Performance und der Bereitstellung der nötigen Grundlagen für eine modulare Plattform.

Ein wichtiges neues Sprachfeature bei Java sind die Lambdas, die in vielen dieser Bereiche punkten können: Sie machen Java-Entwickler produktiver, indem sie die Verwendung eines weit verbreiteten Programmierkonstruktes und das Schreiben von knapperem, besser verständlichem aber einfacher parallelisierbarem Code ermöglichen. Indem sie es für Entwickler einfacher machen, korrekten Code zu schreiben, der es der JVM erlaubt, das volle Potential von zugrundeliegenden Multi-Core-Hardware auszunutzen, legt Java SE 8 auch bei der Performance zu und bietet an vielen Stellen Verbesserungen bei den Core-Klassen-Bibliotheken und der HotSpot VM.

Dazu kommt, dass wir im Zuge der fortlaufenden Arbeiten an der Modularisierung die sogenannten Compact Profiles eingeführt haben. Unsere Pläne für Java SE 8 waren ursprünglich noch gewagter und beinhalteten Project Jigsaw als eines der Hauptfeatures. Project Jigsaw wurde dann aber auf Java SE 9 verschoben – stattdessen kamen die Compact Profiles für die unmittelbaren Erfordernisse der Footprint-Skalierbarkeit der Plattform. Dabei konnten wir auf den vorherigen Arbeiten aufbauen, das JDK für die Modularisierung vorzubereiten.

Java SE 8 kann nun mit einem wesentlich kleineren Footprint ausgeliefert werden, wenn man eines der drei standardisierten Compact Profiles verwendet. In JDK 8 gibt es das neue Tool jdeps, das Entwickler bei der Einschätzung unterstützt, ob sie die Vorteile der Compact Profiles in ihren Anwendungen nutzen können.

JAXenter: Warum war es für Sie wichtig, Konzepte aus dem funktionalen Programmieren mit einzubeziehen? Welche Auswirkungen wird das auf die Community haben?

Georges Saab: Ich erwarte, dass die allgemeine Java Community von den neuen Konzepten profitieren und sie deshalb auch recht schnell annehmen wird.

Bei Hardware kann man derzeit einen Trend in Richtung zunehmender Mehrkern-Architekturen beobachten – selbst im Embedded-Bereich. Aus dieser Perspektive ist die Fähigkeit, einfach wartbaren, korrekten und wenn nötig parallelisierbaren Code zu schreiben ein großes Plus und für jede Mainstream-Programmier-Plattform ein Gewinn.

[ header = Seite 2: Wie steht Java 8 zu Scala und Clojure? ]

JAXenter: Befindet sich Java 8 damit jetzt im Wettstreit mit anderen funktionalen JVM-Sprachen wie Scala oder Clojure?

Georges Saab: Auch wenn die neuen Sprach- und Runtime-Features in Java 8 vielleicht dazu beitragen, dass die verschiedenen Sprachen in der JVM näher aneinanderrücken, glaube ich, dass die unterschiedlichen Communities auch über ganz unterschiedliche Philosophien verfügen.

Das Tempo, in dem sich die Java Programmiersprache bewegt, ist eine Art langsamer, stetiger aber vorsichtiger Wandel. Bei den Millionen von Entwicklern, die die Sprache benutzen, müssen wir jeden Vorschlag oder Änderungswunsch aus einer Vielzahl von Perspektiven betrachten und das Pro und Kontra genauestens abwägen. Diesen Ansatz kann man konservativ nennen, aber er bietet dafür ein hohes Maß an Verlässlichkeit.

JAXenter: Welche Features sollten zunächst in Java 8 enthalten sein, haben es aber letztendlich nicht geschafft – ein Beispiel sind hier sicherlich die Stripped Implementations?

Georges Saab: Die Stripped Implementations waren nicht unbedingt vom technischen Gesichtspunkt aus nicht machbar, aber letzten Endes brauchten wir noch ein bisschen mehr Zeit, um sicherzustellen, dass der Spezifikationstext und der damit verbundene legale Rahmen die relevanten Anwendungsfälle zuließ und gleichzeitig die Kompatibilität gewährleistete. Wir arbeiten indes weiter daran – und wenn alles gut läuft, werden wir Stripped Implementations in einem späteren Update von Java SE 8 noch vor Java SE 9 einführen.

Unser oberstes Ziel ist immer noch, eine skalierbare, modulare Plattform zu schaffen. Mit dem Projekt Jigsaw suchen wir nach einem einfachen Ansatz und einer prototypischen Implementierung, um dieses Ziel zu erreichen. Die Arbeiten daran schreiten voran, damit Jigsaw schließlich Teil von Java SE 9 werden kann.

JAXenter: Wie wichtig war das Feedback der Community während des Entwicklungsprozesses?

Georges Saab: Das Community Feedback war extrem wichtig, vor allem wenn man bedenkt, dass dieses Release zum ersten Mal seit einem Jahrzehnt wieder ein wichtiges neues Sprachfeature und etliche damit verbundene Veränderungen an den Kern-Klassen-Bibliotheken und der VM beinhaltet.

 Um nur ein Beispiel zu nennen: Brian Goetz, unser Java Sprach-Architekt bei Oracle und der Spec Lead für JSR 335 (Lambda-Ausdrücke für Java), bezog zusammen mit seinem Team die Community von Anfang an in den Prozess mit ein, teils in den Mailing-Listen der OpenJDK-Community, wo Themen wie Design und Implementierung diskutiert wurden, teils durch Befragungen und durch den JCP. Die Ergebnisse sprechen für sich: Die Lambdas werden in der Java Community als eine der spannendsten Neuerungen gesehen, die es in der Core Java-Plattform jemals gab.

Insbesondere die Java User Group Community, allen voran die Londoner LJC und andere JUGs, organisierte Hacking-Events, bei denen man die neuen Sprachfeatures und APIs an richtigem Code ausprobieren konnte. Dabei gab es regelmäßig hervorragendes Feedback während des Design- und Entwicklungsprozesses der Lambda-Ausdrücke und des neuen Datums/Zeit-APIs.

[ header = Seite 3: Der Blick über Java 8 hinaus ]

JAXenter: In der letzten Phase vor dem Release ging es ja darum, nur noch wirklich kritische Bugfixes durchzuführen. Was ist mit den kleineren Bugs, die im finalen Release noch übrig geblieben sind?

Georges Saab: Mit der Veröffentlichung von Java SE 8 ist die Entwicklung an der Plattform natürlich nicht abgeschlossen. Wie beim JDK 7 arbeiten wir bereits innerhalb der OpenJDK-Community an JDK-8-Updates. Dort werden fortlaufend die kleinen Bugfixes integriert, die es nicht mehr bis zur General Availibiliy in das fertige Release geschafft haben.

Davon abgesehen beinhalten Updates auch nicht nur kleine Fixes. Sie sind ein wichtiges Mittel, um neue Features auszuliefern, z.B. Portierungen für andere Plattformen. Ein Beispiel dafür ist der OS X-Port, welcher damals als Teil eines Update-Releases für JDK 7 ausgeliefert wurde.

In Zukunft könnte es auch einen OpenJDK-Port für die PowerPC-Architektur bei Linux und AIX-Betriebssystemen geben, die von IBM und SAP entwickelt und verbreitet werden. Einen JDK-Port für eine komplett unterschiedliche CPU-Architektur oder Betriebssystem kann man wahrlich nicht als kleinen Fix bezeichnen.

JAXenter: Wie schätzen Sie die Akzeptanz von Java 8 in der Community ein?

Georges Saab: Wenn es um Produktivität und Performance geht, stellen die neuen Sprach- und API-Features für die Plattform als ganzes einen gewaltigen Schritt nach vorne dar. Dazu kommt, dass die Entwickler beliebter IDEs wie Eclipse, IntelliJ IDEA und NetBeans hart daran gearbeitet haben, diese neuen Features zu unterstützen. 

Wir konnten beobachten, wie die Leute während der Tests der wöchentlichen Early Access Builds mit viel Begeisterung und mit großem Elan an die Sache herangingen. Alle Anzeichen deuten darauf hin, dass Java 8 schneller angenommen wird als frühere Releases – gerade im Fall von neuen Projekten.

JAXenter: Welche neuen Features in Java 8 werden für die Entwickler die größte Herausforderung darstellen?

Georges Saab: Ich glaube nicht, dass Lambdas für Java-Entwickler eine große Herausforderung darstellen. Dadurch, dass sie sorgfältig und behutsam in Java SE 8 eingeführt wurden, fühlen sie sich wie natürliche Erweiterungen an. Wenn es einen Bereich gab, den wir im JDK 8 komplett neu geschrieben haben, dann war das die leichtgewichtige und hochperformante JavaScript-Engine „Nashorn“. Nashorn ersetzt im JDK 8 die alte Rhino JavaScript-Engine. Bei der Entwicklung achteten wir vor allem darauf, dass sie der Sprachspezifikation ECMAScript-262 Edition 5.1 entspricht. Das könnte vielleicht ein Bereich sein, wo manche Entwickler merken werden, dass Nashorn bei der Einhaltung der Spezifikationen strikter als der Vorgänger ist, vor allem wenn der JavaScript-Code zufällig auf eine Spezifikation angewiesen ist, die es nur in Rhino gibt.

JAXenter: Die Deadlines für Java 8 wurden in der Vergangenheit ja mehrmals verschoben. Wie haben Sie diese Zeit genutzt?

Georges Saab: Dank des verlängerten Zeitplans konnten wir einige zusätzliche Features einbauen, besonders was die Sicherheit angeht. Im Allgemeinen haben wir die zusätzliche Zeit genutzt, um die bereits für Java SE 8 geplanten Features auszutarieren und noch weiteres Fein-Tuning zu betreiben. Außerdem hatte die Java-Community noch mehr Zeit, um die Early Access Builds zu bewerten und potentiell kritische Probleme zu melden.

Daneben konnten wir uns mit den Entwicklern einiger der bekanntesten Open-Source-Community-Projekten wie z.B. Apache Lucene, Groovy and Scala in Verbindung setzen, um ihre Meinung zu Themen zu hören, die sie für den Erfolg ihrer Projekte in JDK 8 als entscheidend erachten. Insofern würde ich sagen, dass wir einen Großteil der zusätzlichen Zeit einfach darauf investiert haben, die Qualität des finalen Builds von JDK 8 zu verbessern, wobei uns aber noch genügend Freiraum blieb, um das angepeilte Release-Datum zuversichtlich zu erreichen.

JAXenter: Was würden Sie Leuten antworten, die sagen, dass Java zu unsicher ist, um es im Browser laufen zu lassen. Gibt es eine gewisse Berechtigung für diese Bedenken?

Georges Saab: Die Sicherheit in Java aufrechtzuerhalten, ist für uns oberste Priorität. Im Verlauf des letzten Jahres haben wir eine Reihe von Sicherheitsverbesserungen und neue Features durch die Oracle JDK 7 Updates eingeführt, darunter z.B. Deployment Rule Sets und Exception Site Lists.

Zusätzlich haben wir den Release-Zyklus der Sicherheits-Fixes für Java SE beschleunigt und den Zeitplan an die vierteljährlichen Oracle Critical Patch Update Releases angepasst. Dazu wurden einige Verbesserungen der Standard-Sicherheit eingeführt, wenn Java Apps im Browser laufen. Dadurch gibt es eine größere Kontrolle auf Seiten der Endverbraucher, außerdem versuchen wir das Ausführen von unsigniertem oder selbstsigniertem Applets zu verhindern.

JAXenter: Können Sie uns bereits sagen, was für Java 9 geplant ist?

Georges Saab: Abgesehen von dem einen offensichtlichen Punkt – Project Jigsaw – gibt es eine Reihe von Ideen, die in der OpenJDK-Community und auch anderswo diskutiert werden. Viele von diesen Ideen werden nach und nach durch die JDK Enhancement Proposals (JEPs) formuliert und aufgegriffen werden.

 Im Moment sind wir nur dabei, Bugfixes und kleinere Verbesserungen in JDK 9 zu integrieren, bis sich durch den JEP-Prozess ein vollständigeres Bild der gewünschten Features abzeichnet.

 JAXenter: Vielen Dank für dieses Interview!

Georges Saab ist Teil des OpenJDK Governing Boards und Vice President of Development der Java Platform-Gruppe bei Oracle. Saab blickt auf eine über 20-jährige Karriere im Bereich der Entwicklung von Programmiersprachen und – plattformen zurück. Seine Arbeit an der Java-Plattform begann als Entwickler der Java Standard Edition bei JavaSoft und Sun Microsystems, wo er die Swing- und Java-Webstart-Gruppen gründete. Weiterhin führte er die Entwicklung der JRockit JVM bei BEA Systems an. Twitter: @g_saab

Das Interview im englischen Original finden Sie auf JAXenter.com: Georges Saab on the goal of “creating a scalable and modular platform”

Geschrieben von
Lucy Carey
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: