Python Developers Survey 2016: Findings

Recently we conducted a survey among more than 1,000 Python developers to identify the latest trends and gather insight into how the Python development world looks today. We’re excited to share some of these results with you.

Disclaimer: While we have a large sample size, we primarily used our own channels to promote this survey which naturally attracted a larger share of PyCharm users. To avoid inevitable bias, we’re not comparing the user base numbers for different code editors.

1

Working in a team vs Working independently

Interestingly, half of all respondents work in a development team most of the time, while another half works on projects independently.

Created with Highcharts 4.2.351%Work in a team45%Work on own project(s) independently4%Work as an external consult or trainerHighcharts.com
Created with Highcharts 4.2.380%Work in a company20%Work on their ownHighcharts.com

Working in a company vs Working on own project(s) independently

Roughly 80% said they’re working for a company while 20% work on their own.

Combining answers from the 2 questions above, we come to an interesting conclusion: 35% of developers who work for companies, most of the time work on project(s) independently. That’s huge. At the same time, only 8% of all respondents who don’t work in an organization do develop in teams.

2

Types of Python development

Most Python developers appear to be engaged in three types of development: Web (38%), general-purpose (22%), and curiously, scientific development and data analysis (21%). This correlates with results from other independent research showing that the number of scientific Python developers is growing steadily and is projected to catch up with web development in the foreseeable future.

Created with Highcharts 4.2.338%22%21%6%4%2%2%5%Web DevelopmentSoftware DevelopmentScientific/Data analysisSystem administrationTestingGames/EntertainmentNetwork ProgrammingOther0%10%20%30%40%50%Highcharts.com
3

Python Usage

75% of respondents named Python their main language for development as opposed to 25% using it as a supplementary language. This number grows year by year, showing that Python is becoming the language of choice for more and more developers.

Created with Highcharts 4.2.375%Main language25%Supplementary languageHighcharts.com

Python usage with other languages

61% of developers using Python as their main language also use JavaScript. That’s not a surprise, given that web development is the most popular development area. Next down the list, Java and C/C++ are in a virtual tie with 27% and 26%, respectively. Interestingly, 16% specified PHP as their secondary language.

The breakdown is slightly different for those who use Python as their secondary language, with fewer JavaScript developers but more using Java, C# and PHP.

With Python as main language

Created with Highcharts 4.2.3Values61%27%26%16%8%8%JavaScriptC/C++JavaPHPC#Ruby0%10%20%30%40%50%60%70%PHP: 16%Highcharts.com

With Python as secondary language

Created with Highcharts 4.2.3Values49%47%28%24%22%8%JavaScriptC/C++JavaPHPC#Ruby0%10%20%30%40%50%60%C/C++: 47%Highcharts.com
4

Python 2 vs Python 3

Respondents were asked which version of Python they mainly use. We’ve got a nice distribution that perfectly correlates with both external research and our own PyCharm internal statistics. 60% are using Python 2 while Python 3 is used by 40%.

Created with Highcharts 4.2.3Values60%72%40%40%Python 2Python 3Survey*Internal statistics**0%20%40%60%80%Highcharts.com

*In the survey we asked which version is used the most.

**In our internal statistics we have an intersection of versions as one person can use both versions together.

The user base of Python 3 is growing and we expect it to overtake Python 2 in the nearest future. Here’s our forecast based on several sources for Python 2 and Python 3 relative popularity:

Created with Highcharts 4.2.377%50%23%50%Python 2Python 3201420160%20%40%60%80%100%Highcharts.com

Note: Data points for 2013 and 2014 are taken from survey conducted by Dan Stromberg and bru's blog. Forecast for 2016 is based on linear regression. Confidence interval for predicted value is 30%-68% (0.95 CI).

5

Python Frameworks and Libraries

Django is the most popular framework among Python developers. No surprise here, seeing how Web development is so popular among Python users. Interestingly, 43% of respondents are using IPython, which clearly shows it’s being used not only for scientific purposes, but for general software development as well.

A large number of respondents also specified Flask as their framework of choice.

