Python Developers Survey 2017 Results

At the very end of 2017, the Python Software Foundation together with JetBrains conducted an official Python Developers Survey. We set out to identify the latest trends and gather insight into how the Python development world looks today. Over 9,500 developers from almost 150 different countries participated to help us map out an accurate landscape of the Python community.

General Python Usage

Python as Main vs Secondary Language

Almost 4 out of 5 Python developers use it as their main language, while for 21% it’s only a secondary language.

Interesting fact

This statistic is up 4% from 75% in 2016, when JetBrains conducted a similar survey.

Python Usage with Other Languages

See all the results

We couldn’t list all existing languages, but respondents had the option to choose “Other” and type in something. This answer option collected 10% of all responses, with the top “other” languages being Matlab, Lua, Fortran, Powershell, Elixir, and Haskell.

See all the results

We couldn’t list all existing languages, but respondents had the option to choose “Other” and type in something. This answer option collected 10% of all responses, with the top “other” languages being Matlab, Lua, Fortran, Powershell, Elixir, and Haskell.

See all the results

We couldn’t list all existing languages, but respondents had the option to choose “Other” and type in something. This answer option collected 10% of all responses, with the top “other” languages being Matlab, Lua, Fortran, Powershell, Elixir, and Haskell.

Half of all developers using Python as their main language also use JavaScript.

JavaScript is used by 79% of web developers, but only by 39% of those primarily involved in data analysis or machine learning. See the next section for insights into types of development.

The breakdown of languages is slightly different for those who use Python as their secondary language, with a little fewer developers using JavaScript (46%) but far more also using C/C++ (42%), Java (41%), and C# (24%).

Types of Python Development

To identify the most popular types of Python development (a.k.a. developer roles) and how they are combined, we asked two similar but different questions: “What do you use Python for?” with multiple answers, followed by a single-answer “What do you use Python for the most?”.

What do you use Python for? (multiple answers)

See all the results
See all the results
See all the results

Data analysis is as popular as web development with Python.

Web development is the only category with a large gap (54% vs 33%) separating those using Python as their main language vs as a supplementary language. For other types of development, the differences are far less significant.

Interesting fact

Various studies show that the number of Python developers is growing steadily year by year. The rapid growth of Python popularity can be explained by the fact that many people are starting to use Python for data science and machine learning. This is the fastest-growing segment of Python users.

Many Python developers wear multiple hats. We’ve identified the roles that they combine most often (not necessarily as their main ones):

The intersection of data analysis and machine learning was expected, but the overlaps between web development and data analysis / machine learning are definitely noteworthy.

What do you use Python for the most? (single answer)

See all the results
See all the results
See all the results

In this question, respondents could only select one option. At first glance, the results suggest that web development is a strong leader with 26%, beating Data analysis (18%) by a large margin. But if we take a closer look, there’s also Machine learning with 9%. If we bundle Data analysis and Machine learning together into a single ‘Data science’ category, this amounts to a stunning 27%.

Comparing the trends among those using Python as their main language vs a secondary language, web development has the biggest gap (29% vs 15%). For Data analysis and Machine learning, the difference is much smaller. Conversely, more DevOps and System administrators are using Python as a secondary language (13%) than as main language (8%).

26% 27% (18% + 9%)
Web developers Data scientists (Data Analysis + Machine Learning)

Interesting fact

In a similar survey that JetBrains ran in 2016, 38% of respondents identified as web developers and only 21% as data scientists.

There are as many Python web developers as Python data scientists.

Is data science taking Python by storm?

The most intriguing question in this survey concerned the ratio of web developers to data scientists in the Python world. We asked respondents to think about the ratio between the total number of Python web developers in the world and the total number of data scientists using Python. Respondents could answer based on their own experience, beliefs, and general ‘gut feeling’. Because in this same survey we explicitly asked about types of development, and the sample size is large enough to be statistically significant, we could compare and check if the community was right about the correct ratio. Here’s what we got:

What do you think is the ratio of these two numbers?

Web developers
:
Data scientists

As you can see, the most popular ratio is 5:1. You can also notice that a larger part of respondents (57%) thought there are more web developers than data scientists, while only 33% assumed the opposite.

Note: Percentages total 101%
because of rounding

Now, let’s revisit the types of development stats mentioned earlier. With 26% doing web development as their primary activity, and 18% primarily involved in data analysis + 9% primarily doing machine learning, the ratio is in fact 1:1! Only one in nine respondents guessed this correctly.

