Frameworks, libraries and tools

Practically no software can be developed without frameworks, libraries and "tools". This is one of the reasons for the triumph of open source, because software projects are almost always and to a large extent based on existing code. The better these can be viewed, understood and, above all, adapted, the more suitable they are for developers to use in their projects. 

If you were already surprised by the 115 languages in the previous section (link), hold on tight. Frameworks and libraries exist in the thousands. If "only" 220 were mentioned here, it is probably because the study participants did not want to list everything that is still used somewhere as a dependency in a project. (A library or a framework is also often referred to as a dependency.) It can also be controversially discussed what is now most likely a framework, a library or a tool.The boundaries are not clear and many projects move more or less in all areas.

Nevertheless, the right choice of framework is just as relevant for the success of a solution and the satisfaction of the developers as it is for the programming languages. By choosing the right framework, sometimes even a less popular language can be upgraded and the work becomes fun again. Conversely, a tedious framework or an exhausting library can destroy any fun in a language.

In general, the comparability here is less strong than with programming languages, since the frameworks, libraries and tools can come from very different areas and are not always interchangeable.

>Relevant data online as Excel

Frameworks, libraries & tools developers use

In general, there were fewer additional nominations beyond the pre-selection than in 2019 - certainly also because we adapted the pre-selection based on the feedback from last year.

These adaptations from 2019 had a particularly strong effect on Maven and Gradle: simply by being included in the shortlist, both jumped into the top ranks. This could be related to the fact that both solutions are needed in the context of Java projects. The situation is similar for Java EE and Hibernate, which were not listed as separate frameworks in the previous year and are now among the frontrunners following their inclusion in the shortlist (both are Java solutions). The original shortlist was compiled based on international statistics. These strong deviations show how strongly Switzerland still relies on Java, while internationally Python has already taken the lead.

In the frontend area, Angular, React and Vue.js are holding their own again. Angular is clearly and stably in the lead, while React was able to make up some ground.

In contrast, .NET and .NET Core have fallen back - probably also because fewer C# developers took part in the survey in 2020, despite the increased total number of participants.

The decline in Ruby on Rails, once hailed as the killer framework, is even greater - probably also because many frameworks in other languages are now based on the concepts established by Rails. So Rails concepts live on, while the Ruby language seems to have lost its power as a driver.

2020

  2019  
Node.js 317 Node.js 344
Spring 257 Angular 234
Maven 255 jQuery 224
Angular 230 Spring 194
jQuery 227 .NET 160
Gradle 159 .NET Core 149
Bootstrap 156 React 134
React 148 ASP.NET 109
Java EE 143 Vue.js 92
Hibernate 142 Ansible 68
.NET 135 Express 66
.NET 126 Xamarin 47
Ansible 96 Django 45
ASP.NET 95 Pandas 40
Vue.js 95 Cordova 39
Redux 66 Ruby on Rails 38
Express 62 TensorFlow 37
Jakarta 47 Flask 35
Vaadin 46 Symfony 31
Terraform 43 Laravel 28
Pandas 40 React Native 27
Jupyter 39 Unity 3D 26
Django 38 Puppet 21
TensorFlow 37 Spark 19
Flask 36 Hadoop 18
Laravel 31 Grails 17
Puppet 31 Torch/PyTorch 16
Cordova 30 Apache 11
Unity 3D 29 Chef 11
Symfony 28 Vaadin* 10
Qt 28 Unreal Engine 9
GWT 27 Flutter 9
Ruby on Rails 24 Terraform* 7
Xamarin 19 Docker* 7
React Native 19 Kubernetes* 6
Torch/PyTorch 18 Maven* 6
Apache Spark 14 Keras* 6
Spark 13 CryEngine 6
Flutter 13 Hibernate* 5
Play! Framework 13    
Keras 12    
Hadoop 9    
Grails 8    
Chef 6    
Unreal Engine 5    
Quarkus* 8    
Akka* 6    
Tailwind CSS* 5    

