Python

Python Developers Survey 2019 Results

In the fall of 2019, the Python Software Foundation and JetBrains together conducted the official third annual Python Developers Survey. Much like the previous survey, we set out to identify the latest trends and gather insight into what the world of Python development looks like in 2019. The insights from 24 thousand Python developers from more than 150 different countries have helped us get a picture of the Python community.

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

General Python Usage

Python as main vs secondary language

Most of the survey respondents use Python as their primary programming language. This distribution is the same as it was in the 2018 Python Developers Survey.

Python usage with other languages

> 100%
MainSecondaryCombined

There is a slightly different distribution of programming languages used along with Python compared to last year. Additionally, more respondents said that they do not use any other languages besides Python — 11% this year compared to 6% last year.

Languages for Web and Data Science

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

Scripting languages like JavaScript, TypeScript, HTML/CSS, and PHP are used much more often among those who identified Web development as their purpose for using Python than among Data Scientists. Conversely, C/C++, Java, and R are more popular among Data scientists than among web developers.

Purposes for Using Python

In this section we asked a set of 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

Python users are very keen on multitasking. The mean number of purposes chosen in the question “What do you use Python for?” was 3.9.

The distribution among the purposes for using Python remained quite stable for the third year in a row. Data analysis is still the most common way people use python, and it is followed by web development.

This year there was a slight increase in the number of Python users involved in computer graphics — 13% this year compared with 9% in 2018.

To what extent are you involved in the following activities?

> 100%

The question “What do you use Python for?” also had an open text field, and here’s a list of the most frequent responses:

API, Artificial intelligence, Astronomy, Automation, Backend, Bioinformatics, Blockchain, Bots, CLI applications, Cloud, Computer Vision, Cryptography, CyberSecurity, Data Engineering, Data Mining / Pipelines / Processing / Visualisation, Deep Learning, Discord Bots, Engineering, Enterprise Applications (ERP), Ethical Hacking, ETL, Financial Software, Fun, GIS, Hacking, Home Automation, Image Processing, IoT, Microservices, Music, Natural Language Processing, Pentesting, Physics Simulations, Quantum Computing, Research, Robotics, Science / Scientific Computing, Server, Trading.

Thus, it can be concluded that Python is used for an extremely wide range of tasks.

What do you use Python for the most?

> 100%
MainSecondaryCombined

Do those involved in data analysis or machine learning consider themselves data scientists?

Only 33% of those who are involved in Data analysis and Machine learning consider themselves to be Data Scientists.

Python versions

Python 3 vs Python 2

Although Python 2 is no longer maintained, 10% respondents still actively use it.

The biggest share of those who use Python 2 belongs to Web development, with 45%, and DevOps / System administration / Writing automation scripts, with 41%.

The proportion of seasoned professionals with more than 6 years of coding experience is twice as high among Python 2 users.

Python versions’ use cases

> 100%

Although Data analysis is more popular among Python developers, it is interesting to see that its share among those who use Python 2 is lower than web development’s share. This is probably because data analysis in Python has grown more popular in recent years, while web development is a more mature field and some web developers have lots of legacy code to maintain.

Interesting fact

Machine learning has a significantly lower share among Python 2 developers compared with the 42% for Python 3, perhaps because this is a rapidly evolving field.

Python 3 versions

Python 3.7 is used by more than a half of Python 3 followers, making it the most popular version of Python at the end of 2019.

Python installation and upgrade

> 100%

Python environment isolation

> 100%

Virtualenv is still the most popular way to isolate Python environments, although there are a lot of interesting alternatives.

At the same time, Vagrant / virtual machines are becoming less popular. They’ve lost 3 percentage points since last year.

Frameworks and Libraries

This section highlights the popularity of various Python frameworks, libraries, and technologies used by Python developers.

Web frameworks

> 100%

Interesting fact

Among those who are not involved in web development, 50% of respondents use some kind of the web framework. The leaders among this group are Flask (32%) and Django (21%). Django is used by 73% of web developers (taken to be those who mostly do web development), and Flask is used by 61% of web developers.

