frameworks, libraries und tools

Ohne Frameworks, Libraries und Tools lässt sich praktisch keine Software mehr entwickeln. Dies ist mit ein Grund für den Siegeszug von Open Source, denn Software-Projekte bauen heute fast immer und zu grossen Teilen auf bereits bestehendem Code auf. Je besser man diese einsehen, verstehen und vor allem anpassen kann, desto besser eignen sie sich für Entwickler/innen beim Einsatz in Projekten. 

Wer bereits von den 125 Sprachen im vorherigen Abschnitt (Link) überrascht war, muss sich festhalten. Frameworks und Libraries gibt es zu Tausenden. Wenn hier ‚nur’ 220 aufgeführt werden, dürfte das daran liegen, dass die Studienteilnehmer nicht alles auflisten wollten, was irgendwo noch als Abhängigkeit in einem Projekt genutzt wird (eine Library oder ein Framework wird auch oft als Dependency/Abhängigkeit bezeichnet). Auch lässt sich kontrovers diskutieren, was jetzt am ehesten ein Framework, eine Library oder ein Tool ist. Die Grenzen sind nicht immer klar.

Dennoch ist die richtige Wahl genauso relevant für den Erfolg der Lösung und die Zufriedenheit der Entwickler/innen wie bei den Programmiersprachen. Durch die Wahl des richtigen Frameworks lässt sich sogar manchmal eine wenig beliebte Sprache aufwerten, und die Arbeit macht wieder Spass. Umgekehrt kann ein mühsames Framework oder eine anstrengende Bibliothek jeden Spass an einer Sprache verderben.

Leider lassen sich Vergleiche in diesem Abschnitt weniger leicht anstellen als bei den Programmiersprachen. Die Einträge haben nur beschränkt miteinander zu tun und können kaum gegeneinander eingetauscht werden. Dies wird in der nächsten Umfrage optimiert.

-->Relevante Daten als Online-Excel

Frameworks etc., die Entwickler/innen nutzen

  • Auf Platz 1, mit Abstand, befindet sich Node.js. Das ist für so manchen überraschend, handelt es sich dabei nämlich eher um einen Parser oder Engine für den Server- oder Desktop-seitigen Einsatz von JavaScript. Dennoch erlaubt es die Einsicht, dass JavaScript vermehrt auf dem Server zum Einsatz kommt.
  • Überraschend, gerade im internationalen Vergleich, ist die hiesige Stärke von Angular. International führt im Bereich der Single Page Application JavaScript/TypeScript Frameworks eigentlich React.js, das wohl aber auch bald von Vue.js überholt werden wird (siehe Stackoverflow Survey).
  • Mit Spring ist das Java-Framework schlechthin vorne dabei. Spring diente übrigens bei anderen Sprachen oft als Vorlage für Frameworks. Beispiel PHP Symfony, das sich stark an Spring anlehnt, auch wenn es eine andere Sprache ist.
  • .NET, .NET Core und ASP.NET werden als Vertreter der C#-Welt ins Rennen geschickt.
  • Django und Flask gehören in die Python-Welt als MVC Frameworks. Auch aus der Python-Ecke sind Pandas und Torch/PyTorch. Wir würden dazu auch TensorFlow zählen, da es fast immer mit Python angesteuert wird.
  • Laravel (PHP) und Django (Python) orientieren sich sicher stark an Ruby on Rails – das MVC Web Framework, das Ruby als Sprache auf die Landkarte gesetzt hat. 
  • Ansible, Puppet und Chef sind eher relevant für die Automation von System Engineering oder Cloud. Code schreiben ist also mittlerweile praktisch unumgänglich für moderne System Engineers im Server- oder Cloud-Bereich. Wer will sich schon für 200 Serverknoten von Hand durch die Installations-Dialoge klicken und zwischendurch einen Kaffee holen? Allerdings soll es auch Systemtechniker geben, die die Zeit vermissen, als man immer wieder eine gemütliche Pause machen konnte, bis die nächste CD eingelegt werden musste.
  • Addendum: Docker und Kubernetes sind in dieser Liste von Teilnehmern im Freitext vorgeschlagen worden, tauchen aber auch in der Frage zu Plattformen wieder auf.
  • Mit Unreal Engine, CryEngine und Unity 3D haben wir ausserdem das Thema Gaming oder 3D Welten auf dem Schirm.
Node.js 344
Angular 234
jQuery 224
Spring 194
.NET 160
.NET Core 149
React 134
ASP.NET 109
Vue.js 92
Ansible 68
Express 66
Xamarin 47
Django 45
Pandas 40
Cordova 39
Ruby on Rails 38
TensorFlow 37
Flask 35
Symfony 31
Laravel 28
React Native 27
Unity 3D 26
Puppet 21
Spark 19
Hadoop 18
Grails 17
Torch/PyTorch 16
Apache Spark 11
Chef 11
Vaadin* 10
Unreal Engine 9
Flutter 9
Terraform* 7
Docker* 7
Kubernetes* 6
Maven* 6
Keras* 6
CryEngine 6
Hibernate* 5