Frameworks, libraries and tools developers would like to use

  • Many developers still want to use React, Vue.js and Angular - however, the enthusiasm has decreased compared to 2019. This can probably be explained in part by the increased adoption, for example, of React, which was used by 134 developers in 2019 and 148 this year. Nevertheless, web front-end frameworks continue to dominate the top 5 of this ranking.
  • It is important to keep in mind that the swiss developer survey does not primarily address "web developers", but that more and more, if not the majority of developers are developing for the web. This is also because practically all solutions are now moving to the web and hardly anything is built as a desktop application anymore.
  • Machine Learning with TensorFlow has slipped back a little, although it is still in the top 5. PyTorch as an alternative to TensorFlow has also dropped.
  • The evaluation also suggests that the drop of some frameworks compared to the previous year is not due to decreasing enthusiasm: Rather, votes were more broadly distributed and less clustered, while at the same time the amount of votes cast in this area dropped by 10 percent, even though there were about 10 percent more participants.
  • 2020 also saw the inclusion of Quarkus - a solution that sees itself as the silver bullet for Java in today's increasingly containerized world.
  • Also exciting is that while many developers are using Java EE and, hardly anyone wants to use it again - unlike Spring, which is being used more this year, but still seems to continue to generate interest.

Would like to use 2020

  Would like to use 2019  
React 100 React 157
Vue.js 95 Vue.js 101
Node.js 73 TensorFlow 90
Angular 69 Angular 77
TensorFlow 69 Node.js 71
React 40 React Native 55
Ansible 36 Hadoop 45
Flutter 35 Unity 3D 43
Unreal Engine 34 Unreal Engine 42
Spring 32 .NET Core 36
.NET Core 31 Spring 35
Unity 3D 30 Flutter 36
Terraform 23 Xamarin 34
.NET 22 Ansible 32
Hadoop 21 Django 32
Xamarin 18 Spark 31
Gradle 18 .NET 26
Apache Spark 17 jQuery 21
jQuery 16 Apache Spark 21
Django 15 Torch/PyTorch 20
Ruby on Rails 14 Ruby on Rails 18
Spark 13 Cordova 17
Vaadin 13 Flask 17
Micronaut 13 Puppet 15
Jupyter 13 Express 13
Flask 12 Pandas 10
Laravel 12 Laravel 10
Torch/PyTorch 12 Chef 10
Qt 12 ASP.NET 9
Redux 12 CryEngine 8
Pandas 11 Symfony 7
Keras 11 Grails 7
Express 10    
Cordova 8    
Symfony 8    
Puppet 8    
ASP.NET 7    
Hibernate 7    
Quarkus* 6    
Bootstrap 6    
Grails 5    
CryEngine 5    
Jakarta EE 5    
Java EE 5    

Frameworks, libraries and tools developers like

For this question, we see a more eager voting than in the last chapter as well as a broader distribution. By adding the 2019 proposals to the preselection, the reality in Switzerland is also better reflected. At the same time, many shifts can probably be explained by these additions.

However, it is clear that the top 10 are dominated by Java and JavaScript (TypeScript) solutions. 

2020

  2019  
