Check out the Python Developer Survey results in 202020192018, and 2017.

General Python Usage

Python as main vs secondary language

For the last 4 years the share of developers who use Python as their main language remains at the pretty same level of 84-85%.

Python usage with other languages100+

2021
2020
40%/41%38%/38%33%/35%33%/33%30%/29%20%/20%11%/11%10%/9%9%/8%9%/10%6%/5%5%/6%4%/4%3%/3%
All results

JavaScript is the most popular language used together with Python. However, for developers who use Python as a secondary language, C/C++ are about as popular as JavaScript. HTML/CSS, Bash/Shell, and SQL are also widespread, each being used by more than a third of Python developers.

Languages for Web and Data Science100+

Data science
Web development
42%/49%37%/45%36%/69%34%/60%33%/19%20%/16%14%/2%11%/10%9%/22%8%/11%6%/15%6%/8%4%/2%3%/4%18%/15%9%/3%

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.

Unsurprisingly, the most popular languages used along with Python by web developers are JavaScript (69%) and HTML/CSS (60%), while developers involved in data-related tasks more often use SQL (42%). Also, the share of developers who don’t use any additional languages is three times higher among those who are involved in data-related tasks, compared to web developers.

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?

Python usage in 2020 and 2021100+

2021
2020
51%/54%45%/48%36%/38%36%/38%31%/35%27%/27%26%/28%22%/23%19%/19%18%/19%12%/13%10%/9%7%/9%6%/6%5%/5%7%/7%

There are no great changes in the distribution of Python use cases over the years. Data analysis, machine learning, web development, and DevOps are still the most popular fields for Python usage.

Python usage as main and secondary language100+

Python is main
Python is secondary
52%/46%48%/32%37%/30%35%/37%32%/28%27%/25%27%/22%21%/24%19%/17%18%/18%12%/13%11%/10%7%/9%6%/5%5%/5%7%/6%

To what extent are you involved in the following activities?

primary activity
secondary activity
hobby
62%23%14%47%38%16%45%32%23%42%49%8%41%43%16%40%48%12%39%28%33%36%34%31%36%30%34%36%43%21%30%40%30%27%35%38%24%36%39%24%39%37%19%17%64%74%12%15%Web developmentData analysisMachine learningSoftware testing / Writing automated testsSoftware prototypingDevOps / System administration / Writing automation scriptsEducational purposesDesktop developmentEmbedded developmentNetwork programmingMobile developmentMultimedia applications developmentComputer graphicsProgramming of web parsers / scrapers / crawlersGame developmentOther

What do you use Python for the most?100+

2021
2020
23%/25%17%/17%11%/13%10%/10%9%/7%5%/4%4%/4%4%/4%3%/3%3%/3%2%/1%1%/1%1%/1%1%/1%1%/0%6%/5%

A quarter of developers who use Python as their main language primarily use it for web development. Among those for whom Python is a secondary language, only 12% do so.

Interestingly, data analysis as a primary field for Python usage is reported by nearly the same share of developers both for whom it is the main programming language (17%) and as a secondary one (16%).

Do you consider yourself a Data Scientist?

No
Yes
Other
66%29%5%

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

Only 29% of the Python developers involved in data analysis and machine learning consider themselves to be Data Scientists.

Python Versions

Python 3 vs. Python 2

Python 3
Python 2
95%5%94%6%90%10%84%16%75%25%20212020201920182017

On average, the share of Python 2 users decreases by 5 percentage points each year, and now only 5 developers out of 100 use it.

It is interesting that compared to Python 3, Python 2 is more often applied to computer graphics, games, and mobile development.

Python version use cases100+

Python 3
Python 2
54%/31%48%/24%38%/27%38%/16%34%/14%28%/18%27%/23%23%/12%19%/14%18%/19%11%/24%9%/17%8%/7%5%/12%4%/7%7%/5%

Python 3 versions

Python 3.5 or lower2%Python 3.67%Python 3.713%Python 3.827%Python 3.935%Python 3.1016%

Python installation and upgrade100+

38%28%16%16%15%6%5%3%1%1%1%3%12%

Note: Enthought got less than 0.5% and has been merged to Others.