Created with Highcharts 4.2.3Values51%43%40%36%29%20%16%11%9%8%7%7%6%6%5%5%4%2%1%DjangoIPythonFlaskAnaconda / numpy / ma…Anaconda / numpy / matpoltlib / scipy and similarSQLAlchemyPillowPyQT/PyGTK/wxPythonTornadoSphinxTkinterGoogle App EngineBottlePygameweb2pyKivyPyramidCherryPyTwistedBuildout0%10%20%30%40%50%60%Highcharts.com

Application of scientific packages

Scientific packages such as anaconda, numpy, matplotlib and others are used by 36%. That correlates with the results for development types (21% of Python developers doing scientific development). Apparently, scientific packages are being used not only for scientific development but for web development, data analysis that partially fall into the software development category.

Created with Highcharts 4.2.327%Scientific orData Analysis22%Web Development19%Data analysis18%Software Development14%OtherHighcharts.com
6

Tools and Features for Python Development

One of the most intriguing questions asked developers to identify the tools and features they use to develop in Python. Code autocompletion, code refactorings, and the use of databases and VCS were name the most. Among other popular features are writing tests for Python projects, use of virtual environments, and Python code debugging and linting.

Often used features and tools

Created with Highcharts 4.2.375%19%6%46%43%12%53%30%17%69%13%18%38%44%18%54%23%23%40%36%23%48%28%24%Code autocompletionCode refactoringsDatabases and SQLVCSWriting testsVirtual environmentPython debuggerCode lintingOftenFrom time to timeNever or almost never0102030405060708090100Highcharts.com

Infrequently used features and tools

Created with Highcharts 4.2.3Values27%29%44%18%36%46%6%38%55%Running / debugging or editing codeCode coveragePython profilerOftenFrom time to timeNever or almost never0%10%20%30%40%50%60%Highcharts.com

Differences in use of editor features

We discovered a significant difference between PyCharm users and users of other editors. For example, PyCharm users use autocompletion more frequently, with 86% answering “Often” versus 60% for others. PyCharm users also use the debugger, do code refactorings and use virtual environments much more often. The only activity that users of other text editors engage in more frequently compared to PyCharm is “Running / debugging or editing code on remote machines”: 32% vs 23% answered “Often”, respectively.

Developers write tests for their code and use databases and SQL with about the same frequency, regardless of the editor they use.

Often use autocompletion

Created with Highcharts 4.2.3Values86%60%PyCharmOther Editors0%50%100%Highcharts.com

Edit code on remote machines

Created with Highcharts 4.2.3Values23%32%PyCharmOther Editors0%20%40%Highcharts.com
7

Frequency of Editor Usage

Our survey has shown that most of the respondents use their editor daily (80%). Only 16% said they use their editor weekly, and less than 5% do it less frequently.

Created with Highcharts 4.2.380%Daily16%Weekly3%Monthly1%Less frequentlyHighcharts.com
8

Key takeaways

  • A third of all Python developers employed by companies work on project(s) independently most of the time. At the same time, only 8% of all respondents who don’t work in an organization do develop in teams.
  • Most Python developers appear to be engaged in three types of development: Web (38%), general-purpose (22%), and curiously, scientific development and data analysis (21%).
  • Django is the top framework used by over half of Python developers, followed by IPython with 43%. Scientific packages such as anaconda, numpy, matplotlib and others are used by over a third, which correlates with the stats for development types.
  • Three quarters of all respondents named Python their main language for development, with one quarter using it as a supplementary language. This growing number shows that Python is becoming the language of choice for more and more developers.
  • 61% of those using Python as their main language also use JavaScript. The breakdown is slightly different for those who use Python as their secondary language, with fewer JavaScript developers but more using Java, C# and PHP.
  • While Python 2 occupies 60% of the market to Python 3’s 40%, the latter is growing and expected to overtake the former in 2016-2017.
  • Code autocompletion, code refactorings, and the use of databases and VCS are the most popular features and tools Python developers use often, along with writing tests, use of virtual environments, and Python code debugging and linting.
  • Most of the respondents use their editor daily, with about one fifth opening it weekly or less often.

If there's anything you'd like to discuss with us concerning this infographic,
please email us at research-tools@jetbrains.com