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, 2019, 2021, 2022, and 2023.

General Python Usage

Python as main vs secondary language

85%Main
15%Secondary

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

Python usage with other languages

> 100%
MainSecondaryCombined
2020
2019
42%/43%39%/40%36%/40%34%/37%27%/28%18%/19%10%/10% 9%/10% 8%/9% 8%/8% 6%/7% 4%/5%JavaScriptHTML/CSSBash / ShellSQLC/C++JavaC#PHPGoTypeScriptRRust
All results

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%
Data science
Web dev
43%/49%39%/46%37%/73%35%/62%34%/19%21%/16%17%/2%11%/9% 8%/13% 8%/19% 7%/13% 4%/2% 4%/6% 4%/4%11%/10% 8%/3%SQLBash / ShellJavaScriptHTML/CSSC/C++JavaRC#PHPTypeScriptGoVisual BasicRustKotlinOtherNone

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?

54%Both for work and personal
26%For personal, educationalor side projects
19%For work

What do you use Python for?

> 100%
MainSecondaryCombined
2020
2019
55%/59%50%/51%40%/40%38%/39%36%/37%29%/31%27%/26%23%/25%19%/18%19%/21%13%/14% 9%/7% 8%/8% 7%/6% 5%/4% 7%/6%Data analysisWeb developmentMachine learningDevOps / System administration / Writing automation scriptsProgramming of web parsers / scrapers / crawlersSoftware testing / Writing automated testsEducational purposesSoftware prototypingDesktop developmentNetwork programmingComputer graphicsGame developmentEmbedded developmentMobile developmentMultimedia applications developmentOther

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%
primary activity
secondary activity
hobby
62%23%15%49%27%24%48%34%18%45%39%17%43%26%32%43%47%10%41%45%14%41%27%33%40%39%21%39%30%31%39%28%33%35%30%34%35%28%37%28%38%34%26%16%57%68%12%20%Web developmentMachine learningData analysisSoftware prototypingEducational purposesSoftware testing / Writing automated testsDevOps / System administration / Writing automation scriptsEmbedded developmentNetwork programmingDesktop developmentMobile developmentComputer graphicsMultimedia applications developmentProgramming of web parsers / scrapers / crawlersGame developmentOther

What do you use Python for the most?

MainSecondaryCombined
2020
2019
27%/28%17%/18%13%/13% 9%/9% 7%/6% 4%/4% 4%/3% 3%/3% 3%/4% 3%/3% 1%/1% 1%/1% 1%/1% 1%/1% 0%/0% 5%/5%Web developmentData analysisMachine learningDevOps / System administration / Writing automation scriptsEducational purposesDesktop developmentProgramming of web parsers / scrapers / crawlersNetwork programmingSoftware prototypingSoftware testing / Writing automated testsComputer graphicsEmbedded developmentGame developmentMobile developmentMultimedia applications developmentOther

Do you consider yourself a Data Scientist?

No
Yes
Other
63%32%5%

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 2
Python 3
25%75%16%84%10%90%6%94%2017201820192020

Python version use cases

> 100%
Python 3
Python 2
57%/34%51%/32%40%/30%40%/17%37%/18%30%/24%27%/19%25%/16%19%/16%19%/19%10%/22% 8%/8% 8%/13% 5%/12% 4%/7% 7%/6%Data analysisWeb developmentDevOps / System administration / Writing automation scriptsMachine learningProgramming of web parsers / scrapers / crawlersSoftware testing / Writing automated testsEducational purposesSoftware prototypingDesktop developmentNetwork programmingComputer graphicsEmbedded developmentGame developmentMobile developmentMultimedia applications developmentOther

Python 3 versions

3%Python 3.5 or lower
14%Python 3.6
28%Python 3.7
44%Python 3.8
12%Python 3.9

Python installation and upgrade