Node.js 217 Node.js 173
Spring 210 Angular 158
Angular 178 Spring 141
React 168 .NET Core 139
Maven 141 React 121
jQuery 140 .NET 117
.NET Core 129 Vue.js 95
Bootstrap 121 jQuery 92
Vue.js 119 ASP.NET 58
Gradle 113 TensorFlow 48
.NET 112 Django 47
Hibernate 86 Ansible 46
Ansible 78 Unity 3D 45
Java EE 73 Xamarin 38
ASP.NET 67 Flask 38
TensorFlow 62 Laravel 38
Redux 58 React Native 35
Express 54 Ruby on Rails 35
Django 48 Express 31
Unity 3D 47 Pandas 31
Jupyter 45 Symfony 26
Flask 40 Unreal Engine 23
Terraform 40 Cordova 22
Qt 40 Spark 21
Pandas 39 Hadoop 17
Laravel 39 Puppet 17
Ruby on Rails 38 Flutter 17
Unreal Engine 34 Torch/PyTorch 15
React Native 33 Apache Spark 12
Jakarta EE 33 Grails 11
Symfony 32 Chef 7
Flutter 30 Qt* 5
Xamarin 28    
Vaadin 28    
Torch/PyTorch 23    
Puppet 22    
Hadoop 22    
Apache Spark 21    
Keras 19    
Spark 18    
Cordova 13    
Micronaut 13    
GWT 12    
Play! Framework 9    
Grails 8    
CryEngine 8    
Chef 6    
quarkus 5    

Frameworks, libraries and tools developers don't like

Here, too, there is a stronger distribution due to the larger and more tailored preselection. This again shows that solutions with many followers and users also have many participants who do not like them.

An outlier here is Google Web Toolkit (GWT), which more people "dislike" than use. It's good to know that most GWT applications are now being replaced by Angular or generally web-based single page applications. Here, frontend and backend are separated by a well-defined interface. GWT, on the other hand, dates back to a time when people wanted to tightly couple backend and frontend - a strategy that has not proven to be as effective as drag'n'drop development environments.

In mobile, you see that solutions like Xamarin, React Native, or Cordova don't have much appeal for app development. Perhaps this is related to the fact that it now makes less and less sense to develop apps. Going through the App Store is a big hurdle for the user and many people consider it annoying to install apps that they only use once a year.

Not liked 2020

  Not liked 2019   Used 2020    
jQuery 159 Angular 99 Node.js 317
Angular 121 Node.js 91 Spring 257
Node.js 102 jQuery 90 Maven 255
Maven 83 Spring 47 Angular 230
Spring 69 Cordova 44 jQuery 227
.NET 64 Xamarin 43 Gradle 159
Java EE 63 ASP.NET 42 Bootstrap 156
ASP.NET 54 React 41 React 148
.NET Core 48 .NET Core 33 Java EE 143
GWT 45 .NET 32 Hibernate 142
React 44 Ruby on Rails 26 .NET 135
Cordova 42 React Native 20 .NET 126
Gradle 42 Symfony 19 Ansible 96
Xamarin 38 Django 16 ASP.NET 95
Hibernate 36 Flutter 16 Vue.js 95
Bootstrap 33 Laravel 15 Redux 66
React Native 29 Puppet 14 Express 62
Django 28 Ansible 12 Jakarta 47
Vaadin 26 Grails 12 Vaadin 46
Vue.js 25 Unity 3D 10 Terraform 43
Ansible 25 CryEngine 10 Pandas 40
Symfony 23 Vue.js 9 Jupyter 39
Puppet 23 TensorFlow 9 Django 38
Ruby on Rails 22 Flask 9 TensorFlow 37
Redux 22 Chef 9 Flask 36
Jakarta EE 20 Spark 8 Laravel 31
Laravel 19 Express 7 Puppet 31
Unity 3D 18 Hadoop 7 Cordova 30
Grails 16 Pandas 6 Unity 3D 29
Play! Framework 16     Symfony 28
Terraform 15     Qt 28
Express 14     GWT 27
Qt 14     Ruby on Rails 24
Hadoop 13     Xamarin 19
Chef 13     React Native 19
Flutter 13     Torch/PyTorch 18
Flask 12     Apache Spark 14
Spark 11     Spark 13
Pandas 10     Flutter 13
Apache Spark 10     Play! Framework 13
Jupyter 10     Keras 12
Keras 9     Hadoop 9
TensorFlow 8     Grails 8
Torch/PyTorch 7     Chef 6
Micronaut 7     Unreal Engine 5
Unreal Engine 6     Quarkus* 8
CryEngine 6     Akka* 6
        Tailwind CSS* 5

