Python

Python Developers Survey 2020 Results

Python Developers Survey 2020 Results

This is the fourth iteration of the official annual Python Developers Survey, conducted as a collaborative effort between the Python Software Foundation and JetBrains. In October 2020, more than 28,000 Python developers and enthusiasts from almost 200 countries/regions took the survey to reveal the current state of the language and the ecosystem around it.

Check out the results of the Python Developer Survey in 2017, 2018, and 2019.

General Python Usage

Python as main vs secondary language

85% of the survey respondents use Python as their main programming language.

Python usage with other languages

> 100%
MainSecondaryCombined

JavaScript is the most popular language for developers to combine with Python. Together with HTML/CSS, Bash/Shell, and SQL, they create a stack of languages where 2 out of every 5 Python devs are using at least one of them.

JavaScript and C/C++ are the most common main languages among developers who use Python as a secondary language.

Languages for Web and Data Science

> 100%

Web dev refers to people who selected “Web development” in response to the question “What do you use Python for the most?”. Data science refers to people who selected “Data analysis” or “Machine Learning” in the same question.

Only 8% of the Python developers doing data-related tasks do not use any of the additional languages, while only 3% of web developers work with only Python. It comes as no surprise that 75% of web developers are using both Python and JavaScript.

Purposes for Using Python

In this section, we asked questions to find out what people use Python for, what types of development they are involved in, and how they combine their various uses.

For what purposes do you mainly use Python?

What do you use Python for?

> 100%
MainSecondaryCombined

The slight changes in Python use cases can be explained by a larger share of students (13% vs. 10% last year) among Survey respondents. There has been an increase in Educational purposes and a decrease in all the other types of activities respondents engage in with Python.

To what extent are you involved in the following activities?

> 100%

What do you use Python for the most?

MainSecondaryCombined

Do you consider yourself a Data Scientist?

Only 32% of the Python developers involved in Data analysis and Machine learning consider themselves to be Data Scientists.

Data Scientists are more than twice as likely to use Anaconda to update their Python versions, while the other Python users prefer Python.org.

This question was only answered by respondents who are involved in Data analysis and Machine learning.

Python Versions

Python 3 vs Python 2

Python version use cases

> 100%

Python 3 versions

Python installation and upgrade

> 100%

Windows users tend to install Python from Python.org, while Linux and macOS users usually use OS-provided Python, pyenv, or Docker containers.

Python environment isolation

> 100%

There are interesting dependencies between the IDEs and the environment isolation tools:

  • More than a half of the users of Jupyter Notebook and JupyterLab choose Conda. Conda’s share among users of other editors is only about 20%.
  • PyCharm Professional Edition is leading among Virtualenv and Docker users.
  • VS Code and PyCharm have the largest shares among Pythonistas using Pipenv.
  • Vim is the leader for Pythonistas using Vagrant and Poetry.

Python Features

Favorite Python features

These results are based on the answers to the open question “Which 3 features in the Python language do you like the most?”

* Excluding standard libraries, built-in data structures, and expressions that were extracted into separate clusters:

  • List comprehension, generator
  • List & dictionary
  • Decorator
  • Asyncio, threading, multiprocessing
  • Context manager
  • Lambda function

** Other topics that were specified by <1% of respondents.

Desired Python features

These results are based on the answers to the open question “What 3 language features would you like to be added to Python?”

* Excluding those improvements to standard libraries that were extracted into other clusters.

** Other topics that were specified by <1% of respondents.

Frameworks and Libraries

Web frameworks

> 100%

FastAPI was introduced to the options for the first time with this iteration of the survey, and it appears to be the third most popular web framework for Python.

Data science frameworks and libraries

> 100%

NumPy users are more likely to use Conda to isolate their Python environment than other Pythonistas. (32% vs. 22%)

Unit-testing frameworks

> 100%

The use of unit-testing frameworks correlates nicely with the years of professional experience. Younger Python developers are much less likely to do unit testing.

Also, it is more common for developers involved in data analysis and machine learning to use unit-testing frameworks than it is for web developers and DevOps to use them. The developers for whom using unit-testing frameworks is most common are predictably developers involved in software testing and writing automated tests.

Other frameworks and libraries

> 100%

72% of developers who choose AWS use the Requests framework.

The users of Tkinter and Pygame are mostly young specialists with less than a year of experience.

ORMs

> 100%

The majority of Pythonistas who use Flask prefer SQLAlchemy, while Django users use Django ORM. Can you believe it?

Databases

> 100%

PostgreSQL is the most popular database among Python developers, and it is even more widespread among AWS users, with a share of 65%.

