Next Generation Java: Wir brauchen keinen Erneuerer

Sebastian Meyen

Cameron McKenzie, Chefredakteur von TheServerSide.com, sucht nach dem nächsten disruptiven Element, welches die Java Enterprise Community aufzurütteln und in die nächste Ära des Enterprise Computing zu überführen vermag. Zu Recht verweist er auf die großen Leistungen von Rod Johnson, der mit seiner Konzeption der Dependency Injection (DI), die er im Spring Framework implementierte, vor Jahren die Java-Welt revolutionierte und praktisch keinen Stein mehr auf dem anderen ließ. Wo ist der neue Rod, wo die neue Lichtgestalt, die die Java-Welt rettet? So fragt Cameron.

Ist es Martin Odersky, der Urheber von Scala und Gründer des Unternehmens Typesafe, das sich auf die Entwicklung und Vermarktung eines rein Scala-basierten Software-Stacks konzentriert? Die Scala-Szene, schreibt Cameron, sei zu sehr von sich eingenommen, als dass sie eine breite Wirkung in der Java-Community, wie damals Spring, entfalten könne. Auch sei der technische Fokus der Scala-Leute klar auf die Early Adopters, die Alpha-Entwickler gerichtet, und kaum brauchbar für den Java-Mainstream.

Soweit teile ich Camerons Einschätzung. Die Java-Welt riskiert, angesichts ihres exorbitanten Erfolgs, die Signale, die auf „Änderung“ stehen, zu übersehen. Gewiss, bis heute ist im Bereich von Core Java sowie der klassischen Editionen (Java EE, Java SE) noch immer Entwicklungsarbeit zu leisten, die in dem verlorenen halben Jahrzehnt zwischen 2005 und 2010 versäumt wurde. Hier leistet Oracle ganze Arbeit. Aber es fehlt dem Java-Lager eine deutliche Vision, wohin die Reise gehen soll.

Auch in diesem Punkt teile ich die Einschätzung des Kollegen Cameron McKenzie.

Ich teile allerdings nicht seine Sehnsucht nach dem „Rod Johnson 2.0“, der erneut als Lichtgestalt auftritt und die Java-Welt auf den rechten Weg führt. Vielmehr glaube ich, dass sich die notwendige Veränderung eher in Gestalt einer Transformation denn einer Revolution vollzieht; und dass sie auf leisen Sohlen kommt.