More than half of Windows users get Python from Python.org, while among Linux users only a third do so. Unsurprisingly, Linux and macOS users most often install and update Python using OS-provided options. At the same time, for macOS users, pyenv and Docker containers are also fairly popular ways of getting Python.

Python environment isolation100+

50%31%20%16%11%5%4%25%

Among Python developers, 75% use some tools to isolate Python environments. Interestingly, Conda is the most popular tool for it among developers who use Jupyter Notebook (50%), while other developers prefer Virtualenv and Docker.

Frameworks and Libraries

Web frameworks100+

41%40%21%4%3%3%3%3%2%1%5%29%

Flask, Django, and FastAPI are still the top-3 Python web frameworks. FastAPI, initially released at the end of 2018, shows the fastest growth, having grown by 9 percentage points compared to the previous year. At the same time, compared to 2020, the share of Flask users decreased by 5 percentage points.

You can find more about the Django framework landscape in the Django Developers Survey 2021, conducted in partnership with Django Software Foundation.

Data science frameworks and libraries100+

60%55%43%30%29%23%18%17%16%10%3%1%1%4%27%

10% of Python developers simultaneously use 7 or more data science frameworks and libraries, while about a half of them use 2 or fewer frameworks.

Other frameworks and libraries100+

52%31%24%19%15%14%14%13%9%7%6%4%3%3%7%19%

The majority of other frameworks are more popular among web-developers than among data scientists, who use Tkinker and PyQT significantly more often.

Unit-testing frameworks100+

50%25%11%6%5%4%3%1%38%

The popularity of different Python unit-testing frameworks remains nearly the same compared to last year.

While only 56% of solo-developers use them, 75% of respondents from companies of 5,000 or more employees report using unit-testing frameworks.

ORMs100+

34%29%16%5%3%2%1%1%4%36%

SQLAlchemy is the most popular ORM among all database users.

It is interesting that 52% of Redis users use Django ORM, while generally it is used by less than a third of Python devs. Also noteworthy is that 20% of Amazon Redshift users use SQLObject, while in the general population this number is only about 5%.

Databases100+

43%38%37%20%18%10%6%3%2%2%1%1%1%1%6%19%

Among data scientists 80% use databases, while among web developers 98% do so.

Those who are involved in web development use PostgreSQL 32 percentage points more often, Redis 25 ​​percentage points more often, and SQLite 12 percentage points more often than those who are involved in data science. At the same time, data scientists report to use Oracle Database twice more often than web developers.

Big Data tools100+

11%9%5%5%4%2%2%2%1%1%2%75%

The distribution of big data tools remains nearly the same compared to last year. Generally, data scientists use them 13 percentage points more often than other developers, and Apache Spark and Dask are about twice as popular among them.

Cloud platforms

61%

of Python developers use cloud platforms.

Top cloud platforms100+

50%32%23%23%17%12%5%5%4%1%9%

This question was only answered by respondents who use cloud platforms.

Interestingly, Visual Basic, C#, and C/C++ users use AWS nearly half as often as Python developers in general.

How do you run code in the cloud?100+

2021
2020
48%/47%41%/43%27%/27%24%/25%2%/2%11%/11%

This question was only answered by respondents who use cloud platforms.

Virtual machines continue to lose their popularity. While in 2018 they had a share of 47% and were the most popular choice, now only 41% of Python developers use them.

How do you develop for the cloud?100+

2021
2020
53%/56%41%/40%20%/21%19%/17%18%/18%9%/8%1%/1%10%/9%

This question was only answered by respondents who use cloud platforms.

Local Python development with virtualenv is extremely popular among those who are involved in web development, DevOps, and software prototyping (61-65%). Docker containers usage is mostly popular among web-devs (54%).

Virtual machines are widely used by developers involved in DevOps, machine learning, and network programming (26-27%). Interestingly, those involved in DevOps and machine learning also use remote development environments more often than all other respondents.

Development Tools

Operating system100+

Linux63%Windows58%macOS25%BSD2%Other1%

Compared to 2020, Linux and macOS popularity decreased by 5 percentage points each, while Windows usage has risen by 10 percentage points.

Continuous integration (CI) systems100+

31%22%17%5%5%4%2%2%1%1%5%39%

