Das Java-Jahr aus der JAXenter-Perspektive

Das war Java 2013 – der große Jahresrückblick 3.0

Hartmut Schlosser
©Shutterstock/ Botond Horvath

Das Jahr 2013 neigt sich dem Ende zu – und es war ein spannendes, ereignisreiches Jahr auch für die Java-Community! Die monatliche Zusammenschau der Technologie-Entwicklungen offenbart die brodelnde Aktivität im Java-Ökosystem, das wir auf JAXenter das ganze Jahr über journalistisch begleiten durften. Hier ist der Jahresrückblick aus unserer JAXenter-Perspektive: Kreatives, Kontroverses, Kurioses…

September: JavaOne Revival, Spring IO und das Abenteuer Avatar

Ein positives Fazit zogen wir von der JavaOne. Mit der Rückkehr zum Moscone-Center, den Aussichten auf ein Java 8 mit Lambda-Ausdrücken und spannenden Ankündigungen im Bereich des Internet der Dinge (IoT) konnte die JavaOne den Abstand zwischen Oracle und der Java-Community minimieren und sich wieder als zentraler Branchen-Treffpunkt etablieren.

Die offizielle Partnerschaft zwischen Oracle und der Raspberry Pi Foundation wurde verkündet, die dazu führt, dass alle Raspberry Pi Einplatinen-Computer zukünftig mit dem JDK7 ausgeliefert werden. Wenn man den Wachstumsprognosen für den IoT-Markt Glauben schenkt, wird auch eine weitere Botschaft für Java-Entwickler bedeutsam: In der heutigen Embedded-Welt wird sich der Bedarf an Entwicklern mit dem bisherigen C und C++ Fokus nämlich nicht abdecken lassen – vieles spricht hier für die Java-Community mit ihren 9 Millionen Entwicklern. Zweitens ist Java mit seinem JVM-Plattform-Konzept prädestiniert dafür, der grassierenden Fragmentierung des Embedded-Marktes entgegenzuwirken.

Sebastian Meyen war vor Ort und zog das Fazit:

Mit dem Bekenntnis zur Einheit der Plattform und zum Internet der Dinge kehrt Java wieder zu seinen Wurzeln, die tief in den 1990er Jahren liegen, zurück. Was damals als visionäre Technologie eines technisch verliebten Sun Microsystems zelebriert wurde, könnte in den nächsten Jahren ernsthaftes Business werden – und eine gewaltige Chance für alle Java-Entwickler weltweit.

Spring-Unternehmen Pivotal stellte im August die neue Plattform Spring IO vor. Einmal ist Spring IO eine neue Webseite mit komplett überarbeiteten Getting Started Guides. Zum anderen ordnet Spring IO den Spring-Stack neu, indem es eine Plattform bestehend aus Foundation und Execution bereit stellt. Es soll hier orchestrierte Releases geben, in denen z.B. die Versionskompatibilität der unterschiedlichen Module sichergestellt wird.

Im Kern stehen das Spring Framework sowie die Komponente Spring Security, die Programmiersprache Groovy und das neue Reactor Framework, das die asynchrone Basis für weitere grundlegende Spring-Projekte wie Spring Integration, Spring Batch und Spring Data bereitstellt. Auf der Ausführungsebene steht das Big-Data-Projekt Spring XD, das ebenfalls relativ neue Spring Boot und das Groovy-Web-Framework Grails. Über Cloud Foundry wird der Zugang in die Cloud sichergestellt.

Screenshot: http://spring.io/

Mit der IO-Plattform emanzipiert sich Spring ein gutes Stück weit vom Konkurrenten Java EE, indem es andere Schwerpunkte setzt und neue, moderne Anwendungsarchitekturen mit einbezieht. Nach den Diskussionen um das „Legacy-Projekt Spring“ (Arun Gupta) ist das eine beachtliche Entwicklung, die dem Spring Framework nicht viele zugetraut hätten!

Im September wurde Projekt Avatar Open Source gestellt, JDK 7 Update 40 brachte uns das neue Tool Java Mission Control (JMC). Android 4.4 wurde nach einem Deal mit Nestlé „Kit Kat“ getauft, Microsoft kaufte Nokia, Google wechselte zu MariaDB. Weitere Releases waren Afterburner.fx 1.0, camunda BPM 7.0, Cassandra 2.0, JBoss Developer Studio 7, openHAB 1.3 und Atmosphere 2.0. Titelthema in Java Magazin 9.13: Android.

Aufmacherbild: Fireworks von Shutterstock / Urheberrecht: Botond Horvath

[ header = Oktober: Hadoooooop 2, Eclipse IDE Working Group und Ihre erste Programmiersprache ]

