Java

Java: die Lage im Jahr 2020

Read this post in other languages:

In diesem Jahr hat Java runden Geburtstag gefeiert – die Programmiersprache ist unglaubliche 25 Jahre alt geworden. Wir haben das Jubiläum mit einem speziellen Online-Java-Tag gefeiert, der zahlreichen Experten Gelegenheit gab, ihre Erfahrungen auszutauschen und zu verraten, wie man mehr aus der Sprache herausholt.

Dies brachte uns zum Nachdenken und wir beschlossen, tief in unsere Daten einzutauchen, um herauszufinden, wie es um Java steht, und um einige brennende Fragen unserer Leser zu beantworten. Manche unserer Erkenntnisse dürften nicht allzu überraschend sein – aber es gibt auch einige durchaus unerwartete Einsichten.

Angesichts der Veröffentlichung von Java 15 in dieser Woche haben wir uns entschlossen, die Ergebnisse für Sie zusammenzufassen und Ihnen den aktuellen Stand der Programmiersprache Java zu präsentieren. Dieser Beitrag basiert auf Daten aus verschiedenen Quellen, ergänzt durch fachkundige Einschätzungen unseres Developer Advocate Trisha Gee.

Wo

Die erste Frage lautete: „Wo sind die meisten Java-Entwickler beheimatet – und wie viele sind wir?“ Um eine Antwort auf diese Frage zu finden, haben wir die besten verfügbaren Antworten kombiniert und sind dann durch Extrapolation zu einem Ergebnis gekommen, dass eine ziemlich fundierte Schätzung darstellen sollte.

Unsere Expertenschätzung anhand des Entwicklerschätzungsmodells unseres Marktforschungs- und Analyseteams lautet, dass es heute weltweit etwa 5,2 Millionen professionelle Java-Entwickler gibt, die Java als ihre erste Programmiersprache verwenden. Die Zahl dürfte näher an 6,8 Millionen liegen, wenn wir auch professionelle Entwickler einbeziehen, die hauptsächlich andere Programmiersprachen nutzen, aber nebenbei auch mit Java arbeiten.

Wo leben all diese Java-Entwickler? Ganz viele von ihnen kommen aus Asien, wo etwa 2,5 Millionen Entwickler Java als erste Programmiersprache verwenden. Die Zahlen für Nordamerika und Europa kommen bei weitem nicht an diese Größenordnung heran. Vielleicht fragen Sie sich: „Warum gerade Asien?“ Nun, wir haben uns zunächst dieselbe Frage gestellt und uns dann die Region etwas näher angesehen, um genauer zu erfahren, woher diese Zahlen kommen.

Wo genau

Für eine detailliertere Auswertung haben wir uns die Länder mit den größten Populationen von Java-Entwicklern einzeln angesehen und sind dann der Frage nachgegangen, warum in diesen Ländern Java bei der professionellen Softwareentwicklung anderen Sprachen vorgezogen wird.

Das folgende Diagramm zeigt für jedes Land den Prozentsatz der Entwickler, die Java als Hauptsprache verwenden (in der Umfrage, aus der diese Daten stammen, konnten die Befragten bis zu 3 Hauptsprachen auswählen). China und Südkorea kommen mit ca. 51% bzw. 50% auf die höchsten Werte. Die Daten stammen aus der Entwickler-Ökosystem-Umfrage 2020.

Die Expertenmeinung
Die Popularität von Java in den Ländern auf den ersten sechs Plätzen hat mehrere Gründe, darunter die kostenlose Verfügbarkeit von Java, staatliche Unterstützung sowie die Open-Source-Bewegung. Dies gilt insbesondere für China, Spanien und Brasilien. Die Sprache bildet die Grundlage für die mobile Android-Entwicklung in China und Indien, und die breitflächige Einstellung von Offshore-Mitarbeitern zum Programmieren von Java-Apps für Mobiltelefone dürfte eine Erklärung für die Spitzenstellung von Indien sein. Deutschland liegt ebenfalls sehr weit vorn. Dies könnte daran liegen, dass Java in Deutschland die beliebteste Sprache für Softwareentwickler ist, da sie in einer Vielzahl von Branchen für hochskalierbare Anwendungen eingesetzt wird. Die meisten Enterprise-Services nutzen Java für die Anwendungen, die in Unternehmen den täglichen Geschäftsbetrieb sicherstellen, z. B. Gehaltsabrechnung, Inventarverwaltung, Reporting usw. Deutschland verfügt zudem über einen hochentwickelten Finanzsektor, dessen Eigenentwicklungen vornehmlich auf Java aufsetzen – etwa Trading Bots, Retailbanking-Systeme und andere Anwendungen, die die Finanzindustrie benötigt, um wettbewerbsfähig zu bleiben.