Introduced in 2018, GitHub Actions quickly gained popularity and now is in first place in the list of CI systems, being used by slightly less than a third of Python developers.

Another growing CI system is Gitlab CI – its usage has risen by 4 percentage points since 2018. At the same time, Travis CI is rapidly losing its popularity, with a decrease of 13% from 2018. Jenkins/Hudson have also lost 8 percentage points in three years.

36%

of Python programmers use documentation tools. The most popular one is Sphinx.

Documentation Tools100+

Tools and Features for Python Development

At least sometimes
Never or Almost never
89%11%87%13%87%13%85%15%79%21%77%23%75%25%74%26%74%26%64%36%62%38%61%39%50%50%43%57%41%59%use autocompletion in your editorrefactor your codeuse Version Control Systemsuse Python virtual environments for your projectsuse code lintingwrite tests for your codeuse SQL databasesuse optional type hintinguse a debuggerrun / debug or edit code on remote machinesuse Continuous Integration toolsuse Issue Trackersuse code coverageuse a Python profileruse NoSQL databases

Those who use Python as a primary language use a Python profiler and code coverage 8 percentage points more frequently, and Python virtual environments 10 percentage points more frequently, for their projects than developers who use Python as a secondary language.

Editors

The combined share of the PyCharm Community and Professional editions is 31%, which is close to last year's result. VS Code has grown by 6 percentage points compared to last year.

Interestingly, PyCharm and VS Code are equally popular among web developers (39%), while data scientists prefer VS Code by 9 percentage points more as their main IDE.

Main IDE/Editor100+

35%31%7%3%3%2%2%2%2%2%2%2%3%3%

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?”.

Data science vs. Web development100+

Data science
Web development
36%/39%27%/39%5%/7%2%/1%2%/2%2%/2%2%/3%21%/3%

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 did you first learn about your main IDE/Editor?

23%16%14%13%11%8%7%2%1%4%

The most popular ways Python developers learn about their main IDE are learning activities, their friends/colleagues recommendations, or search engines.

Interestingly, only 1% of respondents reported advertising was a source of discovering the tool.

57% of those using Jupyter Notebook first learn about it in School/University or on online courses, while overall 25% of respondents learn about their tool the same way.

Number of IDEs/Editors used

116%237%325%413%5 and more8%

VS Code, Jupyter Notebook, and PyCharm are the most popular to use in addition to the main IDE, with each being used by more than 20% of Python developers.

Frequency of main IDE/Editor usage

Daily83%Weekly13%Monthly2%Less frequently2%

IDEs/Editors used in addition to main IDE/Editor100+

26%25%23%21%13%12%12%9%6%5%3%3%2%1%5%16%

VS Code, Jupyter Notebook, and PyCharm are the most popular to use in addition to the main IDE, with each being used by more than 20% of Python developers.

Those who use Jupyter Notebook as their main IDE additionally use Spyder about four times more often than other Python developers.

Making Python Better

Did you know?

In 2021, The Python Software Foundation appointed a new Developer-in-Residence to work full-time on the Python programming language and support its developer community.

Core developer Łukasz Langa was hired to the CPython DIR role in July. Langa is working to help clear the backlog, investigate project priorities, and look into other areas of interest.

What do you think about the new
Developer-in-Residence role?

23% of Python developers already know about the Developer-in-Residence role, and 91% of them find this initiative good.

Moreover, 30% of developers who are aware of the Developer-in-Residence role already see the impact of this innovation.

Reporting the issues

Only 19% of Python users have ever reported its bugs. Interestingly, using bugs.python.org is not the most popular way to report them – about twice as many programmers prefer to ask elsewhere or submit a pull request to GitHub.

Of those who reported bugs, 73% got their issue solved, and only 7% of respondents say they have never heard back from anybody.

Have you tried reporting your issues?

9%8%4%2%1%81%

Was your issue solved?

47%26%18%7%3%

This question was only answered by respondents who have already reported issues.

Python Packaging

63%

of Python developers use containers, and 59% of them use a virtual environment in them.

Do you use a virtual environment in containers?

No, I do not use a virtual environment in containers
No, I do not use containers
Yes, I use a virtual environment in container
37%37%26%

Which tools related to Python packaging
do you use directly? 100+