Oktober: Hadoooooop 2, Eclipse IDE Working Group und Ihre erste Programmiersprache

Im Oktober machte ein Einzelrelease Schlagzeilen. Die langerwartete Version 2 von Apache Hadoop wurde nach gut einem Jahr Vorentwicklung und weiteren zwei Jahren Alpha- und Beta-Status endlich als „Apache Hadoop 2.2.0“ freigegeben.

Hadoop gehört sicherlich zu den Projekten, die man den Ewig-Skeptischen entgegenzusetzen hat, die der Java-Plattform Innovationsarmut vorwerfen. Java dominiert mit Hadoop den Big-Data-Markt, in dem Analysten zufolge ungeahnte Potenziale schlummern, die gerade erst entdeckt werden:

Von Beginn der Geschichtsaufzeichnungen an bis zum Jahr 2003 produzierte die Menschheit 5 Milliarden GB an Daten. Im Jahr 2011 wurde dieselbe Datenmenge alle zwei Tage produziert. Im Jahr 2013 soll sich dieser Zeitraum auf 10 Minuten verkürzt haben!

Hadoop 2 führte vor allem die neue YARN Engine („Yet another resource negotiator“) ein, mit der Hadoop sich von einer reinen MapReduce-Batch-Plattform hin zu einer Umgebung für beliebige Ausführungsalgorithmen weiterentwickelte. Hadoop-2-Release-Manager Arun C. Murthy:

Hadoop wird damit zu einem Grundbestandteil moderner Daten-Architekturen, indem es Unternehmen in die Lage setzt, vom realen Wert ihrer Daten zu profitieren und mit neuesten Daten-Typen innovative Services und Anwendungen zu entwickeln.

… und das reicht dann wohl von der Analyse von Geodaten zur Katastrophen-Warnung bis zum NSA Prism-Programm mit seinem Hadoop-basierten Accumulo.

Nach der lange schwelenden Unzufriedenheit mit dem Zustand der Eclipse IDE brach im Oktober erneut die Diskussion in Flammen aus, wie die Ressourcen-Knappheit im Eclipse-IDE-Kernteam überwunden werden könnte. Schließlich wurde ein Entwurfspapier für eine IDE Working Group veröffentlicht, die das Ziel verfolgen sollte, eine priorisierte Roadmap für Eclipse zu erstellen und sich um die Realisierung bzw. Finanzierung der Entwicklungsarbeiten zu kümmern.

Im Grunde geht es in dieser Frage darum, ob es nötig ist, eine zentrale Instanz zu etablieren, eine Art „guten Diktator“, der eine kohärente Vision der Eclipse IDE der Zukunft etabliert und umsetzt. Ist dies bei unternehmensgetriebenen Projekten wie NetBeans oder IntelliJ eine Selbstverständlichkeit, so würde es  – vor allem nach dem fortschreitenden Rückzug von Hauptsponsor IBM – im stark Community-basierten Entwicklungsmodell bei Eclipse ein Richtungswechsel bedeuten.

Wir nannten das Eclipse-Prinzip „Crowd Coding“ – im Unterschied zu Oracles NetBeans und IntelliJ IDEA, wo alles aus einer Hand geliefert wird. Oder auch im Unterschied zur Linux Community, in der Linus Torvalds ja das letzte Wort über seinen Micro Kernel hat.

Hat das Eclipse-Schwarmmodell ohne eine zentrale Instanz oder Leitfigur, wie es vielleicht ein Erich Gamma einmal war, eine Chance? Wir werden es 2014 sehen! Aktuell scheinen die Bemühungen hin zu einer IDE Working Group allerdings wieder ein wenig eingeschlafen zu sein …

Auf JAXenter war das Quickvote sehr beliebt: Was war Ihre erste Programmiersprache? Das Ergebnis war ziemlich eindeutig:

  • Basic – 39%
  • Pascal – 16%
  • Java – 8%
  • C – 7%
  • Visual Basic – 5%
  • PHP – 4%
  • Assembler/Maschinencode – 4%
  • Delphi – 3%
  • C++ – 3%
  • Fortran – 2%

Die Eclipse Foundation Europe wurde gegründet, Firefox verbannte Java aus dem Browser, NetBeans feierte den 15. Geburtstag mit der Version 7.4. Weitere Releases: VirtualBox 4.3,  ActiveMQ 5.9, Tycho 0.19, PrimeFaces 4.0, Eclipse Lyo 2.0, Eclipse Code Recommenders 2.0. Titelthema im Java Magazin 10.13 war: Nashorn.