Frameworks etc., die die Entwickler/innen gerne nutzen würden

  • TensorFlow ist hier ganz vorne dabei, obwohl es (noch) nicht so oft eingesetzt wird. Ein interessanter Fingerzeig, bedenkt man, dass es primär im Umfeld von Machine Learning oder auch künstlicher Intelligenz zur Anwendung kommt, einem der Themen, dem Entwickler/innen in den nächsten fünf Jahren die grösste Bedeutung beimessen. (Link)
  • Ansonsten haben wir hier wieder die JavaScript Framework-Thematik mit React, Vue.js und Angular. 
  • Ein kleiner Schwenker dabei ist React Native, ein Framework oder eine Bibliothek, die es ermöglicht, mit JavaScript und React quasi-native Smartphone Apps für iOS und Android zu bauen. Gegenstück dazu ist sicher Xamarin aus der C#-Welt oder Flutter.
  • Das hier Unity 3D, CryEngine und Unreal Engine auftauchen, zeigt das Interesse der Entwickler/innen, einmal 3D-Welten oder Games zu bauen. Tauchen diese Namen wieder im Bereich «sollten eingeführt werden» auf, könnte es sich um mehr als ein Hobby handeln.
  • Thema Java: Spring ist zwar nur auf Platz 11, dafür aber schon breit im Einsatz.
React 157
Vue.js 101
TensorFlow 90
Angular 77
Node.js 71
React Native 55
Hadoop 45
Unity 3D 43
Unreal Engine 42
.NET Core 36
Spring 35
Flutter 36
Xamarin 34
Ansible 32
Django 32
Spark 31
.NET 26
jQuery 21
Apache Spark 21
Torch/PyTorch 20
Ruby on Rails 18
Cordova 17
Flask 17
Puppet 15
Express 13
Pandas 10
Laravel 10
Chef 10
ASP.NET 9
CryEngine 8
Symfony 7
Grails 7

Frameworks etc., die Entwickler/innen mögen

  • Node.js wird also nicht nur viel eingesetzt, sondern ist auch beliebt. Spannend ist dann wieder die Negativassoziation dazu weiter unten.
  • Die Platzierung von Spring und .NET Core zeigt klar, welche Frameworks in der Java-Welt respektive C#-Welt favorisiert werden.
  • Auf Platz 10 findet sich TensorFlow mit Machine Learning. Interessantes Detail: Ein Grossteil der Entwicklung in diesem Bereich erfolgt mit Python, denn darauf fokussieren die meisten Bibliotheken, Beispiele und Trainingsmöglichkeiten.
  • Bei dieser Liste gibt es nur einen Teilnehmer-Zusatz mit mehr als 5 Stimmen. Erstaunlicherweise ist das QT, eine C++ basierte GUI Bibliothek, die mit der Desktopumgebung KDE von Linux wohl den stärksten Vertreter hat.
Node.js 173
Angular 158
Spring 141
.NET Core 139
React 121
.NET 117
Vue.js 95
jQuery 92
ASP.NET 58
TensorFlow 48
Django 47
Ansible 46
Unity 3D 45
Xamarin 38
Flask 38
Laravel 38
React Native 35
Ruby on Rails 35
Express 31
Pandas 31
Symfony 26
Unreal Engine 23
Cordova 22
Spark 21
Hadoop 17
Puppet 17
Flutter 17
Torch/PyTorch 15
Apache Spark 12
Grails 11
Chef 7
Qt* 5

Frameworks etc., die Entwickler/innen nicht mögen

  • Wie bereits weiter oben vermutet, zeigt sich hier wieder die Love/Hate-Dynamik im Java-Umfeld – kein weiterer Kommentar.
  • Zum ersten Mal vorne dabei ist Cordova, die wohl erste Lösung zur gleichzeitigen Entwicklung von Smartphone-Apps für Android und iOS. Dabei wird eine sogenannte Container-App ausgeliefert, welche die App-spezifische Funktionalität in einem Browser als Webapplikation ausführt. Sie löst das gleiche Problem wie Xamarin, Flutter oder React Native, die bezeichnenderweise auch auf dieser «mögen wir nicht»-Liste stehen.
  • Interessanterweise findet sich sogar Ruby on Rails hier – ein Framework, von dem im Allgemeinen nur Positives gesagt wird und von dem andere Frameworks vieles übernommen haben, so zum Beispiel Grails, was für Groovy on Rails steht. Groovy ist eine Sprache, die man quasi als Skriptsprache der Java-Welt oder als das PHP der Java Welt bezeichnen kann – vor allem, wenn man sich auf Java-Partys Freunde machen will.