81%32%30%23%22%13%13%11%10%6%2%1%0%2%7%

Do you use the standard library module venv?100+

42%23%11%11%4%1%23%11%

Application dependencies

45% of Python developers use some tools for version pinning of application dependencies. The most common way to store it is in requirements.txt, which is used by three quarters of developers.

Do you use any tools for managing precise/exact versions of application dependencies?

No
Yes
55%45%

What format(s) is your application dependency information stored in?100+

76%26%22%16%11%4%5%3%

This question was only answered by respondents who use some tools for managing precise/exact versions of application dependencies.

Do you use any automated services to update the versions of application dependencies?100+

24%10%6%2%65%

Which tools do you use for application dependency management?100+

poetry27%pipenv26%pip-tools26%Other4%None33%

This question was only answered by respondents who use some tools for managing precise/exact versions of application dependencies.

Packages installation

90% of developers report they use pip to install Python packages. The Python Package Index is the most popular place to get the packages from.

Where do you install packages from? 100+

81%33%17%16%15%11%10%10%9%8%4%3%2%9%

Which tools do you use for installing packages?100+

90%21%13%5%5%2%3%3%
55%

of Python developers say they develop applications, and Setuptools is the most popular tool for this purpose, used by 46% of developers.

Which tool(s) do you use to develop
Python applications?100+

46%30%18%17%5%2%1%1%1%1%4%28%

This question was only answered by respondents who develop applications.

While more than half of Python users develop applications, only 40% of them have already published these apps to a package repository.

Which tools do you use to create packages
of your Python libraries? 100+

71%42%26%20%5%3%1%1%1%1%3%

This question was only answered by respondents who develop Python libraries.

34% of respondents develop Python libraries, and for them Setuptools is the most common way to package it, used by 71%.

Interestingly, only 27% of Python library developers have already published them to a package repository.

Where have you published your packaged
Python libraries?100+

This question was only answered by respondents who published their packaged Python libraries.

The Python Package Index is the most popular place to publish developed libraries and application packages, while the Private PyPI is used about half as often.

Demographics

Working in a team vs working independently

Working on projects

Employment status

62%14%6%6%6%4%1%2%

Company size

7%12%17%24%7%10%19%3%

This question was only answered by respondents who are employed in companies.

Team size

2-772%8-1217%13-206%21-403%> 402%

This question was only answered by respondents who are employed in companies.

Company industry

41%7%7%5%4%4%3%
All results

This question was only answered by respondents who are employed in companies.

Target industry

51%4%3%3%3%3%3%
All results

This question was only answered by respondents who are employed in companies.

Job roles100+

72%17%17%17%9%7%6%5%5%5%4%4%13%

This question was only answered by respondents who are employed.

Age range

18–2010%21–2938%30–3929%40–4913%50–596%60 or older3%

Python experience

Less than 1 year23%1–2 years23%3–5 years29%6–10 years15%11+ years10%

Professional coding experience

Less than 1 year36%1–2 years19%3–5 years19%6–10 years11%11+ years15%

What is your country or region?

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

17%9%7%6%5%5%4%3%3%3%2%2%2%2%
All results

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:

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 23,000 responses collected between October 11 and December 6, 2021, 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.

The data is anonymized, with no personal information or geolocation details. To prevent the identification of any individual respondents by their verbatim 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 (alphabetic, randomized, and direct). The order of the answers is specified for each question.

Criteria for filtering out responses

  • Age 17 or younger.
  • Did not reach 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).
  • Responses from the same email addresses (only one response left within).
  • Similar responses from the same IP address.

At least two of the following:

    • More than 16 programming languages used.
    • More than 9 job roles.
    • More than 11 Python usage purposes (​​”What do you use Python for?”).
    • Selected country/region is among the top of the list alphabetically, not among popular countries/regions, and differs from the IP-detected country/region.
    • CEO and Technical Support job roles together.
    • CEO and age under 21 together.
    • Too many answers selected overall (those, who use almost all frameworks for data science, for web development, packaging, etc.).
    • Answered too quicky (less than 6 second 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.

Check out the Python Developer Survey results in 202020192018, and 2017.

Discover the other large-scale survey reports by JetBrains!

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.