Im Artikel Quo vadis Microsoft? berichtete Hendrik Lösch über seine Erkenntnisse einer Umfrage unter den Teilnehmern der Entwicklerkonferenz Basta. Wir haben bei der W-JAX eine ähnliche Umfrage durchgeführt, um das Meinungsbild der Java-Community einzufangen.
Von den über 1000 Konferenzteilnehmern beantworteten knapp 150 Besucher unsere Umfrage. Damit können wir zumindest ein repräsentatives Bild für die Besucher der W-JAX zeichnen. Rückschlüsse auf die Softwareentwicklungsbranche im Java-Umfeld sind ob der geringen Teilnehmermenge der Umfrage jedoch mit Vorsicht zu genießen.
Die erste Frage lautete: „Welche Frameworks verwenden Sie in Ihrem aktuellen Hauptprojekt?“ Ein Großteil der Teilnehmer gab an, mit Java Enterprise oder Spring Framework zu arbeiten. Darüber hinaus wurden JSF und JSP jeweils von einem Drittel der Teilnehmer als Antwort genannt. Swing und JavaFX als Desktoptechnologien wurden hingegen weniger verwendet. Damit wird deutlich, dass Java nach wie vor seine Stärken im Backend großer Unternehmensanwendungen hat. Für grafische Benutzeroberfläche greifen die Entwickler auf die Webtechnologien zurück, die der Java-Enterprise-Stack mitliefert. Interessant ist dieses Ergebnis auch im Vergleich zur Umfrage auf der Basta: Dort gaben die meisten Teilnehmer an, in ihrem Projekt mit Desktoptechnologien wie Windows Forms oder WPF zu arbeiten.
Welche Frameworks verwenden Sie in Ihrem aktuellen Hauptprojekt?
Zwei weitere Punkte lassen sich aus den Antworten herauslesen: Zum einen werden in nicht wenigen Projekten Technologien eingesetzt, die ihren Zenit längst überschritten haben und mittlerweile von neuen Technologien abgelöst wurden. So arbeiten weit mehr Personen in ihrem Projekt mit Swing als mit dem Nachfolger JavaFX. Zum anderen fällt auf, dass moderne Single-Page-Webanwendungen mit Javascript-Technologien wie AngularJS in der Java-Community Fuß gefasst haben. Dieser Trend wird sich mit Hinblick auf die aktuellen Neuerungen wie Angular 2 oder EcmaScript 2015 vermutlich fortsetzen.
Die Bedeutung von Webtechnologien wird in der nächsten Frage deutlich: „Welche Sprachen verwenden Sie in Ihrem aktuellen Hauptprojekt?“ Nicht überraschend gaben fast alle Teilnehmer an mit Java zu arbeiten. Jedoch antworteten auch über zwei Drittel der Befragten, dass sie HTML und JavaScript in ihrem Projekt verwenden.
Welche Sprachen verwenden Sie in Ihrem aktuellen Hauptprojekt?
Andere Sprachen wie Groovy, Scala oder Ruby fristen eher ein Nischendasein. Obwohl diese Sprachen viele nützliche Features mitbringen, die man bei Java vermisst oder dort erst sehr viel später eingebaut werden (Stichwort: Lambdas), scheuen viele Projekte den Umstieg und bleiben beim Altbewährten. Wenn man berücksichtigt, dass Java hauptsächlich im Umfeld großer Unternehmensanwendungen eingesetzt wird, ist dies auch durchaus verständlich.
Planen Sie in nächster Zeit mit einer der folgenden Technologien zu arbeiten?
In Frage 3 kommen wir noch einmal auf Webanwendungen zurück. Obwohl Java-EE-Webtechnologien wie JSF oder das mit Java EE 8 kommende MVC 1.0 weiterhin eine große Rolle spielen, werden Single-Page-Apps mit JavaScript-Frameworks wie AngularJS zunehmend interessant. Während man in den letzten Jahren jede Menge JavaScript-Frameworks kommen und gehen sah, scheint sich das Angebot mittlerweile etwas zu stabilisieren. Darüber hinaus wird sich in den kommenden Versionen von JavaScript (EcmaScript 2015) und AngularJS (Angular 2.0) vieles wesentlich vereinfachen, was bisher als Einstiegshürde in die Welt der JavaScript-basierten Single-Page-Apps galt. Mit Web Components steht außerdem ein weiterer vielversprechender Standard bereit, und Polymer bietet die passende Library dazu. Wir wollten also wissen, mit welchen Webtechnologien sich die Konferenzteilnehmer in nächster Zeit beschäftigen werden.
50 Teilnehmer, und damit ein Drittel der Befragten, gab an, demnächst mit AngularJS arbeiten zu wollen. Bei der Umfrage auf der .NET-fokussierten Basta erzielte AngularJS ähnlich hohe Werte. Auch wenn die Fragestellung keine Unterscheidung in AngularJS 1.x und Angular 2.0 anbot, darf man vermuten, dass das Interesse dem bald erscheinenden Angular 2.0 gilt. Die fehlende Rückwärtskompatibilität mit AngularJS 1.x scheint nicht weiter zu stören. Mittlerweile hat es Angular 2.0 in die Beta-Phase geschafft, so dass man nicht mehr mit größeren Änderungen rechnen muss. Das erste Feedback ist positiv und die Erwartungen groß, und es ist davon auszugehen, dass Angular der Platzhirsch unter den JavaScript-Frameworks sein wird.
Polymer, wie Angular aus dem Hause Google, ist etwas komplett Neues und stößt bei den Befragten auf weit weniger Interesse. Es stellt sich auch die Frage, welche Strategie Google mit Angular und Polymer verfolgt. Hieß es zunächst, Angular 2.0 würde auf Web Components aufbauen, hatte man sich später doch dagegen entschieden. Inwieweit sich Angular und Polymer ergänzen werden, ist also völlig offen.
Etwa jeder achte Befragte plant, in nächster Zeit mit Reactive Technologien zu arbeiten. Hier ist zweifellos das von Facebook entwickelte React Vorreiter. Der Umstieg auf Reactive bedeutet gleichzeitig einen Paradigmenwechsel, wodurch die Hürden für einen Wechsel zweifelsohne höher sind. Viele Kollegen, die den Schritt in die Reactive-Welt getan haben, schwören aber darauf und möchten nichts anderes mehr machen. Auch wenn Angular 2.0 demnächst der Stern am Web-Himmel sein wird, könnte ich mir vorstellen, dass der Hype eines Tages durch React oder ähnliche Frameworks überholt wird.
Verwenden Sie in Ihrem Hauptprojekt Cloud-Technologien?
Ein weiteres Thema unserer Umfrage ist die „Cloud“. Auf die Frage, ob sie in ihrem Hauptprojekt Cloud-Technologien verwenden, antworteten 15 % der Teilnehmer mit Ja. Ein ähnlicher Wert wurde bei der Befragung auf der Basta ermittelt. Zugegebenermaßen ist „Cloud-Technologien“ ein dehnbarer Begriff, den jeder etwas anders versteht. Dennoch war bei der Befragung oft zu hören, dass hauptsächlich IAAS-Dienste (Infrastructure As A Service) in Anspruch genommen werden. Überwiegend vertraut man dabei auf Amazon AWS. Weitere Erkenntnisse lassen sich bei der geringen Anzahl der Befragten nicht ableiten. Nur eines: Die eher mageren 15 % zeigen, dass dem Thema in der Java-Community weit weniger Bedeutung zukommt, als man bei dem gefühlten Hype um Cloud-Technologien zunächst vermuten könnte.
Was behindert Sie am meisten in Ihrem aktuellen Hauptprojekt?
Zu guter Letzt widmen wir uns einem technologieunabhängigen Thema: Wir wollten von den Teilnehmern wissen: „Was behindert Sie am meisten in Ihrem aktuellen Hauptprojekt?“ Der mit Abstand am häufigsten genannte Grund waren unklare Anforderungen. Hier zeigt sich, wie entscheidend eine gute Analyse und ein ausgereifter Entwicklungsprozess ist. Was scheinbar selbstverständlich klingt, ist durchaus etwas, worauf man bewusst hinwirken muss. In einem Kundenprojekt habe ich selbst erlebt, welchen Gewinn die Hinzunahme eines Analysten ins Projekt für alle Beteiligten gebracht hat, obwohl dessen Kosten-Nutzen-Verhältnis anfangs in Frage gestellt wurde. In einem anderen Projekt, das nach Scrum arbeitet, konnte ich sehen, wie unklare Anforderungen durch eine Reihe von bewussten Maßnahmen auf ein Minimum reduziert werden können: Dazu gehören beispielsweise klare Abnahme- und Ausschlusskriterien sowie Plannings und Groomings, bei denen frühzeitig Unklarheiten geklärt werden können.
In der Zusammenfassung unserer Umfrage auf der W-JAX möchte ich zwei Dinge hervorheben: Nach wie vor bilden Enterprise-Technologien wie Java EE oder Spring die Basis für Softwareentwicklung im Java-Umfeld. Dabei werden auch in die Jahre gekommene Technologien eingesetzt – ein Umstand, der Potenzial für Migrationsprojekte birgt. Ungeachtet der verwendeten Backend-Technologien besteht ein hohes Interesse an JavaScript-basierten Webframeworks für die Benutzeroberfläche. Besondere Beachtung kommt dabei dem mit Spannung erwarteten Angular 2.0 zu.