CARVIEW |
Python Developers Survey 2023 Results
This is the seventh annual official Python Developers Survey, conducted as a collaborative effort between the Python Software Foundation and JetBrains.
Responses were collected in November 2023 – February 2024, with more than 25,000 Python developers and enthusiasts from almost 200 countries and regions taking part to illuminate the current state of the language and the ecosystem around it.
Check out the Python Developer Survey results from 2024, 2022, 2021, 2020, 2019, 2018, and 2017.
Share:
General Python Usage
Python as main vs secondary language
Main
Secondary
Python usage with other languages100+
2021 | 2022 | 2023 | |
---|---|---|---|
40% | 37% | 35% | JavaScript |
38% | 36% | 32% | HTML/CSS |
33% | 31% | 29% | Bash/Shell |
33% | 34% | 31% | SQL |
30% | 29% | 25% | C/C++ |
20% | 19% | 19% | Java |
11% | 11% | 12% | C# |
10% | 11% | 13% | TypeScript |
9% | 8% | 8% | Go |
9% | 9% | 7% | PHP |
6% | 7% | 7% | Rust |
5% | 6% | 5% | R |
4% | 4% | 4% | Visual Basic |
3% | 3% | 3% | Kotlin |
2% | 2% | 2% | Ruby |
2% | 2% | 1% | Perl |
2% | 2% | 2% | Swift |
2% | 2% | 2% | Scala |
1% | 1% | 1% | Objective-C |
1% | 1% | 1% | Clojure |
1% | 2% | 1% | Groovy |
1% | 1% | 1% | CoffeeScript |
– | – | 1% | Julia |
– | – | 1% | Mojo |
8% | 7% | 7% | Other |
13% | 14% | 17% | None |
Currently, there's a rising interest in Go and Rust for crafting low-latency and memory-safe applications.
Python usage with other languages100+
35%
38%
JavaScript
33%
31%
HTML/CSS
32%
26%
SQL
29%
25%
Bash/Shell
23%
35%
C/C++
“The drop in HTML/CSS/JS might show that data science is increasing its share of Python.”
Languages for Web and Data Science100+
40%
44%
SQL
30%
36%
Bash/Shell
30%
62%
JavaScript
28%
53%
HTML/CSS
25%
14%
C/C++
19%
15%
Java
12%
27%
TypeScript
Web development 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.
How long have you been programming in Python?
Less than 1 year
1–2 years
3–5 years
6–10 years
11+ years
How many years of professional coding experience do you have?
Less than 1 year
1–2 years
3–5 years
6–10 years
11+ years
of Python developers reported contributing to open-source projects last year.
“This is a great number to look at and an encouraging result for the first inclusion in the survey. I’m looking forward to seeing how this trend develops year over year.”
In the past year, how would you describe your contributions to open source?100+
77%
Code
38%
Documentation / Examples / Educational
35%
Maintainer / Governance / Leadership
33%
Tests
19%
Triaging issues or feature requests
13%
Community building / Outreach
2%
Other
of Python developers report practicing collaborative development.
Where do you typically learn about new tools and technologies that are relevant to your Python development?100+
55%
Documentation and APIs
45%
YouTube
44%
Python.org
42%
Stack Overflow
41%
Blogs
28%
Books
19%
AI Tools
14%
Online coding schools and MOOCs
14%
Conferences / events
13%
Podcasts
Favorite Python-related resources
Printed media
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?
Both for work and personal
For personal, educational or side projects
For work
Python usage by year100+
2021 | 2022 | 2023 | |
---|---|---|---|
51% | 51% | 44% | Data analysis |
45% | 43% | 42% | Web development |
36% | 36% | 34% | Machine learning |
– | – | 27% | Data engineering |
36% | 34% | 26% | DevOps / Systems administration / Writing automation scripts |
31% | 30% | 25% | Programming of web parsers / scrapers / crawlers |
– | – | 25% | Academic research |
26% | 25% | 23% | Software testing / Writing automated tests |
27% | 27% | 22% | Educational purposes |
– | – | 21% | Design / Data visualization |
22% | 20% | 19% | Software prototyping |
19% | 19% | 15% | Desktop development |
18% | 17% | 14% | Network programming |
12% | 13% | 10% | Computer graphics |
10% | 9% | 10% | Game development |
– | – | 8% | MLOps |
5% | 6% | 7% | Multimedia applications development |
7% | 8% | 7% | Embedded development |
6% | 6% | 6% | Mobile development |
7% | 6% | 6% | Other |
Please note that in 2023 the list was expanded with new options.
Python usage as main and secondary language100+
44%
40%
Data analysis
44%
33%
Web development
34%
29%
Machine learning
28%
20%
Data engineering
26%
21%
Academic research
26%
26%
DevOps / Systems administration / Writing automation scripts
25%
23%
Programming of web parsers / scrapers / crawlers
What do you use Python for the most?
21%
Web development
10%
Machine learning
10%
Data analysis
9%
Academic research
9%
Educational purposes
7%
DevOps / Systems administration / Writing automation scripts
6%
Data engineering
To what extent are you involved in the following activities?
Web development
Data analysis
Machine learning
Data engineering
Academic research
DevOps / Systems administration / Writing automation scripts
Educational purposes
Software testing / Writing automated tests
Software prototyping
Design / Data visualization
Programming of web parsers / scrapers / crawlers
Desktop development
Network programming
Python Versions
Python 3 vs. Python 2
2023
2022
2021
2020
2019
2018
2017
Almost half of Python 2 holdouts are under 21 years old and a third are students. Perhaps courses are still using Python 2?
Python 3 versions100+
2021 | 2022 | 2023 | |
---|---|---|---|
– | – | 2% | Python 3.13 |
– | – | 19% | Python 3.12 |
– | – | 31% | Python 3.11 |
16% | 45% | 23% | Python 3.10 |
35% | 23% | 11% | Python 3.9 |
27% | 17% | 8% | Python 3.8 |
13% | 9% | 3% | Python 3.7 |
7% | 4% | 2% | Python 3.6 |
2% | 2% | 1% | Python 3.5 or lower |
Note: In 2023, Python 3.7 and below were at the end of their lifecycle. Python 3.12 was released in October 2023 (1 month before this survey began) and is already highly adopted. Developers using Python 3.13 from this survey are using an alpha release.
Almost 75% of users use the last 3 versions of Python. That's great news! The community has been adopting the latest versions of Python quite quickly on account of the performance and convenience improvements they offer.
Python installation and upgrade100+
31%
Python.org
24%
OS-wide package-management tool
17%
pyenv
16%
Docker containers
14%
Anaconda
5%
Build from source
4%
Automatic upgrade via cloud provider
Note: Enthought got less than 0.5% and has been merged to Others.
Frameworks and Libraries
Web frameworks100+
33%
Flask
33%
Django
30%
Requests
29%
FastAPI
20%
Asyncio
18%
Django REST Framework
12%
httpx
12%
aiohttp
8%
Streamlit
6%
Starlette
3%
Tornado
3%
web2py
3%
Bottle
3%
Pyramid
3%
CherryPy
2%
Falcon
2%
Twisted
2%
Quart
1%
Hug
5%
Other
23%
None
Please note that in 2023 the list was expanded with new options.
Web frameworks100+
36%
42%
Flask
31%
46%
FastAPI
31%
40%
Requests
26%
63%
Django
18%
29%
Asyncio
16%
4%
Streamlit
12%
43%
Django REST Framework
Web frameworks are used widely, including by 77% of data scientists and 97% of web developers.
“While ML developers are less likely to use Django, a framework favored for full-scale web app development, their engagement with Flask and FastAPI, both suited for building RESTful APIs, is nearly as high as that of web developers. This suggests that ML professionals are actively involved in web development – but primarily through API-driven services rather than traditional website creation.”
You can find more about the Django landscape in the Django Developers Survey 2023, conducted in partnership with the Django Software Foundation.
Other frameworks and libraries100+
31%
BeautifulSoup
28%
Pillow
22%
OpenCV-Python
22%
Pydantic
17%
Tkinter
12%
PyQT
11%
Scrapy
Unit-testing frameworks100+
52%
pytest
25%
unittest
11%
mock
9%
doctest
5%
tox
5%
Hypothesis
2%
nose
Cloud platforms
Cloud platforms usage100+
2021 | 2022 | 2023 | |
---|---|---|---|
31% | 32% | 33% | AWS |
19% | 22% | 25% | Google Cloud Platform |
14% | 16% | 20% | Microsoft Azure |
7% | 9% | 11% | PythonAnywhere |
10% | 11% | 10% | DigitalOcean |
14% | 13% | 7% | Heroku |
– | – | 4% | Alibaba |
3% | 4% | 3% | Linode |
– | – | 3% | Oracle Cloud |
– | – | 3% | Hetzner |
3% | 4% | 2% | OpenStack |
2% | 3% | 2% | OpenShift |
– | – | 2% | Tencent |
1% | 2% | <1% | Rackspace |
6% | 6% | 5% | Other |
39% | 34% | 33% | None |
Please note that in 2023 the list was expanded with new options.
“After Azure introduced its OpenAI service, AWS and Google both moved quickly to release Bedrock and Gemini.”
“I feel major business decisions around pricing and acquisitions have played some role in where things are deployed.
Heroku's pricing decision seems to have taken a large hit but there wasn't a clear winner (maybe except PythonAnywhere) from that loss.”
How do you run code in the cloud?100+
Within containers
In virtual machines
Serverless
On a platform-as-a-service
Other
None
“Based on the CNCF survey of 2022, approximately 44% of users have transitioned most of their production workloads into containers, with an additional 9% still in the evaluation phase.”
of Pythonistas say they use Kubernetes for running code in containers.
Which of the following do you use?100+
Amazon Elastic Kubernetes Service
Google Kubernetes Engine
Azure Kubernetes Service
RedHat OpenShift
Other
“I predominantly rely on Amazon EKS for managing container workloads, as it offers seamless integration with AWS Services. Additionally, I've explored Google Kubernetes Engine (GKE), which provides a comparable experience. However, I found GKE Autopilot particularly appealing, as it handles cluster configuration, node management, scaling, security, and other predefined settings – all managed by Google.”
How do you develop for the cloud?100+
49%
Locally with virtualenv
38%
In Docker containers
23%
In virtual machines
20%
With local system interpreter
16%
In remote development environments
14%
Using WSL
10%
Directly in the production environment
2%
Other
“I appreciate the convenience provided by the AWS Toolkit and Cloud Code Plugin for effortlessly building serverless applications. Moreover, frameworks like LocalStack enable you to execute your AWS applications or Lambdas entirely on your local machine, eliminating the need to connect to a remote cloud provider.”
Data Science
of all surveyed Python developers are involved in data exploration and processing.
Tools for data exploration and processing
77%
pandas
72%
NumPy
16%
Spark
14%
Airflow
10%
Polars
9%
An in-house solution
7%
Dask
“While pandas remains the core workhorse for data exploration and processing tasks, a minority of people are also using distributed data processing libraries such as Spark, Dask, and Ray, suggesting they are working with big data. Polars continues to grow in popularity as a way to handle larger datasets without leaving the local machine.”
Libraries for creating dashboards100+
Plotly Dash
Streamlit
Panel
Gradio
Voilà
Other
None
25% of respondents say they work on creating dashboards. Plotly Dash and Streamlit are the top two choices for such tasks.
of all Python developers report they train ML models or generate predictions from them. scikit-learn and PyTorch are the top two solutions used for these tasks.
Frameworks for ML model training and prediction
100+
67%
scikit-learn
60%
PyTorch
48%
TensorFlow
44%
SciPy
30%
Keras
22%
Hugging Face Transformers
22%
XGBoost
Platforms for training100+
52%
Jupyter Notebook
11%
Amazon Sagemaker
10%
Cloud VMs with SSH
9%
AzureML
6%
Databricks
“The fact that the majority of people working with machine learning are using scikit-learn and SciPy shows the strong role that classical machine learning and statistics still play in data science. However, deep learning libraries are also popular, such as PyTorch, Tensorflow, Keras, and Hugging Face Transformers, potentially reflecting the recent interest in generative AI and large language models.”
Experiment tracking tools100+
TensorBoard
MLflow
Weights & Biases
CometML
NeptuneML
Other
An in-house solution
None
Google deprecated TensorBoard.dev (a service to publish tensorboard data in a single click) on January 1, 2024. We can expect other options to become more popular in 2024.
Tools for data versioning100+
An in-house solution
Dalta Lake
DVC
Pachyderm
Other
None
of all surveyed developers work on ML deployment and inference.
Do you work with big data?
“The minority of people who are not sure whether they work with big data reflects the fuzziness of this term, especially as personal computers get more and more powerful hardware.”
Big data tools100+
PySpark
PyFlink
Great Expectations
PyDeequ
Other
None
Solutions used for work with big data100+
Cloud
Self-hosted
Both
None
Development Tools
Operating system100+
Linux
Windows
macOS
BSD
Other
The share of developers using Linux as their development environment has decreased through the years: compared with 2021, it’s dropped by 8 percentage points.
Platforms and tools for deployment and inference100+
18%
Hugging Face
17%
Amazon Sagemaker
15%
MLflow
13%
AzureML
9%
Databricks
8%
VertexAI
7%
Kubeflow
7%
Nvidia Triton
ORMs100+
2021 | 2022 | 2024 | |
---|---|---|---|
34% | 35% | 34% | SQLAlchemy |
29% | 28% | 25% | Django ORM |
16% | 16% | 13% | Raw SQL |
– | – | 7% | SQLModel |
5% | 8% | 3% | SQLObject |
3% | 3% | 2% | Peewee |
2% | 3% | 2% | Tortoise ORM |
1% | 2% | 1% | Dejavu |
1% | 3% | 1% | PonyORM |
4% | 4% | 3% | Other |
36% | 34% | 41% | I don’t do database development |
The share of those who are not doing any database development increased by 7 percentage points compared to last year.
ORMs100+
43%
9%
I don’t do database development
36%
54%
SQLAlchemy
15%
57%
Django ORM
13%
15%
Raw SQL
“Data scientists are using DBs much less often than web developers. This will probably change in 2024 as vector DBs become increasingly popular for LLM applications.”
Databases100+
2021 | 2022 | 2023 | |
---|---|---|---|
43% | 42% | 43% | PostgreSQL |
38% | 36% | 34% | SQLite |
37% | 37% | 30% | MySQL |
20% | 19% | 17% | MongoDB |
18% | 16% | 17% | Redis |
10% | 12% | 10% | MS SQL Server |
– | – | 10% | MariaDB |
6% | 7% | 6% | Oracle Database |
– | – | 5% | DynamoDB |
3% | 4% | 4% | Amazon Redshift |
– | – | 4% | BigQuery |
2% | 3% | 2% | Cassandra |
2% | 3% | 2% | Neo4j |
– | – | 2% | ClickHouse |
– | – | 2% | Firebase Realtime Database |
1% | 2% | 1% | HBase |
1% | 2% | 1% | DB2 |
1% | 2% | 1% | h2 |
– | – | 1% | Apache Pinot |
– | – | 1% | Apache Druid |
1% | 2% | 0% | Couchbase |
6% | 6% | 4% | Other |
19% | 18% | 20% | None |
Please note that in 2023 the list was expanded with new options.
PostgreSQL remains the most popular database among Python users for the third year in a row.
Continuous integration (CI) systems100+
33%
GitHub Actions
21%
Gitlab CI
12%
Jenkins / Hudson
7%
Azure DevOps
6%
AWS CodePipeline / AWS CodeStar
6%
Google Cloud Build
4%
CircleCI
“GitHub Actions is a tool that I heavily depend on. From a developer's perspective, I don't require a DevOps or CI expert. It's just a straightforward YAML file that simplifies the process of running pipelines.”
Documentation Tools100+
43%
Markdown
25%
Swagger
16%
Sphinx
14%
Postman
13%
Wiki
7%
MKDocs
7%
rST
Configuration Management Tools100+
16%
Ansible
5%
Puppet
3%
Chef
3%
Salt
8%
A custom solution
3%
Other
67%
None
Main IDE/Editor
41%
Visual Studio Code
31%
PyCharm
3%
Vim
3%
Jupyter Notebook
3%
Neovim
2%
Sublime Text
2%
Emacs
1%
IntelliJ IDEA
1%
IDLE
1%
NotePad++
1%
Spyder
1%
JupyterLab
1%
Python Tools for Visual Studio
2%
Other
5%
None
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?”.
Among PyCharm users, 68% choose PyCharm Professional Edition.
Data science vs. Web development
44%
46%
Visual Studio Code
27%
37%
PyCharm
7%
0%
Jupyter Notebook
Only 6% of VS Code users use VS Code Data Wrangler. At the same time, Jupyter support provided by VS Code is used by 51% of its users.
Jupyter support in IntelliJ IDEA and PyCharm is used by 34% and 47% of users respectively.
IDEs/Editors used in addition to main IDE/Editor100+
22%
Visual Studio Code
20%
Jupyter Notebook
17%
Vim
13%
PyCharm Community Edition
12%
JupyterLab
11%
NotePad++
9%
Sublime Text
7%
PyCharm Professional Edition
7%
Nano
Number of IDEs/Editors used
1
2
3
4+
According to our data, 40% of respondents use 3 or more IDEs / editors for Python development, which is very close to the number of those using 2 IDEs / editors simultaneously.
Python Packaging
Which of the following tools do you use to isolate Python environments between projects?100+
2021 | 2022 | 2023 | |
---|---|---|---|
44% | 43% | 55% | venv |
42% | 37% | 28% | virtualenv |
21% | 21% | 20% | Conda |
14% | 16% | 18% | Poetry |
16% | 14% | 9% | Pipenv |
7% | 6% | 4% | virtualenvwrapper |
1% | 3% | 3% | Hatch |
4% | 3% | 4% | Other |
15% | 15% | 11% | I do not use any tools to isolate Python environments |
Which tools do you use to manage dependencies?100+
77%
Pip
19%
Conda
19%
Poetry
9%
pip-tools
9%
Pipenv
3%
Hatch
3%
PDM
2%
Other
6%
None
What format(s) is your application dependency information stored in?100+
63%
requirements.txt
32%
pyproject.toml
17%
setup.py
8%
Pipfile
8%
environment.yml
8%
setup.cfg
Where do you install packages from?100
80%
PyPI
28%
GitHub
16%
Anaconda
14%
A local source
10%
From Linux distribution
10%
An internal mirror of PyPI
10%
A private Python Package Index
“While PyPI and GitHub are convenient, make sure your software supply chain is under control.”
Where do you install packages from?100
80%
90%
PyPI
30%
25%
GitHub
27%
6%
Anaconda
14%
10%
A local source
13%
2%
Other Conda channels
“ML developers frequently use Anaconda, which is quite evident. Interestingly, they also often use GitHub for package installation. This is because many Python ML libraries include binaries for C/C++ that need to be natively compiled for specific Nvidia CUDA versions and hardware configurations, making PyPI impractical or even unusable for these purposes.”
of respondents say they have packaged and published Python applications they developed to a package repository.
Which tools do you use to create packages of your Python libraries?100
Twine
Poetry
Flit
Hatch
PDM
Other
“There has been a lot of conversation(*) on this in the past year! I'm excited to see how this continues to evolve in the next few years.”
An unbiased evaluation of Python packaging tools
Python Packaging Strategy Discussion
Evaluating Python Packages & Celebrating 20 Years of PyCon US
“As was also noted in the past year's survey, Poetry keeps getting more and more popular. Dependency conflict resolution is one feature that saves a lot of time compared with pip.”
Do you use a virtual environment in containers?
Yes
No
Other
I don’t use containers for Python development
of respondents build binary modules for Python using another language like C, C++, Rust, or Go.
Languages for building binary modules for Python100+
55%
C++
44%
C
27%
Rust
9%
Go
7%
C# / .NET
5%
Fortran
3%
Assembly
5%
Other
Demographics
Gender
This question was optional.
Age range
8%
18–20
32%
21–29
33%
30–39
16%
40–49
7%
50–59
3%
60 or older
Working in a team vs working independently
Working on projects
Employment status
62%
Fully employed by a company / organization
12%
Student
6%
Self-employed
6%
Freelancer
5%
Working student
4%
Partially employed by a company / organization
1%
Retired
4%
Currently unemployed
1%
Other
Job roles100+
62%
Developer / Programmer
16%
Team lead
15%
Data scientist
15%
Data engineer
14%
Architect
12%
Data analyst
10%
ML engineer / MLOps
9%
Academic researcher
8%
Technical support
6%
Systems analyst
6%
CIO / CEO / CTO
5%
Product manager
4%
DBA
4%
QA engineer
4%
Technical writer
Company size
7%
Just me
10%
2–10
16%
11–50
25%
51–500
9%
501–1,000
12%
1,001–5,000
18%
More than 5,000
3%
Not sure
Team size
69%
2–7 people
19%
8–12 people
7%
13–20 people
2%
21–40 people
3%
More than 40 people
“With the number of layoffs and increase in people in the tech job market, I wondered how Pythonistas have been fairing. It seems that not much has changed in terms of team composition in the last few years, except that teams of 21–40 people have taken a hit.”
Company industry
38%
Information Technology / Software Development
6%
Science
6%
Education / Training
6%
Accounting / Finance / Insurance
4%
Manufacturing
4%
Medicine / Health
4%
Banking / Real Estate / Mortgage Financing
2%
Sales / Distribution / Business Development
2%
Security
2%
Logistics / Transportation
2%
Marketing
2%
Non-profit
What is your country or region?
20%
United States
9%
India
6%
Germany
4%
United Kingdom
4%
France
4%
China Mainland
3%
Russian Federation
3%
Brazil
3%
Canada
2%
Italy
2%
Poland
2%
Spain
38%
Other
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 you begin to dissecting this data, please note the following important points:
This data set includes responses only from official Python Software Foundation channels. After filtering out duplicate and unreliable responses, the data set includes more than 25,000 responses collected in November 2023 – February 2024, with the survey being promoted on python.org and the PSF blog, official Python mailing lists, and Python-related subreddits, as well as by the PSF’s Twitter and LinkedIn accounts. 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.
The data has been anonymized, with no personal information or geolocation details. To prevent the identification of any individual respondents by their comments, all open-ended fields have been deleted.
To help you better understand the logic of the survey, we are sharing the data set, the survey questions, and the survey logic. We used different ordering methods for answer options (alphabetical, randomized, and direct). The order of the answers is specified for each question.
Criteria for filtering out responses
- Age 17 or younger.
- Did not answer the question “How many years of professional coding experience do you have?” on the third page of the survey.
- Age under 21 and more than 11 years of professional coding experience.
- Too many single answers for multiple choice questions (excluding “None” answers).
- Multiple responses from the same email address (only one response is used).
- Doesn’t use Python.
- More than 16 programming languages used.
- More than 9 job roles.
- More than 11 choices selected in response to “What do you use Python for?”.
- Selected country/region is among the top of the list alphabetically and not among popular countries/regions.
- Both the CEO and Technical Support job roles.
- Both CEO and aged under 21.
- Too many answers selected overall (using almost all frameworks for data science, for web development, packaging, etc.).
- Answered too quickly (less than 5 seconds per 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 map the landscape of the Python community more accurately!
Contribute to the PSF’s Recurring Giving Campaign. The PSF is a non-profit organization entirely supported by its sponsors, members & the public.
Thank you for your time!
We hope you found our report useful. Share this report with your friends and colleagues!
Join the JetBrains Tech Insights Lab
Take part in surveys and UX studies to make JetBrains products easier to use yet even more powerful. For participating in our research, you'll also get the chance to earn rewards.