Man könnte erwarten, dass die USA ebenfalls einen hohen Prozentsatz an Java-Benutzern aufweisen, aber andererseits lässt sich gut nachvollziehen, warum dies nicht der Fall ist. There is a big technology stack to choose from and often a lot of the tech companies are at the forefront of that stack, so it could be that developers there don’t need the power or stability of Java and are using languages that allow them to build and test quickly.

Branchensituation

Gemäß der Entwickler-Ökosystem-Umfrage 2020 verwendet mehr als ein Drittel der professionellen Entwickler Java als Hauptsprache, und Java bleibt hinter JavaScript die zweite Hauptsprache unter professionellen Entwicklern.

Die Expertenmeinung
Es überrascht nicht, dass JavaScript und Java die führenden Positionen einnehmen, da sie einander gut ergänzen. Entwickler, die mit Java arbeiten, schreiben häufig ihr Frontend und schnelle Skripte in JavaScript. Python verdankt den dritten Platz wahrscheinlich der Verbreitung des maschinellen Lernens. Allgemein ist davon auszugehen, dass das Web einen großen Teil des Entwickler-Ökosystems ausmacht, sodass JavaScript, HTML, CSS und PHP dauerhaft einen soliden Platz haben werden. Auch SQL bleibt uns erhalten, da es kaum etwas gibt, das nicht in irgendeiner Form auf Datenbanken angewiesen ist. C++ hat ebenfalls eine solide Stellung, da es in zahlreichen Embedded-Anwendungen zum Einsatz kommt. Die Sprache dürfte also auch in Zukunft nicht von unseren Charts verschwinden. C# hingegen scheint an Boden zu verlieren, und aus meiner Sicht gilt, wenn es mit Java bergauf geht, geht es mit C# bergab, da die beiden Sprachen sehr ähnliche Fähigkeiten bieten. Die Popularität von Java im professionellen Umfeld dürfte wiederum auf die Situation zurückgehen, die vorhin in Bezug auf Deutschland thematisiert wurde: Die meisten Business-Services basieren auf Java. Und es ist nicht nur der IT-Sektor. In fast jedem Unternehmen, ob in der Logistik, in der Fertigung oder im Bankwesen, sind IT-Services Teil der Infrastruktur, und diese Services – etwa Gehaltsabrechnung oder Lagerverwaltung – verwenden im Allgemeinen Java im Backend. Dementsprechend wird Java vielfach von professionellen Entwicklern eingesetzt, die für diese Unternehmen arbeiten.

Softwareanwendungen, die in Java entwickelt werden

Ein kurzer Blick auf die mit Java entwickelten Softwarearten erklärt so manchen Aspekt der Nutzungsstatistik. Gemäß dem Stand des Entwickler-Ökosystems 2020 sind Web-Services mit 52% der häufigste Einsatzbereich von Java.

Die Expertenmeinung
Die starke Präsenz von Java im Bereich Business Intelligence/Data Science/Maschinelles Lernen überrascht etwas, da dieses Gebiet eher als eine Stärke von Python gilt. Die anderen Bereiche sind weniger überraschend, da das Backend von Web-Services häufig in Java implementiert ist. Bei Geschäftsanwendungen ergibt die Verwendung von Java ebenfalls Sinn, da auch diese mit dem Backend und den Datenbanken kommunizieren müssen.

Branchen, in denen Java am häufigsten verwendet wird

Nachdem wir nun wissen, warum Java von so vielen professionellen Entwicklern verwendet wird, wollen wir uns den Branchen zuwenden, in denen Java eingesetzt wird.