Data science frameworks and libraries

> 100%

NumPy is the most popular data science framework, with 63% of python developers using it, followed by Pandas, with 55%.

The option to select PyTorch was missing from the last few versions of the survey, but it is quite popular and is used by 15% of Python developers.

Big Data tools

> 100%

Other frameworks and libraries

> 100%

For this question we listed some general Python libraries. It comes with no surprise, Requests is used by more than the half of Python users. Pillow is also very popular. One in five Python users use asyncio.

Unit-testing frameworks

> 100%

For this question, we provided a list of some unit-testing Python libraries. Pytest is used by almost half of Python users. Pytest is even more popular than unittest, which is a part of the standard library.

Technologies and Cloud

ORMs

> 100%

The two most popular ORMs are SQLAlchemy and Django ORM, mirroring the popularity of the two leading web development frameworks, Flask and Django.

Databases

> 100%

Top Cloud platforms

> 100%
AWS

55%

AWS

Google Cloud Platform

33%

Google Cloud Platform

DigitalOcean

22%

DigitalOcean

Heroku

20%

Heroku

Microsoft Azure

19%

Microsoft Azure

PythonAnywhere

12%

PythonAnywhere

Google Cloud Platform usage has grown 2 percentage points and Microsoft Azure 4 percentage points since last year, while DigitalOcean and Heroku have decreased their shares.

In addition to the popular cloud platforms listed above, OpenStack got 6%, Linode 5%, OpenShift 3%, and Rackspace 1%. Other cloud platforms that were not listed in the options were also identified by 8% of respondents. The most common write-ins were OVH, Vultr, Hetzner and Scaleway.

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

> 100%

Running code within containers is becoming more and more popular (47% this year compared with 40% last year) and has overtaken running code in Virtual Machines.

How do you develop for the cloud?

> 100%

Developing for the cloud in containers has risen in popularity by 6 percentage points since last year, while Virtual machines have experienced a slight decrease of 2 percentage points.

As containerization technology has matured, it has seen a distinct rise in popularity. In many cases, container technology is now used instead of virtual machines to develop for the cloud. Though the use of virtual machines has decreased, both technologies do continue to play a key role.

Development Tools

Operating systems

> 100%
Linux

68%

Linux

Windows

48%

Windows

MacOS

29%

MacOS

BSD

2%

BSD

1%

Other

Linux is the most popular operating system among Python developers — almost two thirds use it in some capacity.

Continuous Integration (CI) systems

> 100%

Compared to the previous year, the shares of Jenkins/Hudson and Travis CI have decreased, while Gitlab CI has almost reached the same coverage as Jenkins, which is the most popular choice.

Configuration Management tools

> 100%

Editors and IDEs

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 option Other.

MainData ScienceWeb

The most popular tools for Python development are PyCharm and VScode. The combined share of the PyCharm Community and Professional editions is 33%. And VS Code has experienced rapid growth. It started with 7% in 2017 and achieved 24% in 2019.

Tools and features for Python development

> 100%

Features like Version Control Systems, autocompletion, and code refactoring are used by almost all Python developers in their IDEs or editors.

Employment and Work

Employment status

Job roles

> 100%

Python experinece

Professional coding experience

Working in a team vs working independently

Working on multiple projects

Team size

Company size

Company industry

Target industry

Age range

Methodology and Raw Data

Want to dig into the results yourself? 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 include responses only from the official Python Software Foundation channels. After filtering out duplicate and unreliable responses, the data set includes more than 24,000 responses collected in October and November of 2019 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 pruned.

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 accurately map the landscape of the Python community!

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

Thank you for your time!

Enjoyed going through the survey findings? Share this report with your friends and colleagues!

Participate in future surveys:

We’re also extremely open to any suggestions and feedback related to this survey so we can run an even better one next time. Feel free to open issues here with any comments or questions.

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