Frameworks, libraries and tools developers want to adopt

  • Again, the JavaScript frameworks are strong, with React, Vue.js, and Angular all making equally strong gains.
  • Spring is a newcomer, probably as a replacement for Java EE, as we will see in the following sections.
  • An exciting newcomer here is certainly Terraform, which belongs in the same corner as Ansible or Puppet: This is about the representation of infrastructure as code - in other words, about replacing the classic imperative way of working of system administrators with code-based automation. In other words, infrastructure, from servers to firewalls to storage, is defined completely declaratively and then set up, updated or adapted by solutions such as Terraform. Thus, system administrators become software developers and processes such as version management as well as CI/CD can also be lived for operations. Thus, the focus here is also on "Everything is Code".
  • Who is not one of the usual suspects here? Certainly TensorFlow with reference to Machine Learning, Ansible with the topic of automating server infrastructures or Spark, a framework for Kotlin for building web applications. Does this mean that some Java developers would rather work with Kotlin and Spark than Spring?
  • Non-developers may wonder if this issue is really important: in response, a definite YES! Time and energy spent learning these frameworks and libraries is high. The software developed with them remains and usually has to be further developed and maintained over a long period of time. The whole world around it is constantly changing, so if something doesn't keep up, depending on the area, this can be very painful for developers and thus also costly for companies. 

2020

  2019  
React 72 Node.js 57
Node.js 64 React 49
Vue.js 58 Vue.js 47
Spring 56 .NET Core 44
.NET Core 55 TensorFlow 39
Angular 52 Angular 31
Gradle 48 Spring 29
Ansible 35 .NET 22
TensorFlow 32 Ansible 21
Terraform 24 React Native 18
Maven 24 Spark 15
Bootstrap 23 Xamarin 14
Flutter 21 Django 13
Redux 19 Unity 3D 13
jQuery 18 jQuery 12
Unreal Engine 17 Express 11
Pandas 14 Unreal Engine 11
.NET 13 Ruby on Rails 10
Laravel 13 Laravel 10
Hibernate 13 Hadoop 10
Jakarta EE 13 Pandas 10
Express 12 Torch/PyTorch 10
Flask 12 Cordova 9
React Native 12 Flutter 10
Java EE 12 Flask 9
ASP.NET 11 ASP.NET 7
Django 11 Puppet 6
Symfony 11 Apache Spark 6
Unity 3D 11 Symfony 5
Torch/PyTorch 11    
Jupyter 11    
Hadoop 9    
Apache Spark 9    
Qt 9    
Ruby on Rails 8    
Spark 7    
Micronaut 7    
Xamarin 6    
Vaadin 6    
Keras 6    
Puppet 5    

Frameworks, libraries and tools developers want to replace

  • If Maven and Java EE jumped straight to the top in previous chapters by being included in the shortlist, they are also right up there with the solutions to be replaced.
  • ASP.NET has lost votes, but .NET has gained votes in general - for replacement, mind you. However, it's important to note that as a replacement, .NET Core is usually the closest, coming in at number 5 for solutions to be introduced.
  • jQuery, meanwhile, is something most people want to get rid of, even though they actually like using it. This is probably mainly related to the fact that the underlying technology (classic JavaScript/ES5) is to be replaced.

Replace 2020

  Replace 2019   Used 2020    