> 100%
34%33%19%17%15% 6% 5% 3% 1% 1% 1% 3%12%Python.orgOS-provided Python (via apt-get, yum, homebrew, etc.)AnacondaDocker containerspyenvBuild from sourceSomebody else manages Python updates for meAutomatic upgrade via cloud providerActivePythonIntel Distribution for PythonpythonzOtherI don’t update

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%
54%32%22%18% 8% 5% 3%22%VirtualenvDockerCondaPipenvPoetryVagrant / virtual machinesOtherNone

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

37%30%21%21%20%20%14% 9% 8% 7% 6% 5% 5% 5% 5% 4% 4% 3% 3% 2% 2%32%Simple syntax, syntactic sugar, easy to learnEasy to write & read code, high-level languageList comprehension, generatorVersatility, libraries for any problemDynamic typing, duck typingStrong standard libraries, built-in data structures, expressions, ""batteries included"" *Large community, libraries support, clear documentation, pepMulti-paradigmRapid prototypingLarge data science ecosystemEasy string handling and formattingList & dictionaryPortabilityCross-platformDecoratorConcurrency & parallelism (asyncio, threading, multiprocessing)Interpreted language, no compile timePython shell, interpreters, IDEsContext managerLambda functionImport systemOther **

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

21%20%15%12%11% 9% 7% 7% 6% 5% 5% 4% 4% 3% 2% 2% 2% 1% 1%56%Static typing, strict type hintingPerformance improvementsBetter concurrency & parallelismPattern matching, switch statementOfficial Python compiler, JIT compilerImprovements to standard libraries*Better package management, standardization of package installerLibraries & framework for mobile developmentBetter support for functional programming, multiline anonymous functionsBetter support for GUI libraries, tkinter improvementsConstant variables, private methods, improvements to dataclassesImprove / remove GILAdopt operators from other languages: none-aware operators, pipe operator etcBetter version management, backward compatibilityBetter import management, circular import resolutionManual memory management, pointersFunction / method overloadingTail recursion optimizationSupport for curly braces / semicolons instead of indentationOther **

* 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%
46%43%12% 4% 3% 3% 2% 2% 2% 1% 6%27%FlaskDjangoFastAPITornadoweb2pyBottlePyramidCherryPyFalconHugOtherNone

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%
62%56%46%33%31%25%19%18%17%12% 4% 2% 1% 4%27%NumPyPandasMatplotlibSciPySciKit-LearnTensorFlowKerasSeabornPyTorchNLTKGensimTheanoMXNetOtherNone

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

Unit-testing frameworks

> 100%
49%28%13% 7% 4% 4% 4% 1%37%pytestunittestmockToxdoctestnoseHypothesisOtherNone

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%
54%32%22%19%16%16%13%11%10% 5% 5% 4% 4% 8%18%RequestsPillowAsyncioTkinterScrapyPyQTaiohttpPygameSixKivywxPythonTwistedPyGTKOtherNone

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%
35%35%32%14% 5% 3% 1% 1% 1% 4%No database developmentSQLAlchemyDjango ORMRaw SQLSQLObjectPeeweeTortoise ORMPonyORMDejavuOther

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

Databases

> 100%
45%39%38%19%18%11% 6% 3% 2% 2% 1% 1% 1% 1% 6%18%PostgreSQLSQLiteMySQLMongoDBRedisMS SQL ServerOracle DatabaseAmazon RedshiftNeo4jCassandraDB2HBaseCouchbaseh2OtherNone

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%
11% 9% 6% 5% 4% 2% 2% 1% 1% 1% 2%76%Apache SparkApache KafkaApache Hadoop/MapReduceDaskApache HiveApache BeamClickHouseApache FlinkApache TezApache SamzaOtherNone

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%
53%33%23%21%20%13% 5% 5% 4% 1% 8%AWSGoogle Cloud PlatformHerokuMicrosoft AzureDigitalOceanPythonAnywhereLinodeOpenStackOpenShiftRackspaceOther

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%
2020
2019
47%/47%43%/46%27%/25%25%/24% 2%/2%11%/11%Within containersIn virtual machinesOn a Platform-as-a-ServiceServerlessOtherNone

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%
2020
2019
56%/56%40%/41%21%/22%18%/18%17%/17% 8%/9% 1%/1% 9%/8%Locally with virtualenvIn Docker containersIn virtual machinesWith local system interpreterIn remote development environmentsDirectly in the production environmentOtherNone

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%
23%21%12% 7% 2% 2% 2% 1%10%46%Gitlab CIJenkins / HudsonTravis CICircleCITeamCityBambooAppVeyorCruiseControlOtherNone

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%
17% 9% 4% 3% 2% 3%69%AnsibleCustom solutionPuppetSaltChefOtherNone

