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
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?
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?
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?
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
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
Python environment isolation
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
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
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
Other frameworks and libraries
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
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
The two most popular ORMs are SQLAlchemy and Django ORM, mirroring the popularity of the two leading web development frameworks, Flask and Django.
Databases
Top Cloud platforms
55%
AWS
33%
Google Cloud Platform
22%
DigitalOcean
20%
Heroku
19%
Microsoft Azure
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)
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?
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
68%
Linux
48%
Windows
29%
MacOS
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
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
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.
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
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
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.
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!
- General Python Usage
- Purposes for Using Python
- Python Versions
- Frameworks and Libraries
- Technologies and Cloud
- Development Tools
- Employment and Work
- Methodology and Raw Data
Thank you for your time!
Enjoyed going through the survey findings? Share this report with your friends and colleagues!
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.