Angular 99
Node.js 91
jQuery 90
Spring 47
Cordova 44
Xamarin 43
ASP.NET 42
React 41
.NET Core 33
.NET 32
Ruby on Rails 26
React Native 20
Symfony 19
Django 16
Flutter 16
Laravel 15
Puppet 14
Ansible 12
Grails 12
Unity 3D 10
CryEngine 10
Vue.js 9
TensorFlow 9
Flask 9
Chef 9
Spark 8
Express 7
Hadoop 7
Pandas 6

Frameworks etc., die die Entwickler/innen einführen möchten

Wer gehört hier nicht zu den üblichen Verdächtigen? Sicher TensorFlow mit Bezug zu Machine Learning, Ansible mit dem Thema Automatisierung von Server-Infrastrukturen oder Spark, ein Framework für Kotlin zum Bau von Webapplikationen. Könnte das heissen, dass Java Entwickler, die Kotlin lernen, dies auch im Backend nutzen möchten?

Nicht-Entwickler mögen sich fragen, ob diese Thematik wirklich wichtig ist: Darauf ein definitives JA! Zeit und Energie, die man in das Lernen dieser Frameworks und Bibliotheken steckt, sind hoch. Die damit entwickelte Software bleibt oft lange im Einsatz und muss entsprechend weiterentwickelt sowie gewartet werden.

Node.js 57
React 49
Vue.js 47
.NET Core 44
TensorFlow 39
Angular 31
Spring 29
.NET 22
Ansible 21
React Native 18
Spark 15
Xamarin 14
Django 13
Unity 3D 13
jQuery 12
Express 11
Unreal Engine 11
Ruby on Rails 10
Laravel 10
Hadoop 10
Pandas 10
Torch/PyTorch 10
Cordova 9
Flutter 10
Flask 9
ASP.NET 7
Puppet 6
Apache Spark 6
Symfony 5

Frameworks etc., die Entwickler/innen ersetzen möchten

  • Die Anzahl Technologien mit mehr als 5 Erwähnungen ist hier eher kurz und wird auch nicht viel länger unter Einbezug der Technologien, die 1–3 Personen erwähnt haben.
  • Gern los wären die Entwickler/innen ASP.NET und .NET. Als Ersatz bietet sich .NET Core, ein C#- Framework, mit dem Microsoft neue Weg geht und erstmals Entwickler/innen anspricht, die den Namen Bill Gates genauso wenig in den Mund nehmen wollen wie Voldemort in Hogwarts ausgesprochen wird. Immerhin, es läuft auf Linux und ist grösstenteils Open Source.
  • Einige Worte zum erstplatzierten jQuery: Diese Bibliothek kommt aus der JavaScript-Welt und ist stark verbreitet. Es war eine der ersten Lösungen in den dunklen Zeiten der Browserkriege, mit der man wenigstens hoffen konnte, dass eine JavaScript Applikation bei den meisten Benutzern laufen würde. Ich selbst habe noch posttraumatische Zuckungen, wenn ich ein Icon sehe, das an Internet Explorer 6 erinnert. 
  • Überraschenderweise findet sich hier auch Angular – vielleicht weil Entwickler/innen in Schweizer Grossfirmen teilweise unfreiwillig damit konfrontiert wurden. Dies wohl auch, da es ein Framework ist, dass eine steile Lernkurve verlangt und sehr, sehr viel Umschwung mit sich bringt. Ähnliches trifft allerdings auch auf Vue.JS oder React.JS zu, vor allem bei grossen Applikationen.
jQuery 122
Angular 54
ASP.NET 51
.NET 34
Node.js 30
Cordova 29
Spring 28
Xamarin 20
React 19
Ruby on Rails 18
.NET Core 13
Django 13
Symfony 13
React Native 11
Vue.js 10
Puppet 10
Grails 10
CryEngine 9
Laravel 7
Flutter 7
Express 6
Unreal Engine 5
Chef 5

Frameworks etc., die die Entwickler/innen behalten wollen

Hier wieder eine längere Liste mit den üblichen Verdächtigen und ohne grosse Überraschungen. Kein Kommentar.

Node.js 145
Angular 101
Spring 101
React 86
.NET Core 68
.NET 59
jQuery 56
Vue.js 46
ASP.NET 30
Ansible 28
Django 26
Express 24
TensorFlow 24
Xamarin 19
Symfony 16
Pandas 16
Unity 3D 15
Ruby on Rails 14
React Native 14
Flask 13
Puppet 12
Laravel 12
Cordova 11
Unreal Engine 8
Hadoop 7
Spark 6
Torch/PyTorch 6
Chef 5

-->Inhaltsverzeichnis Detail anzeigen Detail verbergen