Editors and IDEs

MainData ScienceWeb
33%29% 8% 4% 4% 3% 2% 2% 2% 2% 2% 1%PyCharmVS CodeVimSublime TextJupyter NotebookAtomEmacsSpyderIDLEJupyterLabIntelliJ IDEANotePad++
All results

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%
At least sometimes
Never or Almost never
89%11%89%11%87%13%85%15%79%21%78%22%77%23%73%27%71%29%64%36%63%37%61%39%51%49%42%58%41%59%use Version Control Systemsuse autocompletion in your editorrefactor your codeuse Python virtual environments for your projectsuse code lintingwrite tests for your codeuse SQL databasesuse a debuggeruse optional type hintingrun / debug or edit code on remote machinesuse Issue Trackersuse Continuous Integration toolsuse code coverageuse a Python profileruse NoSQL databases

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

48%Work in a team
48%Work on your ownproject(s) independently
4%Work as an externalconsultant or trainer

Working on projects

42%Work on many differentprojects
41%Work on one main andseveral side projects
17%Only work on one project

Team size

75%2-7 people
16%8-12 people
5%13-20 people
2%21-40 people
2%More than 40 people

Employment status

62%13% 7% 6% 6% 4% 1% 2%Fully employed by a company / organizationStudentWorking studentSelf-employedFreelancerPartially employed by a company / organizationRetiredOther

Company size

7%13%18%24% 6%10%19% 3%Just me2–1011–5051–500501–1,0001,001–5,000More than 5,000Not sure

Company industry

42% 7% 6% 5% 4% 4% 3% 2%Information Technology / Software DevelopmentScienceEducation / TrainingAccounting / Finance / InsuranceMedicine / HealthManufacturingBanking / Real Estate / Mortgage FinancingSales / Distribution / Business Development
All results

Target industry

45% 5% 4% 4% 3% 3% 3% 3%Information Technology / Software DevelopmentAccounting/Finance/InsuranceSales / Distribution / Business DevelopmentBanking / Real Estate / Mortgage FinancingMedicine/HealthManufacturingLogistics/TransportationBusiness / Strategic Management
All results

Job roles

> 100%
72%19%19%18% 9% 7% 7% 6% 6% 5% 5% 4%14%Developer / ProgrammerArchitectData analystTeam leadTechnical supportSystems analystCIO / CEO / CTOProduct managerQA engineerDBABusiness analystTechnical writerOther

Python experience

24%22%28%15%10%Less than 1 year1–2 years3–5 years6–10 years11+ years

Professional coding experience

34%19%19%12%16%Less than 1 year1–2 years3–5 years6–10 years11+ years

Age range

10%40%31%12% 5% 2%18–2021–2930–3940–4950–5960 or older

What country/region do you live in?

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

16%11% 7% 5% 5% 4% 4% 3% 3% 2% 2% 2% 2% 2% 1% 1% 1% 1% 1% 1% 1% 1%23%United StatesIndiaGermanyUnited KingdomFranceChinaRussian FederationBrazilCanadaPolandNetherlandsSpainItalyAustraliaUkraineIsraelCzech RepublicSwedenJapanTurkeyMexicoSwitzerlandOther

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, 2019, 2021, 2022, and 2023.

Thank you for your time!

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

Participate in future surveys:

I agree that my personal data will be processed for this purpose.

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.