[ header = November: W-JAX 2013, Oracles GlassFish-Rückzug und Karrieretipps zum Abgewöhnen ]

November: W-JAX 2013, Oracles GlassFish-Rückzug und Karrieretipps zum Abgewöhnen

Die Konferenz-Saison ging für uns mit der Münchner W-JAX zu Ende. Als Grundthema zog sich der Wandel in der IT wie ein roter Faden durch das Konferenzprogramm. In vielen Sessions, Workshops und Keynotes wurde aufgezeigt, wie sich der Wandel in der IT auf technologischer wie strategischer Ebene bewältigen lässt. Und dass sich ein typischer Java-Entwickler dabei nicht auf die Sprache Java allein zurückziehen sollte, legte das Konferenzprogramm nahe: Nur 40 Prozent der W-JAX-Talks beschäftigten sich mit expliziten Java-Themen – 60 Prozent mit „dem ganzen Rest“, sprich: Architektur, Agile, JavaScript/HTML5, DevOps, Tools usw.

Einige Schlaglichter:

Gleich die erste Keynote von Jeff Sussna (Ingineering.IT) stimmte die Teilnehmer in den W-JAX-Grundton einer sich verändernden IT-Welt ein. „Wir befinden uns mitten im Übergang von der Industriellen zur Post-Industriellen Ära“, war Sussnas These.

Die IT-Systeme waren kompliziert – jetzt werden sie komplex, konstatierte Sussna, da immer mehr unberechenbare Faktoren auf das System einwirkten. Solche komplexen Systeme seien schwer vorab zu modellieren und zu kontrollieren – und erzeugten somit regelmäßig Situationen, in denen Anpassungen vorgenommen, Fehler behoben, Ausfälle wett gemacht werden müssten.

IT-Systeme der post-industriellen Zeit müssten deshalb nicht Ausfall-sicher sein. Stattdessen komme es darauf an, dass Ausfälle schnell behoben werden können. „From fail-safe to safe-to-fail“, lautete Sussnas Formel. In diesem Kontext fiel auch das Wort „resilient“  – zu deutsch etwa „belastbar“, „dehnfähig“, „rückfedernd“ -, das wir in der Folge noch von vielen anderen W-JAX-Speakern gehört haben und sich auch als Kernthese im Reactive Manifesto aus dem Scala-Umfeld wiederfindet.

Neal Ford (Thoughtworks) zeigte in einer weiteren Keynote, dass die alten Dichotomien – schwache versus starke, statische versus dynamische Typisierung – überholt sind, genauso wie die polyglotte Pyramide von Ola Bini. Bini hatte sich 2008 für ein Architekturmodell stark gemacht, nach dem die unteren Schichten einer Anwendung in statischen, die mittleren Schichten in dynamischen und die oberen in domänenspezifischen Sprachen (DSLs) implementiert sind. Fords neues Pyramidenmodell sieht vor, dass die unteren Architekturschichten funktional (d.h. auch stateless), die mittleren imperativ und die oberen mithilfe von DSLs programmiert werden.

Laut Neal Ford führt längst kein Weg mehr am funktionalen Paradigma vorbei. „All major languages are adding functional elements at a very fast pace.“ Recht hat er – man braucht sich nur die Neuerungen in Java 8 zu vergegenwärtigen, um zu sehen, dass die Zeichen auf funktionale Programmierung stehen.

Vor etwa einem Jahr hatte noch gut ein Drittel der Teilnehmer eines JAXenter-Quickvotes angegeben, Vert.x nicht zu kennen. Das dürfte sich mittlerweile geändert haben. Zwar ist es noch immer gängig – und notwendig –, die Web-Technologie dem besseren Verständnis wegen als „JVM-Alternative zu Node.js“ zu paraphrasieren. Doch in Sachen Popularität hat die polyglotte Plattform zur Programmierung asynchroner I/O-Anwendungen gegenüber Node.js ein wenig Boden gutgemacht.

Vert.x zeichnet sich durch ein Aktoren-ähnliches Concurrency Model aus. Der verteilte und dadurch hoch skalierbare Event Bus, der die serverseitigen Komponenten verbindet,  wird von Vert.x-Entwicklern gern als „Nervensystem“ der Plattform bezeichnet. Vert.x unterstützt neben Java auch JavaScript, CoffeeScript, Ruby, Python, und Groovy. Auch Scala- und Clojure-Implementierungen sind in Arbeit. Während Node.js die Google V8 JavaScript Engine zur Ausführung verwendet, kommt bei Vert.x die Java-Runtime zum Einsatz.