Interesting fact

Most respondents underestimated the total number of developers involved in data science. It's generally perceived that web development is the major application for Python. While this was true a couple of years ago, today the number of Python data scientists is growing rapidly and is already on par with the number of web developers.

Python 3 vs Python 2

We asked, “Which version of Python do you use the most?”. Python 3 is a strong leader with 75% and Python 2 is used as the main interpreter by only 25%.

Interesting fact

The primary use of Python 3 is growing rapidly. According to the latest research in 2016, 60% were using Python 2 compared with 40% for Python 3. Use of Python 2 is declining as it’s not actively developed, doesn’t get new features, and its maintenance is going to be stopped in 2020.

Python 3 Adoption

Note: The adoption data for Python 3 covering previous years are derived from publicly available surveys: 2014, 2015, and 2016.

Python 3

Python 2

75% 25% All Python
70% 30% Web developers
80% 20% Data scientists

Probable cause

A probable explanation is that some web developers still have lots of legacy code to maintain while transitioning to Python 3. On the other hand, many data analysts and machine learning specialists have joined the Python ecosystem just recently and went straight to the latest Python 3.

Another interesting finding is that only 70% of those mainly doing web development are using Python 3, while for data analysts this goes up to 77%, and for Machine learning specialists an even higher 83%.

Python Installation and Upgrade

See all the results

70% install Python from python.org or with OS-provided package managers like APT and Homebrew.

Python Frameworks, Libraries and Technologies

This section highlights the popularity of various Python frameworks, libraries and technologies that Python developers use.

What frameworks do you use in addition to Python? (multiple answers)

See all the results
See all the results
See all the results

Django is the most popular framework used by 41% of Python developers.

Scientific packages such as NumPy/Pandas/Matplotlib, taken together, are in close second with 39%. In terms of roles, Django was selected by 76% of web developers, but only by 31% of those involved primarily in data science. Curiously, 29% of web developers are using scientific libraries. This corroborates a strong overlap between the two roles.

What additional technology(s) do you use in addition to Python? (multiple answers)

See all the results
See all the results
See all the results

Jupyter Notebook is the most popular technology used together with Python.

This is expected given the large number of developers involved in data science. Docker trails it by only 2%, at 29%. Breaking this down by roles, Docker is used by 47% of those mostly involved in web development, but only by 23% of data scientists. Similarly, cloud platforms such as AWS, Google App Engine, Heroku and others are used twice as often by web developers than by data scientists.

Top Cloud Platform(s)

67%

AWS

29%

Google App Engine

26%

Heroku

23%

DigitalOcean

16%

Microsoft Azure

AWS is the most popular cloud platform used by 67% of those who selected Cloud platforms in the previous question. GAE, Heroku, and DigitalOcean fall behind AWS with far smaller shares.

13%
Other

We couldn’t list all the cloud platforms as answer options for this question, but the “Other” field collected 13% of all responses. The top “other” platforms, not included in main results included Linode, PythonAnywhere, OpenShift, and OpenStack.

Tools and Features for Python Development

We’ve identified the relative popularity of tools and features used to develop in Python: Code autocompletion, code refactorings, writing unit tests, and using virtual environments for Python projects occupy the top spots.

Other popular tools and features included SQL databases, VCS, and Python code debugging and linting.

NoSQL databases, Python profilers, and code coverage tools were some of the most rarely used.

Editors and IDEs

To identify the most popular editors and IDEs, we asked two questions: “What editors/IDEs have you considered for use in your Python development?” with multiple answers, and a single-answer “What is the main editor you use for your current Python development?” Here are the answers for the latter question as it shows actual editors and IDEs in use more precisely:

See all the results
See all the results
See all the results

Disclaimer: A number of steps were taken to eliminate bias and ensure that the survey was not slanted in favor of any specific tool mentioned in the survey. To learn more about the survey methodology and the channels used to distribute the survey, please refer to the Raw Data section

Based on more than 8,000 replies to this question, PyCharm with its two editions is the most popular tool for Python development, followed by Sublime, Vim, IDLE, Atom, and VS Code.

Web developers have slightly different editor preferences from data scientists. They prefer PyCharm Professional Edition, Sublime text and Vim much more than data scientists do, while data scientists clearly prefer PyCharm Community Edition, Jupyter Notebook and Spyder.

Top considered* Editors and IDEs used by Python development, broken down by web and scientific types of development:

Web Developers