Laut der Entwickler-Ökosystem-Umfrage 2020 arbeiten Java-Programmierer hauptsächlich in den Bereichen IT-Services (42%) sowie Finanzen und FinTech (44%). Das heißt natürlich nicht, dass Java in anderen Branchen nicht verwendet wird.

Die Expertenmeinung
Im Finanz- und FinTech-Sektor geht es hauptsächlich um Finanzbörsen, Retailbanking-Systeme, Rechenmodule und die interne Entwicklung von Tools und Services, die der Wettbewerbsfähigkeit des Unternehmens dienen. Im Finanz- und FinTech-Bereich ist Java ziemlich etabliert, insoweit gibt es hier keine Überraschung. Dasselbe gilt für IT-Services, da viele Lohnabrechnungssysteme und Inventarverwaltungen von Nicht-IT-Unternehmen auf Java basieren. Die anderen Branchen sind jedoch umso interessanter. Der hohe Anteil der Mobilentwicklung dürfte an der Verwendung von Java in der Android-Entwicklung liegen. Big Data und Datenanalyse sind sehr interessant, da in diesem Bereich Python führend ist. Möglicherweise werden Java und JVM-Sprachen teilweise im Backend verwendet. Die Nutzung für Softwareentwicklungstools liegt auf der Hand: Die JetBrains-IDEs werden derzeit in Java entwickelt. Die anderen Branchen sind allerdings ein ziemliches Rätsel, und es wäre wirklich interessant zu erfahren, wie Java in diesen Branchen eingesetzt wird.

Java-Tools

Java-Versionen

Java 8 ist weiterhin die gängigste Version. Sie wird von 75% der professionellen Entwickler eingesetzt, die Java als ihre Hauptsprache verwenden. Die folgende Grafik zeigt die Verteilung der Java-Versionen in der Entwickler-Ökosystem-Umfrage 2020. Zu beachten ist, dass die Entwickler mehrere Versionen auswählen konnten.

Die Expertenmeinung
Die Popularität von Java 8 ist auf mehrere Faktoren zurückzuführen. Erstens bietet diese Version mit Lambdas und Streams alles, was ein typischer Java-Entwickler von der Sprache erwartet, und sie ist ganz allgemein eine Version, die einfach und angenehm zu verwenden ist. Außerdem ist beim Umstieg auf Java 9 eine große Zögerlichkeit zu beobachten. Mit Java 9 wurden einige große Architekturänderungen eingeführt, und viele Entwickler befürchten, dass diese Änderungen dazu führen, dass ihre Java-8-Anwendungen nicht mehr funktionieren. Darüber hinaus hat Oracle halbjährliche Releases eingeführt. Dadurch kommen nicht alle Releases in den Genuss eines längeren Unterstützungszeitraums. Bei Java 9, Java 10, Java 12 und Java 13 beträgt der Supportzeitraum zum Beispiel nur 6 Monate. Dies ist wahrscheinlich mit ein Grund für die geringen Nutzerzahlen dieser Versionen. Java 13 sticht nur deshalb heraus, weil es bei der Veröffentlichung der Umfrage die neueste Version war. Wir können davon ausgehen, dass hier die Nutzerzahlen in einigen Monaten fallen werden.
Das 2018 veröffentlichte Java 11 ist die neueste Version mit langfristiger Unterstützung. Viele Unternehmen sind noch nicht umgestiegen, weil sie befürchten, dass der Wechsel zu Versionen ab Java 9 (aufgrund der Architekturänderungen) überall zu Fehlern führen wird. Außerdem wurden mit Java 11 eine neue Lizenzierung und ein neues Abonnement eingeführt, was zur zusätzlichen Befürchtung führte, dass Oracle Strafzahlungen eintreiben wird, wenn man die falsche Version auf eine falsche Weise verwendet. Der letzte wichtige Grund dafür, dass viele Entwickler nicht auf Java 11 umsteigen, besteht schließlich darin, dass diese Version nicht viele aufregende Neuigkeiten bietet – das Risiko des Upgrades wird also nicht durch die Fähigkeiten der Sprache aufgewogen. Die nächste Version mit langfristiger Unterstützung wird Java 17 sein, das zahlreiche neue Funktionen mitbringt. Allerdings dürfte ein direktes Update von Java 8 auf Java 17 mit eigenen Problemen verbunden sein.
Ich gehe davon aus, dass die nächste Langzeitversion (Java 17), populärer sein wird als die letzte (Java 11). Als Vorbereitung auf Java 17 empfehle ich allerdings mit größtem Nachdruck, dass Sie Ihre Codebasis als Zwischenschritt auf Java 11 umstellen und erst dann auf Java 17 updaten, um größere Probleme zu umgehen.

