JetBrains в сотрудничестве с Python Software Foundation в шестой раз провели ежегодный опрос Python-разработчиков. В октябре-декабре 2022 года более 23 000 разработчиков и поклонников Python из почти 200 стран и регионов приняли участие в исследовании и помогли нам определить текущее состояние языка и связанной с ним экосистемы.
Основной
Второстепенный
37%
40%
JavaScript
36%
38%
HTML/CSS
34%
33%
SQL
31%
33%
Bash/Shell
29%
30%
C/C++
19%
20%
Java
11%
10%
TypeScript
11%
11%
C#
9%
9%
PHP
8%
9%
Go
7%
6%
Rust
6%
5%
R
4%
4%
Visual Basic
3%
3%
Kotlin
86% Python-разработчиков используют помимо Python и другие языки. Чаще всего это JavaScript, HTML/CSS и SQL.
37%
38%
JavaScript
37%
32%
HTML/CSS
35%
28%
SQL
32%
22%
Bash/Shell
27%
37%
C/C++
18%
28%
Java
10%
17%
TypeScript
10%
18%
C#
9%
14%
PHP
8%
11%
Go
6%
5%
R
6%
9%
Rust
4%
5%
Visual Basic
3%
6%
Kotlin
45%
50%
SQL
34%
66%
JavaScript
34%
41%
Bash/Shell
33%
60%
HTML/CSS
32%
19%
C/C++
Статистика по веб-разработке основана на ответах респондентов, которые выбрали веб-разработку, отвечая на вопрос «С какой целью вы используете Python чаще всего?».Соответственно, Data Science относится к тем, кто в ответе на тот же вопрос, выбрал анализ данных или машинное обучение.
Вполне ожидаемо у веб-разработчиков наибольшей популярностью пользуются JavaScript и HTML/CSS, а специалисты по Data Sciene предпочитают SQL.
Мы спрашивали, с какой целью люди используют Python, какими видами разработки они занимаются и как совмещают разные варианты применения языка.
И для рабочих, и для личных проектов
Для личных, образовательных и не связанных с основной работой проектов
Для работы
Каждый пятый респондент использует Python только для рабочих проектов, а чуть больше половины — и для личных проектов тоже.
51%
51%
Анализ данных
43%
45%
Веб-разработка
36%
36%
Машинное обучение
34%
36%
DevOps/системное администрирование/написание скриптов автоматизации
30%
31%
Программирование веб-парсеров/скраперов/сборщиков
53%
44%
Анализ данных
45%
31%
Веб-разработка
37%
29%
Машинное обучение
35%
34%
DevOps/системное администрирование/написание скриптов автоматизации
30%
28%
Программирование веб-парсеров/скраперов/сборщиков
Анализ данных
Веб-разработка
Машинное обучение
DevOps/системное администрирование/написание скриптов автоматизации
Программирование веб-парсеров/скраперов/сборщиков
Образовательные цели
Тестирование ПО / написание автоматических тестов
Прототипирование ПО
Разработка десктопных приложений
Сетевое программирование
Компьютерная графика
Разработка игр
Разработка для встраиваемых систем
Мобильная разработка
Разработка мультимедийных приложений
Другое
22%
23%
Веб-разработка
18%
17%
Анализ данных
12%
11%
Машинное обучение
10%
10%
DevOps/системное администрирование/написание скриптов автоматизации
9%
9%
Образовательные цели
Те, для кого Python — основной язык, чаще всего используют его для веб-разработки (23%).
В качество второстепенного языка Python чаще всего используют для анализа данных (16%) и DevOps (14%), а веб-разработка остается на третьем месте (13%).
На вопрос отвечали только те, кто занимается анализом данных и машинным обучением.
Около трети Python-разработчиков, занимающихся анализом данных и машинным обучением, считают себя специалистами по Data Science.
2022
2021
2020
2019
2018
2017
Более 90% респондентов используют Python 3, поэтому можно сказать, что эта версия
уже стала общепринятой.
Доля пользователей Python 2 в последние три года остается неизменной и не превышает 7%. Тем не менее кое-кто еще использует версию 2 для анализа данных (29%), компьютерной графики (24%) и DevOps (23%).
54%
29%
Анализ данных
46%
19%
Веб-разработка
38%
13%
Машинное обучение
36%
23%
DevOps/системное администрирование/написание скриптов автоматизации
32%
13%
Программирование веб-парсеров/скраперов/сборщиков
45%
16%
Python 3.10
23%
35%
Python 3.9
17%
27%
Python 3.8
9%
13%
Python 3.7
4%
7%
Python 3.6
Обратите внимание, что опрос проводился с 14 октября по 14 ноября 2022 года, а Python 3.11 вышел только 24 октября 2022 года.
Python-разработчиков ответили, что не обновляют версию Python, а 6% сообщили, что обновлениями занимается другой человек.
респондентов, использующих Windows, скачивают Python с python.org, а пользователи macOS и Linux чаще всего используют пакеты, предоставляемые операционной системой, Python.org, Docker-контейнеры и pyenv.
Enthought выбрали менее 0,5% респондентов, поэтому он был включен в «Другое».
Poetry постепенно набирает популярность в качестве инструмента для изоляции окружения Python. С 2020 года он прибавил 6 процентных пунктов. Инструмент выглядит перспективно, и некоторые его возможности уже были реализованы в базовых средствах Python.
Среди веб-фреймворков для Python по-прежнему с большим отрывом лидируют Flask, Django и FastAPI.
Все остальные, вместе взятые, едва опережают обладателя третьего места. FastAPI за год прибавил 4 процентных пункта — теперь его использует каждый четвертый Python-разработчик.
Подробнее об использовании Django можно узнать из результатов опроса Django-разработчиков, который мы провели совместно с Django Software Foundation в 2022 году.
Хотя тройка лидеров за год не изменилась, Requests уступил httpx 4 процентных пункта.
В крупных компаниях чаще выполняют юнит-тестирование в Python-проетках и шире используют pytest и mock, чем в небольших компаниях.
SQLAlchemy
Django ORM
Чистый SQL
SQLObject
Peewee
Tortoise ORM
PonyORM
Dejavu
Другое
Не разрабатываю базы данных
MS SQL Server и Oracle Database вдвое популярнее у специалистов по Data Science, чем у веб-разработчиков, а вот большинство других баз данных веб-разработчики используют чаще.
31% Python-разработчиков используют инструменты для работы с большими данными — это на 6 процентных пунктов больше, чем в 2021 году. Среди специалистов по Data Science их целых 42%.
Python-разработчиков используют облачные платформы — на 5 процентных пунктов больше, чем в прошлом году.
На вопрос отвечали только те, кто пользуется облачными платформами.
Африканские Python-разработчики чаще всего (39%) используют облачную платформу Heroku. Использование других языков также влияет на выбор платформы.
Как и следовало ожидать, пользователи C# используют Microsoft Azure почти так же часто, как AWS. Активнее всех облачными платформами пользуются Go- и TypeScript-разработчики — с облаком работают 80% из них.
47%
48%
В контейнерах
41%
41%
В виртуальных машинах
27%
27%
Используя платформу как услугу
27%
24%
Внесерверная обработка
2%
2%
Другое
На вопрос отвечали только те, кто пользуется облачными платформами.
53%
56%
Локально с помощью virtualenv
41%
40%
В контейнерах Docker
20%
21%
В виртуальных машинах
19%
17%
В удаленных средах разработки
18%
18%
С помощью интерпретатора локальной системы
На вопрос отвечали только те, кто пользуется облачными платформами.
Локальная разработка с помощью virtualenv продолжает терять популярность: с 2020 года ее доля сократилась на 7 процентных пунктов. Чаще всего ее используют респонденты, которые занимаются веб-разработкой на Python.
Использование сред удаленной разработки медленно, но верно растет: на 3 процентных пункта по сравнению с 2020 годом. Чаще всего они используются для машинного обучения, сетевого программирования и DevOps.
Linux
Windows
macOS
BSD
Другое
По сравнению с прошлым годом популярность macOS и Windows осталась примерно на том же уровне, а вот использование Linux снизилось на 4 процентных пункта.
Популярность GitHub Actions продолжает расти: теперь его используют больше трети Python-разработчиков.
В целом использование CI-инструментов также выросло на 4 процентных пункта по сравнению с 2021 годом.
респондентов используют инструменты непрерывного управления. Самым популярным из них оказался Ansible, а 11% опрошенных предпочитают собственные решения.
Sphinx
MKDocs
Doxygen
Другое
Я не использую инструменты для создания документации
39% Python-разработчиков используют инструменты для создания документации. Первое место среди таких инструментов, как и в прошлом году, занимает Sphinx.
используют автодополнение в редакторе
используют виртуальные окружения Python для своих проектов
производят рефакторинг кода
используют системы контроля версий
используют линтинг кода
пишут тесты для своего кода
используют базы данных SQL
используют отладчик
используют опциональное указание типов
запускают, отлаживают или редактируют код на удаленной машине
используют инструменты непрерывной интеграции
используют баг-трекеры
используют инструменты анализа покрытия кода
используют профилировщик Python
используют базы данных NoSQL
Две самых распространенных IDE для Python-разработки — PyCharm и VS Code: их в общей сложности выбирают две трети респондентов.
Лишь 14% респондентов пользуются только одной IDE или редактором, а подавляющее большинство (61%) используют одновременно 2-3 IDE или редактора. 26% Python-разработчиков выбирают в качестве дополнительной IDE PyCharm, четверть — VS Code.
Чтобы определить, какие IDE и редакторы наиболее популярны, мы задали вопрос, в котором можно было выбрать только один вариант ответа.
40%
44%
VS Code
25%
37%
PyCharm
3%
4%
Vim
2%
2%
Emacs
2%
3%
Sublime Text
Статистика по веб-разработке основана на ответах респондентов, которые выбрали веб-разработку, отвечая на вопрос «С какой целью вы используете Python чаще всего?».Соответственно, Data Science относится к тем, кто в ответе на тот же вопрос, выбрал анализ данных или машинное обучение.
1
2
3
4
5+
Python-разработчиков используют инструменты изолирования окружения для разных проектов. 3 самых распространенных инструмента — venv, virtualenv и Conda.
С прошлого года число разработчиков, использующих виртуальные среды в контейнерах, выросло на 5 процентных пунктов.
76%
81%
pip
29%
32%
venv (стандартная библиотека)
26%
30%
Контейнеры (например, через Docker)
23%
22%
Conda
18%
23%
virtualenv
Трока лидеров не изменилась, но их популярность понемногу снижается. Тем временем доля Poetry выросла на 2 процентных пункта.
Число тех, кто использует модуль стандартной библиотеки venv, выросло с 2021 года на 5 процентных пунктов.
69%
76%
requirements.txt
33%
26%
pyproject.toml
25%
22%
poetry.lock
15%
16%
pipfile.lock
11%
11%
Conda environment.yml
Доля использования requirements.txt в качестве хранилища информации о зависимостях приложения снизилась с прошлого года на 7 процентных пунктов.
Одновременно доля pyproject.toml на столько же увеличилась, и теперь его использует треть Python-разработчиков.
Над pyproject.toml шла активная работа, чтобы обеспечить аналогичный набор возможностей, и теперь его напрямую поддерживает pip.
Python-разработчиков используют инструменты для управления версиями зависимостей приложения. Чаще всего для этого используются Poetry, pipenv и pip-инструменты — их доли примерно равны.
Python-разработчиков по-прежнему обновляют версии зависимостей вручную — это на 5 процентных пунктов меньше, чем в прошлом году.
poetry
pipenv
pip-tools
Другое
Нет
На вопрос отвечали только те, кто использует инструменты для управления точными версиями зависимостей приложения.
Доля PyPI снизилась на 7 процентных пунктов, а доли остальных способов установки пакетов остались примерно такими же, как в 2021 году.
респондентов разрабатывают приложения на Python. Самые популярные инструменты в этой сфере — Setuptools, Wheel, build и Poetry.
На вопрос отвечали только те, кто разрабатывает приложения.
Хотя больше половины респондентов разрабатывают приложения, лишь 41% из них публиковали эти приложения в репозиториях пакетов.
PyPI
Частный Python Package Index
Внутреннее зеркало PyPI
conda-forge
Другое
На вопрос отвечали только те, кто публиковал пакеты Python-приложений.
респондентов уже разрабатывали и публиковали Python-библиотеки. Самые популярные решения здесь — те же, что и в разработке Python-приложений.
тех, кто разрабатывает собственные Python-библиотеки, уже публиковали их, в основном с помощью PyPI или частного Python Package Index.
На вопрос отвечали только те, кто разрабатывает Python-библиотеки.
59%
71%
Setuptools
39%
42%
Wheel
30%
26%
build
24%
20%
Poetry
8%
5%
conda-build
PyPI
Частный Python Package Index
Внутреннее зеркало PyPI
conda-forge
Другое
На вопрос отвечали только те, кто публиковал пакеты Python-библиотек.
Интересно, что доля PyPI по сравнению с прошлым годом сократилась на 9 процентных пунктов, при этом популярность внутренних зеркал PyPI выросла на 5 процентных пунктов.
Работаю над своими проектами самостоятельно
Работаю в команде
Я независимый консультант/инструктор
Работаю над одним главным и несколькими связанными с ним проектами
Работаю над несколькими разными проектами
Работаю только над одним проектом
На вопрос отвечали только те, кто работает в штате.
2–7
8–12
13–20
21–40
Более 40
На вопрос отвечали только те, кто работает в штате.
На вопрос отвечали только те, кто работает в штате.
На вопрос отвечали только те, кто работает в штате.
На этот вопрос отвечали только те, кто работает.
18–20
21–29
30–39
40–49
50–59
60+
Менее 1 года
1–2 года
3–5 лет
6–10 лет
11 лет и больше
Менее 1 года
1–2 года
3–5 лет
6–10 лет
11 лет и больше
Страны/регионы, которые указали меньше 1% респондентов, объединены в группу «Другое».
Хотите проанализировать данные самостоятельно? Скачайте обезличенные результаты опроса и найдите нужные вам сведения. Делитесь своими открытиями и мыслями в Twitter с хештегом #pythondevsurvey. Не забудьте упомянуть @jetbrains и @ThePSF.
Любой из следующих факторов:
Сочетание по крайней мере двух из следующих факторов:
JetBrains и Python Software Foundation благодарят всех, кто участвовал в опросе. Вы помогли нам составить актуальное представление об экосистеме Python.
Поддержите Python Software Foundation. PSF — некоммерческая организация, существующая исключительно на средства, внесенные ее членами, спонсорами и сообществом.
Надеемся, наш отчет был вам полезен. Поделитесь результатами исследования с друзьями и коллегами!