47%
Sublime Text
39% Vim
32% Atom

Data Scientists

42% Jupyter Notebook
39% PyCharm Community Edition
26% Sublime Text

*We asked, “What editor(s)/IDE(s) have you considered for use in your Python development?” where respondents could choose multiple editors and IDEs.

Frequency of Editor Usage

Most use their editor daily, and about one in five does it every week.

Python Developer Profile

Employment status

Half of developers are employed full-time, a little over a quarter are students, while 13% are self-employed or freelancing.

Job Roles

For job roles, we provided for multiple answers, so the total is greater than 100%. About three-quarters of respondents identify as developers, and almost 1 in 5 double as data analysts, architects, or team leads. In “Others”, which collected a total of 9%, the top write-in answers included data scientist, DevOps, researcher, and teacher.

Experience in the IT Industry

22% 19% 21% 16% 22%
Less than 1 year 1–2 years 3–5 years 6–10 years 11+ years

The field we surveyed turned out rather diverse, with no clear leading categories.

There are just as many beginning Python developers as there are veterans.

Working in a Team vs Working Independently

Interestingly, three out of five developers work on independent projects.

Team Size

74% 16% 5% 2% 2%
2-7 people 8-12 people 13-20 people 21-40 people > 40 people

About three-quarters of developers who work in teams work in very small teams.

16% have up to 12 teammates, and only 9% working in mid-size or large teams.

Working on Projects

43% 35% 22%
Yes, I work on one main and several side projects Yes, I work on many different projects No, I only work on one project

The vast majority seem to be developing multiple different projects at the same time.

Age Ranges

Twenty-something was the prevalent age range among our respondents, with a quarter being in their thirties. Lots of young people also seem to be into Python.

Global Community

  • 18% United States
  • 13% India
  • 7% China
  • 6% United Kingdom
  • 5% Germany
  • 4% Brazil
  • 3% France
  • 3% Russia
  • 2% Poland
  • 2% Canada
  • 2% Australia
  • 2% Spain
  • 33% Others

We reached Python users living in 150+ different countries.
“Others” includes countries with fewer than 2%.

Operating Systems

49%

Windows

19%

Linux

15%

MacOS

17%

Other

Unfortunately, in this survey we didn’t ask respondents what operating systems they use for development. However, we did track what OS they were using to complete the survey, and we believe there’s a strong correlation between the two.

Around half of all respondents used Windows, while macOS and Linux accounted for 15% and 19%, respectively. That said, devices used to complete the survey may differ from one’s usual development environment.

Raw Data

Want to dig into the results yourself? Download the anonymized survey responses and see what you can find! Share your findings and conclusions mentioning @jetbrains and @ThePSF on Twitter with the #pythondevsurvey2017 hashtag.

Before dissecting these data, please note the following important information:

1

The data include responses only from official Python Software Foundation channels. After filtering out duplicate responses, the data-set includes all of the 9,500+ responses collected during October, 2017, via promoting the survey on python.org, the PSF blog, the PSF’s Twitter and LinkedIn accounts, official Python mailing lists, and Python-related subreddits. No product-, service-, or vendor-related channels were used, in order to prevent the survey from being slanted in favor of any specific tool or technology.

2

The data are anonymized, with no personal information or geolocation details. Moreover, to prevent 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 with you: the data-set, the survey questions, and all the survey logic, in English. We used different ordering methods for answer options (alphabetic, randomize, direct). The order the answer options used is specified in each question.

Get Python Developer Survey 2017 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 out an accurate landscape of the Python community!

Key Takeaways

1

The adoption rate of Python 3 is quickly growing and already at 75%, while Python 2 is used by only 25% of developers.

2

There are as many Python developers doing primarily data science as those focused on web development.

3

For 4 out of 5 developers using Python, it is their main language.

4

Half of all developers using Python as their main language also use JavaScript. Python is also used with HTML/CSS, SQL, Bash/Shell, C/C++ and Java.

5

Django, NumPy, pandas, and Matplotlib are the most popular frameworks and libraries among Python developers. Jupyter Notebook and Docker are the most popular technologies used together with Python. AWS is the most popular cloud platform.

6

PyCharm with its two editions is the most popular tool for Python development, followed by Sublime, Vim, IDLE, Atom, and VS Code.

Disclaimer: The Python Software Foundation doesn’t endorse any of the products, tools, or services mentioned in the survey and this report.

Thank you for your time!

Enjoyed going through the survey findings?
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@python.org.

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.