Beliebte Anwendungsserver

In den letzten 3 Jahren war Apache Tomcat durchgängig der beliebteste Anwendungsserver, während die Nutzung von JBoss EAP und WildFly sich halbiert hat. Die angegebenen Daten beziehen sich auf alle Entwickler, die in den Entwickler-Ökosystem-Umfragen 2018 und 2020 Java als Hauptsprache genannt haben.

Die Expertenmeinung
Jetty belegt einen überraschend schwachen zweiten Platz. Es kann sein, dass manche Nutzer von Spring Boot und anderen Microservice-Frameworks nicht wissen, was unter der Haube werkelt – sie nutzen also möglicherweise Tomcat oder Jetty, ohne sich dessen bewusst zu sein.

Top 5 der Webframeworks

Spring Boot, das im Jahr 2018 mit Spring MVC gleichauf lag, ist 2020 populärer geworden. Die angegebenen Daten beziehen sich auf alle Entwickler, die Java als Hauptsprache verwenden.

Die Expertenmeinung
Dies bestätigt mehr oder weniger nur, dass Spring den Markt beherrscht. Dass es immer noch Leute gibt, die Struts 1 verwenden, kann mit ziemlicher Sicherheit nur an Legacy-Anwendungen liegen.

Top 5 der JVM-Profiler

Die Entwickler-Ökosystem-Umfrage 2020 zeigt, dass VisualVM von 24% der Benutzer verwendet wird, während die Hälfte keinerlei Profiler verwendet. Die angegebenen Daten beziehen sich auf alle Entwickler, die Java als Hauptsprache verwenden.

Top 5 der IDEs/Editoren

Ein Vergleich der Entwickler-Ökosystem-Umfragen 2018 und 2020 zeigt, dass IntelliJ IDEA seinen Anteil zwischen 2018 und 2020 von 55% auf 72% ausgebaut hat, während die vier Mitbewerber jeweils Anteile verloren haben.

Die Expertenmeinung
Obwohl wir unsere Umfrageergebnisse entsprechend gewichten, wollen wir nicht ausschließen, dass diese Zahlen leicht verzerrt sind. Schließlich stammen die Daten aus der Entwickler-Ökosystem-Umfrage von JetBrains, und IntelliJ IDEA ist bekannterweise eines der Hauptprodukte von JetBrains. Dies heißt jedoch nicht, dass diese Ergebnisse völlig realitätsfern sind. Auch in anderen Umfragen ist IntelliJ IDEA normalerweise mit einem Nutzeranteil von 55–60% eine der meistverwendeten IDEs. Die zunehmende Verbreitung von VS Code ist ein Grund zur Sorge – nicht wegen der Wettbewerbssituation, sondern weil viele anscheinend nicht wissen, welche Vorteile eine IDE bietet. VS Code ist ein Code-Editor mit einigen Funktionen, die man auch in einer IDE findet, und Erweiterungen, die zusätzliche Funktionen bieten können. Wenn sich Entwickler also vermehrt VS Code zuwenden, könnte dies bedeuten, dass sie nicht wissen, was eine vollständige IDE ihnen bieten kann. In the web space it is understandable to use an editor as web developers are typically working with dynamic languages, and often use other tools like browser plugins to give them what they need. Aber bei Java, insbesondere im professionellen Einsatz, kann man wirklich viel aus einem guten Tool mit Anwendungsserver-Integration herausholen, und auch die Analyse- und Refactoring-Funktionen kann man gut gebrauchen.