Kurz vor der W-JAX erreichte uns die Botschaft, dass Oracle keine kommerzielle Version des GlassFish-Servers mehr unterhalten wird. GlassFish soll zwar weiterhin die Referenzimplementierung für Java EE bleiben. Statt auf eine kommerzielle GlassFish 4 Version will sich Oracle indes ganz auf den WebLogic Server konzentrieren, für den Oracle kommerziellen Java EE 7 Support anbietet.

Viele sahen GlassFish damit zu einem Spielzeug-Projekt degradiert, denn ob GlassFish in Sachen Produktionsreife den Grad an Qualität, Stabilität und Performanz wird aufrechterhalten können, ist fraglich. In einem Quickvote äußerten auch Sie sich dementsprechend:

  • Der Wegfall des kommerziellen Supports durch Oracle wird GlassFish nicht schaden. 6%
  • GlassFish wird ohne kommerziellen Oracle Support bald bedeutungslos sein. 32%
  • Ich rechne damit, dass GlassFish ohne Oracle Support zwar nicht bedeutungslos wird, doch aber an Qualität verlieren wird. 42%
  • GlassFish nur als Open-Source-Variante weiterzuführen, ist positiv. Eine Chance für die Community und andere Anbieter! 20%

Im Verlauf der Diskussion wurde zwar langsam deutlich, dass es im Grunde nicht viele Unternehmen gibt, die von Oracles kommerziellem Angebot Gebrauch machten. Dennoch bleibt der Tatbestand, dass die Zukunft von GlassFish ohne zugkräftiges Unternehmen dahinter gefährdet ist. Auf JAXenter kommentierte Jens Schumann:

Leider ist zu erwarten, dass ähnlich wie bei Apache Geronimo, eine breite Unterstützung durch die Community ausbleibt, sodass am Ende die Gewinner WildFly und mittelfristig – mit Java EE 7 Support – WebLogic heißen dürften.

In den JAXenter-Click-Charts landete der satirische Beitrag „6 Karrieretipps: Wie Sie nachhaltig Kreativität verhindern und dadurch fett absahnen!“ auf Platz 1. Hier wurden einige „Worst Practices“ der großen IT-Player durch den Kakao gezogen – beispielsweise die Idee Red Hats, Community Manager Dan Allan zu entlassen, weil er sich zu sehr für das Open Source Projekt „Asciidoctor“ engagierte.

Vermischtes: Die Java-Alternative Ceylon erreichte das erstes Major Release, die JavaScript-Alternative Dart erschien in Version 1.0. Androids Marktanteil stieg erstmals über 80 Prozent, Google stellte die neue Browser IDE Spark vor. Weitere Releases: Thymeleaf 2.1, Reactor Framework 1.0, Tyrus 1.3, Mylyn 3.10, Groovy 2.2, Infinispan 6.0.0. Das Java Magazin 11.13 fokussierte auf Continuous Delivery.

[ header = Dezember: Streit um Node.js, Prügelknabe Scala und die Glaubensfrage: Eclipse – NetBeans – IntelliJ IDEA? ]

Dezember: Streit um Node.js, Prügelknabe Scala und die Glaubensfrage: Eclipse – NetBeans – IntelliJ IDEA?

Eine handfeste Seifenoper lieferte uns Anfang Dezember die Node.js-Community. Nachdem Core-Entwickler Ben Noordhuis einen Pull Request in der libuv-Komponente zurückgewiesen hatte, in dem es um die Eliminierung eines geschlechtsspezifischen Pronomens ging (das männliche ‚him‘ sollte durch ‚them‘ ersetzt werden), kochten die Wogen der Kommentatoren so hoch, dass Noordhuis schließlich das Projekt verlassen hat.

Isaac Schlueter, Projektleiter beim Node-Unternehmen Joyent, hatte den Pull Request trotz Noordhuis’ Ablehnung akzeptiert, woraufhin dieser wiederum verärgert reagierte:

@isaacs may have his commit bit but that does not mean he is at liberty to land patches at will.  All patches have to be signed off by either me or Bert.  Isaac, consider yourself chided.

Von Joyent-Mitarbeiter Bryan Cantrill war Noordhuis daraufhin ziemlich unverblümt als „Asshole“ bezeichnet worden: Wäre er ein Joyent-Angestellter, würde er sofort gefeuert werden.

Im Hintergrund stehen hier unternehmenspolitische Machtspiele zwischen Node.js-Stammhaus Joyent und Ben Noordhuis‘ Startup StrongLoop, die beide kommerziellen Support für Node.js anbieten. In der Community wurde ein Vorschlag diskutiert, Node.js in eine anbieterneutrale Institution (Apache, Eclipse, Node-Foundation) zu überführen. Wir sind gespannt, wie es hier weiter geht!