jQuery 175 jQuery 122 Node.js 317
Maven 69 Angular 54 Spring 257
Java EE 67 ASP.NET 51 Maven 255
Angular 65 .NET 34 Angular 230
.NET 58 Node.js 30 jQuery 227
GWT 42 Cordova 29 Gradle 159
Node.js 41 Spring 28 Bootstrap 156
ASP.NET 32 Xamarin 20 React 148
Cordova 32 React 19 Java EE 143
Bootstrap 32 Ruby on Rails 18 Hibernate 142
Spring 29 .NET Core 13 .NET 135
Xamarin 25 Django 13 .NET 126
Hibernate 23 Symfony 13 Ansible 96
Vaadin 18 React Native 11 ASP.NET 95
Jakarta EE 18 Vue.js 10 Vue.js 95
Ruby on Rails 17 Puppet 10 Redux 66
.NET Core 15 Grails 10 Express 62
React 15 CryEngine 9 Jakarta 47
Puppet 15 Laravel 7 Vaadin 46
Vue.js 14 Flutter 7 Terraform 43
React Native 14 Express 6 Pandas 40
Redux 14 Unreal Engine 5 Jupyter 39
Django 13 Chef 5 Django 38
Gradle 12     TensorFlow 37
Ansible 11     Flask 36
Symfony 11     Laravel 31
Play! Framework 11     Puppet 31
Express 8     Cordova 30
Grails 8     Unity 3D 29
Laravel 7     Symfony 28
Unity 3D 7     Qt 28
Qt 7     GWT 27
TensorFlow 5     Ruby on Rails 24
Chef 5     Xamarin 19
Flutter 5     React Native 19
Terraform 5     Torch/PyTorch 18
Jupyter 5     Apache Spark 14
        Spark 13
        Flutter 13
        Play! Framework 13
        Keras 12
        Hadoop 9
        Grails 8
        Chef 6
        Unreal Engine 5
        Quarkus* 8
        Akka* 6
        Tailwind CSS* 5

Frameworks, libraries and tools developers want be keep

For the frameworks to be kept, we again draw the comparison to the "to be replaced" group.

  • For example, opinions vary widely on Angular: 65 developers want to replace Angular, while 119 are convinced that it should continue to be used. That's more than last year.
  • The situation is different for Java EE - 67 developers recommend replacing it and only 45 want to keep it. GWT is also particularly hard hit, with 42 developers wanting to replace it, but only 3 (therefore not on the list) wanting to keep it.

Keep 2020

  Keep 2019   Replace 2020  
Spring 152 Node.js 145 jQuery 175
Node.js 142 Angular 101 Maven 69
Angular 119 Spring 101 Java EE 67
Maven 100 React 86 Angular 65
Gradle 84 .NET Core 68 .NET 58
React 80 .NET 59 GWT 42
.NET Core 79 jQuery 56 Node.js 41
Bootstrap 63 Vue.js 46 ASP.NET 32
Hibernate 61 ASP.NET 30 Cordova 32
.NET 60 Ansible 28 Bootstrap 32
jQuery 58 Django 26 Spring 29
Vue.js 50 Express 24 Xamarin 25
ASP.NET 45 TensorFlow 24 Hibernate 23
Java EE 45 Xamarin 19 Vaadin 18
Ansible 44 Symfony 16 Jakarta EE 18
Redux 29 Pandas 16 Ruby on Rails 17
Django 21 Unity 3D 15 .NET Core 15
Pandas 21 Ruby on Rails 14 React 15
Express 20 React Native 14 Puppet 15
Laravel 20 Flask 13 Vue.js 14
Symfony 19 Puppet 12 React Native 14
TensorFlow 18 Laravel 12 Redux 14
Qt 17 Cordova 11 Django 13
Ruby on Rails 16 Unreal Engine 8 Gradle 12
Unity 3D 16 Hadoop 7 Ansible 11
Vaadin 16 Spark 6 Symfony 11
Terraform 16 Torch/PyTorch 6 Play! Framework 11
Jakarta EE 16 Chef 5 Express 8
Flask 15     Grails 8
Puppet 12     Laravel 7
Xamarin 11     Unity 3D 7
Jupyter 11     Qt 7
Cordova 10     TensorFlow 5
Unreal Engine 9     Chef 5
React Native 8     Flutter 5
Spark 8     Terraform 5
Hadoop 8     Jupyter 5
Torch/PyTorch 7        
Flutter 5        

>Table of contents show detail hide detail