Ein Update von unserer Expertin
Ich sehe, dass ich durch die Verwendung einer gekürzten und bearbeiteten Version meiner Datenanalyse in diesem Blogbeitrag unbeabsichtigt Verwirrung gestiftet habe. Ich möchte die Absicht hinter meinen Bemerkungen zu Entwicklern und IDEs klarstellen. Wenn Entwicklern nicht bewusst ist, was IntelliJ IDEA als voll ausgestattete IDE ihnen bietet, sehe ich den Fehler bei mir, da es seit sechs Jahren mein Job ist, Entwickler darüber aufzuklären, was eine IDE (und insbesondere IntelliJ IDEA) bieten kann. Ich bin der festen Überzeugung, dass man niemals den (potenziellen) Benutzern die Schuld dafür in die Schuhe schieben sollte, dass sie ein Produkt nicht verstanden haben.
 
Meine persönliche Perspektive auf IDEs für Java-Entwickler speist sich aus über 20 Jahren Erfahrung in der Java-Entwicklung und der Mitarbeit an großen und kleinen Java-Projekten für den Produktionseinsatz. Ich kann mir nicht vorstellen, eine komplexe Unternehmensanwendung in Angriff zu nehmen, ohne die beträchtliche Unterstützung in Anspruch zu nehmen, die eine IDE wie IntelliJ IDEA bietet. Ich habe auch viele Entwickler getroffen, die VS Code verwenden, und ich kann durchaus Anwendungsfälle erkennen, die von Code-Editoren gut abgedeckt werden. Es gibt immer Platz für mehrere Tools in unserem Arsenal. Wenn wir wissen, wofür ein Werkzeug wirklich gut ist, fällt es uns leichter, das richtige Werkzeug für den jeweiligen Job auszuwählen.

Tools und Sprachen, über die in Verbindung mit Java gesprochen wird

Java ist ein häufiges Gesprächsthema in IT-Communities wie Stack Overflow. Wir haben die Daten aus dem Fragenbereich analysiert, um herauszufinden, mit welchen anderen Tags „java“ am häufigsten vorkommt. Die vertikale Achse zeigt die Erwähnungen zusammen mit Java, während die horizontale Achse die Gesamtvorkommen des Tags angibt.

Die Expertenmeinung
Diese Tabelle kann für Benutzer nützlich sein, die sichergehen möchten, dass sie die richtigen Technologien verwenden, oder die an Tools für diese Technologien interessiert sind. Die Sprachen sind interessant. Eine wahrscheinliche Erklärung ist die Suche nach Vergleichen zwischen Java und anderen Sprachen. Reguläre Ausdrücke sind eines der Nischenprobleme, mit denen Entwickler kämpfen – es ist also nicht überraschend, dass sie auf der Liste vertreten sind.

Heiße Themen in der Java-Community

Java-Diskussionen

Wir haben die Beiträge im „Java“-Subreddit analysiert, um die Themen zu ermitteln, die von Java-Benutzern am häufigsten auf Reddit diskutiert werden.

Die Expertenmeinung
Dies sind genau die Themen, die man erwarten konnte. Zum Beispiel werden Leute, die in Java programmieren, immer daran interessiert sein, ob diese Sprache noch gefragt ist, schließlich ist sie nicht mehr ganz taufrisch. Wir haben gerade 25 Jahre Java gefeiert – natürlich fragen sich die Menschen, ob die Sprache noch aktuell ist. Vor allem, wenn sie frisch von der Uni kommen und noch nicht wissen, ob die Sprache, die sie gelernt haben, ihnen Karrierechancen bietet. Das Java-Deployment in Containern ist ein sehr heißes Thema. Jeder – mich eingeschlossen – will mehr darüber wissen, aber es sind kaum Informationen dazu zu finden. Dass Leistungsoptimierung ein Thema ist, überrascht mich nicht, auch wenn ich dieses Thema für ein wenig redundant halte, da die meisten Anwendungen realistischerweise keine entwicklerseitige Optimierung benötigen. Aber viele Entwickler halten dies für eine wichtige berufliche Qualifikation. Auch die Zusammenarbeit zwischen Backend und Frontend kann sehr komplex sein, und ich kann mir vorstellen, dass es hierzu viele Fragen gibt.

image description