Big Data tools

> 100%

Most users of Big Data tools prefer JupiterLab. This is especially true for Apache Spark and Dask users. Second place belongs to Jupyter Notebook, although PyCharm Professional is the most popular choice among Apache Kafka users.

Technologies and Cloud

Top cloud platforms

> 100%

Heroku and PythonAnywhere are popular among young professionals with professional experience of up to 2 years, while AWS and DigitalOcean are more popular among more experienced Python programmers.

How do you run code in the cloud (in the production environment)?

> 100%

Running code within containers is still the most popular method, while virtual machines have lost a little of their popularity, with only 43% of users using them in 2020. In 2018 they had a share of 47% and were the most popular choice.

How do you develop for the cloud?

> 100%

Testers make up the majority of those who develop for the cloud in Docker containers.

Web developers are significantly less likely to develop in remote development environments and in virtual machines than other types of developers. They prefer to work locally with virtualenv.

Development Tools

Operating system

> 100%
Linux

68%

Linux

Windows

48%

Windows

macOS

29%

macOS

BSD

2%

BSD

1%

Other

The more experienced the Python developers are, the more likely they are to use Linux and macOS as development environments, and the less likely they are to choose Windows.

Continuous integration (CI) systems

> 100%

In 2020, Gitlab CI has overtaken the former leader in the Continuous Integration systems category — Jenkins / Hudson.

Testers are the most extensive users of Continuous Integration systems. Almost 80% of developers involved in software testing or writing automated tests use CI systems.

Configuration management tools

> 100%

Editors and IDEs

MainData ScienceWeb

To identify the most popular editors and IDEs, we asked a single-answer question “What is the main editor you use for your current Python development?” Options that received less than 0.5% in 2019 were combined together under the option “Other”.

The combined share of the PyCharm Community and Professional editions is 33%, which matches last year results. VS Code continues to grow, taking 5 percent more of the share than it did last year. Meanwhile, most of the text editors like Vim or Sublime Text have lost some of their share.

Jupyter Notebook, Jupiter Lab, and Spyder have gained more users from among the data science fields.

The shares of VS Code users who work with data and those who are web developers are roughly equal.

The share of PyCharm users who are web developers is roughly twice that of users working with data, and the difference is especially pronounced for PyCharm Professional Edition.

Tools and features for Python development

> 100%

Most of the actions listed in this question have a clear shift in favor of more experienced users. The longer a developer has been in the profession, the more likely they are to use the listed technologies. This relation does not hold true for optional type hinting and autocompletion, however. Pythonistas with 11+ years of experience are much less likely to perform these actions regularly than those who have coded for 3-5 years.

Employment and Work

Working in a team vs working independently

Working on projects

Team size

Employment status

Company size

Company industry

Target industry

Job roles

> 100%

Python experience

Professional coding experience

Age range

What country/region do you live in?

All countries/regions smaller than 1% have been merged into “Other”.

Methodology and Raw Data

Want to dig further into the data? Download the anonymized survey responses and see what you can learn! Share your findings and insights by mentioning @jetbrains and @ThePSF on Twitter with the hashtag #pythondevsurvey.

Before dissecting these data, please note the following important information:

1

The data set includes responses only from official Python Software Foundation channels. After filtering out duplicate and unreliable responses, the data set includes more than 28,000 responses collected in October and November of 2020 through the promotion of the survey on python.org, the PSF blog, the PSF’s Twitter and LinkedIn accounts, official Python mailing lists, and Python-related subreddits. In order to prevent the survey from being slanted in favor of any specific tool or technology, no product-, service-, or vendor-related channels were used to collect responses.

2

The data are anonymized, with no personal information or geolocation details. Moreover, to prevent the identification of any individual respondents by their verbatim comments, all open-ended fields have been deleted.

3

To help you better understand the logic of the survey, we are sharing the data set, the survey questions, and all the survey logic. We used different ordering methods for answer options (alphabetic, randomize, and direct). The order of the answers is specified for each question.

Download Survey‘s Raw Data

Once again, on behalf of both the Python Software Foundation and JetBrains, we’d like to thank everyone who took part in this survey. With your help, we’re able to map the landscape of the Python community more accurately!

Check out the results of the Python Developer Survey in 2017, 2018, and 2019.

Thank you for your time!

We hope you found our report useful. Share this report with your friends and colleagues.

Participate in future surveys:

If you have any questions about this survey or suggestions for future ones, please contact us at surveys@jetbrains.com or psf@python.org.

© 2000—2021 JetBrains s.r.o. All rights reserved.