Eine Vielzahl aktueller Tendenzen, die heute noch nicht immer in direktem Zusammenhang stehen, werden schon in naher Zukunft einen Zusammenhang bilden, den wir dann als „New School“ wahrnehmen werden:

  • Das Web (I): Die fortschreitende Modernisierung der Browser in Sachen Performance, Sicherheit und Standardunterstützung begünstigt eine Renaissance von JavaScript. Hinzu kommt die massive Mobilisierung des Web, welche für bedeutende Innovationen bei den JavaScript-Frameworks gesorgt hat. Als Ergebnis lassen sich eine Vielzahl an Funktionen, die bisher allein dem Server überlassen waren, auf den Client verlagern. Die klassischen Java-basierenden Server-side Frameworks werden angesichts dieser „Neuverteilung der Kompetenzen“ schon bald zum alten Eisen gehören.
  • Das Web (II): REST, aber auch WebSockets signalisieren in ihrer Summe einen veränderten Umgang der Enterprise-Entwickler mit dem Web. Das Web wandelt sich endgültig von einem reinen Transportmedium für Messages und Pages hin zu einem globalen Betriebssystem, in welchem Ressourcen und Services bereit gestellt werden (Hypermedia). Systeme der Zukunft werden extrem verteilt funktionieren, und ironischerweise wird zehn Jahre nach dem SOA-Hype die Vision der konsequenten Service- und Ressourcen-Orientierung endlich wahr (nur eben mit anderen Mitteln).
  • Mobile (I): Die Smartphones, obgleich sie wahre Supercomputer im Taschenformat darstellen, sind dennoch Endgeräte mit begrenzten Ressourcen: Kleine Bildschirme, keine dauerhafte Konnektivität, begrenzte Batterielaufzeiten bedingen eine Reduktion aufs Wesentliche. Das Ergebnis ist das Konzept „Apps“, kleine und hochfokussierte Programme, die meistens nur einem Zweck dienen und demzufolge vor allem die Aufgabe haben, als Service-Endpoint für einen Internet-gestützten Dienst zu fungieren.
  • Mobile (II): Im Ergebnis bauen Entwickler von Geschäftslösungen nicht mehr „Websites“ oder „Webanwendungen“, sondern Dienste. Dienste, die über ein gut gemachtes API für beliebige Service-Endpoints zur Verfügung stehen – seien dies nun von Menschen bediente Desktop-Browser oder Mobilgeräte (Tablets, Smartphones) oder auch Embedded-Systeme bis hin zu primitiven Chips und Sensoren. Strikte API-Orientierung, verknüpft mit dem Umgang mit einer Vielzahl heterogener Client-Technologien wie etwa HTML5/JavaScript, iOS, Android, .NET, Windows 8 sind für den Java-Entwickler die Folge.
  • Virtualisierung: Die meisten Techniken, die heute unter dem Begriff „Cloud“ en vogue sind, existieren ja schon seit Längerem. Die Public Cloud, wie sie von Amazon, Microsoft und vielen anderen globalen und regionalen Anbietern aufgebaut wurde, bietet aber eine neue „Self-Service-Komponente“. Innerhalb von Minuten und per Kreditkarte aktivierbar und in den meisten Fällen über ein nutzerfreundliches Interface konfigurierbar, haben die Cloud-Angebote eine neue Qualität für den Zugriff auf Rechner-Ressourcen ins Spiel gebracht (ganz zu schweigen von den flexiblen Bezahlmodellen, die mit fast allen Public-Cloud-Angeboten einhergehen).
  • Big Data: Die ganz Großen aus dem Silicon Valley haben’s vorgemacht, mittlerweile werden die innovativen Datenspeicher global verwendet. Ursprünglich als reine Abkehr von den relationalen Datenbanken positioniert, verstehen die Meisten heute unter „NoSQL“ eher „Not only SQL“ denn eine vollständige Abkehr von der Abfragesprache SQL. Tatsache ist, dass die Industrie gelernt hat, dass wir nicht für jeden Fall eine transaktionsorientierte und relationale Datenbank benötigen, sondern dass es häufig auch einfachere Datenspeicher tun. „Big Data“ handelt daher nicht ausschließlich von supergroßen Datenemengen, sondern häufig nur von Vereinfachung. Im Kern des Trends steht allerdings die exponentiell anwachsende Datenmenge, die durch Sensoren, Social Media und steigende Vernetzung entsteht, und aus der wir irgendeinen Nutzen ziehen wollen. Und zwar in Nahezu-Echtzeit. Keine triviale Aufgabe.
  • DevOps (I): Zwei wesentliche Erfahrungen führen zum DevOps-Trend, der intensivierten Zusammenarbeit zwischen Entwicklern einer Software (Devs) und deren Betreiber (Ops): Erstens die agilen Prinzipien, die seit über zehn Jahren beweisen, dass sie die Softwareentwicklung erheblich erfolgreicher machen als die traditionellen Verfahren. Zweitens die rasante Dynamisierung aller digitalen Geschäftsmodelle und die damit einhergehende Flexibilisierung. Unternehmen müssen in der Lage sein, Änderungen sofort in Produktion zu geben, wollen sie in einem globalen Geschäftsumfeld bestehen. Vor diesem Hintergrund möchte die DevOps-Bewegung die traditionellen Grenzen zwischen Devs und Ops nieder reißen und eine neue Kultur der Zusammenarbeit zwischen beiden Teams etablieren – im Sinne des Geschäftserfolgs.
  • DevOps (II): Mit Continuous Delivery entsteht ein Bündel an Techniken, welches die Auslieferung von Software erheblich beschleunigen und automatisieren soll. Manche scheinen sich zwar einen Sport daraus zu machen, mittels Continuous Delivery 30 oder 50 Releases ihrer geschäftskritischen Software pro Tag zu shippen, aber im Kern steht die Fähigkeit, on-the-fly und völlig reibungslos Updates und Weiterentwicklungen einer Software auszuliefern. Um ein solches System aufzubauen, müssen Entwickler und Betreiber einer Software eng zusammen arbeiten.

Die oben beschriebene Aufzählung an Trends – Web, Mobile, Virtualisierung, Big Data und DevOps – mag sich für manche wie eine Ansammlung von Buzzwords lesen. Es mag sein, dass das eine oder andere Thema ein Strohfeuer ist, weshalb es wichtig ist, danach zu fragen, was am Ende übrig bleiben wird. Anstatt wie Cameron nach dem Erneuerer zu fragen, ist die Java-Community – und nicht nur diese! – gefordert, die Augen offen zu halten und die Essenz dieser Strömungen zu verstehen.

Tatsache ist, dass diese Herausforderungen zusammengenommen einen immer größeren Innovationsdruck ausüben, so dass sich die Java Community an allen Ecken und Enden erneuern muss, um weiterhin relevant zu bleiben. Die IT-Welt ist erheblich dezentraler geworden ist, deswegen braucht es speziellere, passgenauere und kleinere, „evolutionäre“ Lösungen. Eine singuläre Technologie wie z.B. Scala wird dies nicht leisten können.

Viele der hier beschriebenen Überlegungen sind in Gesprächen mit Eberhard Wolff entstanden, weshalb ich zum Schluss noch auf seine hervorragende Präsentation „New Challenges and Approaches for Enterprise Java“, die er während der JAX in San Francisco gehalten hat, verweisen möchte.

Sebastian Meyen (Twitter: @smeyen) ist Chefredakteur des Java Magazins sowie des Eclipse Magazins. Außerdem trägt er die Verantwortung für Programm und Konzept sämtlicher JAX-Konferenzen weltweit. Er begleitet so die Java-Community journalistisch schon fast seit ihren Anfängen. Bevor er zur Software & Support Media GmbH kam, studierte er Philosophie in Frankfurt.
Geschrieben von
Sebastian Meyen
Kommentare

Schreibe einen Kommentar

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