Eine weitere Debatte leistete sich die Scala-Community, als Scala-Gründer Martin Odersky sich wunderte, warum die kritischen Stimmen gegenüber Scala nicht verstummen wollen. Ist es vielleicht einfach nur Beweis für die Popularität von Scala, was unterm Strich als Erfolg zu verbuchen wäre? Nach dem Motto: Je stärker die Verbreitung einer Sprache, desto bedrohter fühlen sich die angrenzenden Communities, die ihren eigenen Einfluss schwinden sehen?

Ein anderer Deutungsversuch legte Michael Johann auf JAXenter vor: Scala sei eine Sprache ohne dazugehörige Killer App – anders etwa als bei Java (JVM als Killer App) oder Ruby (Web-Framework Ruby on Rails).

Die Scala-Protagonisten pushen Scala, weil sie es um jeden Preis wollen, während viele Entwickler keinen echten Zugang finden und ihren Frust direkt wieder beim Hersteller abladen. Würde es eine „Killer-App“ (oder besser: Anwendungszweck) geben, hätte Scala das Problem des „Bashings“ überhaupt gar nicht.

Widerspruch regte sich in den Kommentaren. Ban Foy:

Zum Glück hat Scala je nach Sichtweise keine oder ziemliche viele „Killer“-Apps, und das ist genau das, was den nachhaltigen Erfolg garantiert. Wenn RoR einmal aus der Gunst gefallen ist (was bereits passiert), wird es auch mit der Verbreitung der Sprache bergab gehen. Man kann ähnlich zu Groovy spekulieren re Grails und Gradle.

Im Dezember war das Titelthema im Java Magazin 12.13 IT im Wandel. Und auch wichtige Releases waren dabei: Spring 4.0, Go 1.2, Xtend 2.5, Tasktop Sync 3.0, Neo4j 2.0, Hibernate 4.3 und IntelliJ IDEA 13.

A propos Entwicklungsumgebungen:

Auf JAXenter stellten wir wieder einmal die Glaubensfrage: Welche ist die beste IDE? Die Beteiligung am Quickvote war von Beginn an hoch – und wurde noch verstärkt, als die Communitys begannen, über Social Media ihre Leute zu mobilisieren. Das Ergebnis:

  • NetBeans – 37% (1230 Stimmen)
  • IntelliJ IDEA – 27% (921 Stimmen)
  • Eclipse – 35% (1178 Stimmen)
  • Andere – 1% (37 Stimmen)

Gesamtstimmen: 3366

Um dieses Resultat nun nicht einfach so stehen zu lassen, wollen wir im neuen Jahr die Stärken und Schwächen der jeweiligen IDEs etwas genauer herausarbeiten. Wir fragen hierfür User der IDEs, was genau sie denn an ihrer präferierten Entwicklungsumgebung schätzen und was sie für verbesserungswürdig halten – auch Sie können mitmachen!

Beantworten Sie einfach die folgenden 5 Fragen in einer Mail an die JAXenter-Redaktion.

  1. Du bist Eclipse/NetBeans/IntelliJ User. Warum?
  2. Wie nutzt du Eclipse/NetBeans/IntelliJ hauptsächlich – (z.B. in welcher Version, für welche Zwecke, mit welchen Plug-ins/Features)?
  3. Nenne drei Features, die du an Eclipse/NetBeans/IntelliJ liebst.
  4. Nenne drei Punkte, die du an Eclipse/NetBeans/IntelliJ nicht gut findest.
  5. Welche Verbesserungen wünscht du dir für die Zukunft in Eclipse/NetBeans/IntelliJ?

Wir stellen je drei dieser Kurzinterviews gegenüber – im ersten Teil der Serie haben sich bereits Ekkehard Gentz, Gerrit Grunwald und Thomas Asel geäußert. Wir sind gespannt auf Ihre Antworten!

Und damit endet dieser Jahresrückblick…

… und zwar mit einem großen Dankeschön an alle JAXenter-Leser und an eine Java Community, die nach 20 Jahren immer noch für ein solch Ereignis- und Release-reiches Jahresgeschehen gut ist! 

Java geht 2014 weiter – und JAXenter freut sich, dabei zu sein!

Geschrieben von
Hartmut Schlosser
Hartmut Schlosser
Hartmut Schlosser ist Redakteur und Online-Koordinator bei Software & Support Media. Seine Spezialgebiete liegen bei Java-Enterprise-Technologien, JavaFX, Eclipse und DevOps. Vor seiner Tätigkeit bei S & S Media studierte er Musik, Informatik, französische Philologie und Ethnologie.
Kommentare

Schreibe einen Kommentar

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