Посмотрите результаты опросов 2020, 2019, 2018 и 2017 годов.

Использование Python

Python в качестве основного и второстепенного языка

Последние 4 года доля респондентов, называющих Python своим основным языком, почти не меняется — 84-85%.

Использование Python с другими языками100+

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%
Все результаты

Среди языков, используемых вместе с Python, самый популярный — JavaScript. Однако среди разработчиков, назвавших Python второстепенным, с JavaScript делит популярность C/C++. HTML/CSS, Bash/Shell и SQL тоже используются довольно широко: на каждом их них пишут больше трети Python-разработчиков.

Инструменты для веб-разработки и Data Science100+

Data Science
Веб-разработка
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%

Статистика по веб-разработке основана на ответах респондентов, которые выбрали веб-разработку, отвечая на вопрос «С какой целью вы используете Python чаще всего?».Соответственно, Data Science относится к тем, кто в ответе на тот же вопрос, выбрал анализ данных или машинное обучение.

Как и ожидалось, среди веб-разработчиков популярными языками, используемыми совместно с Python, стали JavaScript (69%) и HTML/CSS (60%), в то время как те, кто занимается анализом данных, чаще выбирают SQL (42%).Кроме того, среди разработчиков, занятых анализом данных, доля тех, кто не использует никакие дополнительные языки, втрое выше, чем среди веб-разработчиков.

Для чего используют Python

Мы спрашивали, с какой целью люди используют Python, какими видами разработки они занимаются и как совмещают разные варианты применения языка.

Для чего вы используете Python?

Использование Python в 2020 и 2021 годах100+

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%

За последние годы существенных изменений в сценариях использования Python не произошло. Самыми распространенными областями остаются анализ данных, машинное обучение, веб-разработка и DevOps.

Использование Python в качестве основного и второстепенного языка100+

Python — основной язык
Python — второстепенный язык
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%

Насколько активно вы занимаетесь следующими видами деятельности?

основная деятельность
второстепенная деятельность
хобби
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%Веб-разработкаАнализ данныхМашинное обучениеТестирование ПО / написание автоматических тестовПрототипирование ПОDevOps/системное администрирование/написание скриптов автоматизацииОбразовательные целиРазработка десктопных приложенийРазработка для встраиваемых системСетевое программированиеМобильная разработкаРазработка мультимедийных приложенийКомпьютерная графикаПрограммирование веб-парсеров/скраперов/сборщиковРазработка игрДругое

С какой целью вы используете Python чаще всего?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%

Четверть разработчиков, для которых Python — основной язык, используют его в первую очередь для веб-разработки. Среди тех, кто назвал Python второстепенным языком, веб-разработка является основной деятельностью лишь для 12%.

Что интересно, доля разработчиков, указавших анализ данных в качестве основной сферы использования Python, примерно одинакова и среди тех, для кого это основной язык программирования (17%), и среди тех, для кого он второстепенный (16%).

Вы считаете себя дата-сайентистом?

Нет
Да
Другое
66%29%5%

На вопрос отвечали только те, кто занимается анализом данных и машинным обучением.

Лишь 29% Python-разработчиков, занятых анализом данных и машинным обучением, считают себя специалистами по Data Science.

Версии Python

Python 3 и Python 2

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

Доля пользователей Python 2 сокращается в среднем на 5 процентных пунктов в год, и сейчас его используют лишь 5 разработчиков из 100.

Интересно, что, по сравнению с Python 3, Python 2 чаще применяется для создания компьютерной графики, игр и мобильной разработки.

Области применения разных версий языка100+

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

Python 3.5 или более ранняя2%Python 3.67%Python 3.713%Python 3.827%Python 3.935%Python 3.1016%

Установка и обновление Python100+

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

Enthought выбрали менее 0,5% респондентов, поэтому он был включен в «Другое».

Больше половины пользователей Windows скачивают Python с сайта Python.org, а среди пользователей Linux так делает лишь треть. Неудивительно, что пользователи Linux и macOS чаще всего устанавливают и обновляют Python, используя возможности операционной системы. В то же время у пользователей macOS довольно большой популярностью пользуются pyenv и контейнеры Docker.

Способы изоляции окружения100+

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

Специальные инструменты для изоляции окружения Python используют 75% Python-разработчиков.Интересно, что самым популярным инструментом у разработчиков, использующих Jupyter-ноутбуки (50%), является Conda, а остальные предпочитают Virtualenv и Docker.

Фреймворки и библиотеки

Веб-фреймворки100+

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

Flask, Django и FastAPI остаются самыми популярными веб-фреймворками для Python. FastAPI, выпущенный в конце 2018 года, демонстрирует самый быстрый рост: его доля по сравнению с прошлым годом увеличилась на 9 процентных пунктов. В то же время доля пользователей Flask по сравнению с 2020 годом уменьшилась на 5 процентных пунктов.

Подробнее об использовании фреймворка Django можно узнать из результатов опроса Django-разработчиков, который мы провели совместно с Django Software Foundation в 2021 году.

Фреймворки и библиотеки для анализа данных100+

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

10% Python-разработчиков используют одновременно 7 и более фреймворков и библиотек для Data Science, а половина — не больше двух.

Другие фреймворки и библиотеки100+

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

Большинство остальных фреймворков более популярны среди веб-разработчиков, чем среди специалистов по Data Science, которые в основном используют Tkinker и PyQT.

Фреймворки для юнит-тестирования100+

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

Популярность различных фреймворков для юнит-тестирования Python за год почти не изменилась.

Их используют лишь 56% соло-разработчиков, зато в компаниях численностью от 5000 сотрудников ими пользуются 75% респондентов.

ORM100+

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

SQLAlchemy — самая популярная ORM среди пользователей баз данных.

Интересно, что 52% пользователей Redis используют ORM Django, хотя в среднем ею пользуются менее трети Python-разработчиков. А еще стоит отметить, что 20% пользователей Amazon Redshift используют SQLObject, в то время как ее доля среди всех разработчиков меньше 5%.

Базы данных100+

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

Среди специалистов по Data Science базами данных пользуются 80%, среди веб-разработчиков — 98%.

Доля пользователей PostgreSQL среди веб-разработчиков на 32 процентных пункта больше, чем среди тех, кто занят Data Science. Доля пользователей Redis больше на 25 процентных пунктов, а доля пользователей SQLite — на 12 процентных пунктов. В то же время специалисты по Data Science вдвое чаще, чем веб-разработчики, используют Oracle Database.

Инструменты для работы с большими данными100+

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

Распределение ответов по инструментам для работы с большими данными осталось примерно таким же, как в прошлом году. В целом специалисты по Data Science используют их на 13 процентных пунктов чаще, чем другие разработчики, а Apache Spark и Dask у них популярнее вдвое.

Облачные платформы

61%

Python-разработчиков используют облачные платформы.

Популярные облачные платформы100+

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

На вопрос отвечали только те, кто пользуется облачными платформами.

Интересно, что пользователи Visual Basic, C# и C/C++ используют AWS примерно вдвое реже, чем Python-разработчики в целом.

Как вы запускаете код в облаке?100+

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

На вопрос отвечали только те, кто пользуется облачными платформами.

Популярность виртуальных машин продолжает снижаться. В 2018 году их доля составляла 47%, это был самый распространенный вариант. Сегодня же их использует лишь 41% Python-разработчиков.

Как вы разрабатываете облачные приложения?100+

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

На вопрос отвечали только те, кто пользуется облачными платформами.

Среди тех, кто занят веб-разработкой, DevOps и прототипированием ПО, чрезвычайно популярна локальная разработка на Python с использованием virtualenv (61-65%). Docker-контейнерами пользуются в первую очередь веб-разработчики (54%).

Виртуальные машины часто выбирают те, кто занимается DevOps, машинным обучением и сетевым программированием (26-27%). Что интересно, те, кто работает в DevOps и машинном обучении, также чаще других используют среды удаленной разработки.

Инструменты

Операционная система100+

Linux63%Windows58%macOS25%BSD2%Другое1%

По сравнению с 2020 годом популярность Linux и macOS снизилась на 5 процентных пунктов, а использование Windows соответственно выросло на 10 процентных пунктов.

Системы непрерывной интеграции (CI)100+

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

GitHub Actions появилась в 2018 году и быстро набрала популярность. Сегодня она лидирует в списке CI-систем: ею пользуется почти треть Python-разработчиков.

Еще одна CI-система, демонстрирующая рост, — Gitlab CI: ее доля выросла с 2018 года на 4 процентных пункта. А вот Travis CI быстро теряет популярность: снижение на 13% по сравнению с 2018 годом. Jenkins/Hudson также потеряла 8 процентных пунктов за три года.

36%

Python-разработчиков используют инструменты для создания документации. Самый популярный из них — Sphinx.

Инструменты для создания документации100+

Инструменты и функциональность для Python-разработки

Хотя бы иногда
Никогда или почти никогда
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%используют автодополнение в редакторепроизводят рефакторинг кодаиспользуют системы контроля версийиспользуют виртуальные окружения Python для своих проектовиспользуют линтинг кодапишут тесты для своего кодаиспользуют базы данных SQLиспользуют опциональное указание типовиспользуют отладчикзапускают, отлаживают или редактируют код на удаленной машинеиспользуют инструменты непрерывной интеграциииспользуют баг-трекерыиспользуют инструменты анализа покрытия кодаиспользуют профилировщик Pythonиспользуют базы данных NoSQL

Среди тех, для кого Python основной язык, доля использующих профилировщики Python и инструменты анализа покрытия кода больше на 8 процентных пунктов, а доля использующих виртуальные окружения Python на 10 процентных пунктов больше, чем среди разработчиков, для которых Python второстепенный язык.

Редакторы

Общая доля редакций PyCharm Community и Professional составляет 31% — почти столько же, сколько в прошлом году. Доля VS Code выросла за год на 6 процентных пунктов.

Интересно, что PyCharm и VS Code одинаково популярны среди веб-разработчиков (39%), в то время как специалисты по Data Science чаще (на 9 процентных пунктов) используют VS Code в качестве основной IDE.

Основная IDE/редактор100+

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

Чтобы определить, какие IDE и редакторы наиболее популярны, мы задали вопрос, в котором можно было выбрать только один вариант ответа.

Data Science и веб-разработка100+

Data Science
Веб-разработка
36%/39%27%/39%5%/7%2%/1%2%/2%2%/2%2%/3%21%/3%

Статистика по веб-разработке основана на ответах респондентов, которые выбрали веб-разработку, отвечая на вопрос «С какой целью вы используете Python чаще всего?».Соответственно, Data Science относится к тем, кто в ответе на тот же вопрос, выбрал анализ данных или машинное обучение.

Как вы впервые узнали о своей основной IDE/редакторе?

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

Чаще всего Python-разработчики узнавали об IDE, которая стала для них основным инструментом, от друзей или коллег, во время обучения, а также через поиск в интернете.

Лишь 1% респондентов узнали о своих инструментах из рекламы.

57% пользователей Jupyter-ноутбуков впервые узнали о них в школе, в университете или на онлайн-курсах. Среди всех участников опроса такие варианты ответа выбрали 25%.

Количество используемых IDE/редакторов

116%237%325%413%5 и более8%

VS Code, Jupyter-ноутбуки и PyCharm чаще всего используются в дополнение к основной IDE: каждый из этих вариантов выбрали более 20% Python-разработчиков.

Частота использования основной IDE/редактора

Ежедневно83%Каждую неделю13%Каждый месяц2%Реже2%

IDE/редакторы, используемые в дополнение к основной IDE/редактору100+

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

VS Code, Jupyter-ноутбуки и PyCharm чаще всего используются в дополнение к основной IDE: каждый из этих вариантов выбрали более 20% Python-разработчиков.

Те, для кого основная IDE — Jupyter-ноутбук, в четыре раза чаще других Python-разработчиков также используют Spyder.

Улучшение Python

Знаете ли вы?

В июне 2021 года Python Software Foundation пригласили разработчика, который бы на постоянной основе занимался развитием языка и поддержкой сообщества.

Им стал Core-разработчик Лукаш Ланга. Он помогает разобраться с нерешенными задачами, определить приоритетные направления развития проекта, изучает другие важные вопросы.

Что вы думаете о новой
должности приглашенного разработчика?

23% Python-разработчиков уже знают о приглашенном разработчике, и 91% из них считают, что это хорошая идея.

Более того, 30% тех, кто в курсе новшества, уже видят его эффект.

Как пользователи языка сообщают об ошибках

Только 19% пользователей Python когда-либо сообщали о найденных ошибках. Что интересно, сайт bugs.python.org — не самый распространенный способ сделать это. Почти вдвое больше программистов предпочитают задать вопрос в другом месте или создать пул-реквест на GitHub.

Из тех, кто когда-либо сообщал о ошибках, 73% отметили, что проблема была решена, и лишь 7% заявили, что им так никто и не ответил.

Вы пробовали сообщать об ошибках?

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

Была ли проблема решена?

47%26%18%7%3%

На вопрос отвечали только те, кто когда-либо сообщал об ошибках.

Пакеты Python

63%

Python-разработчиков используют контейнеры, а 59% из них используют в контейнере виртуальное окружение.

Вы используете в контейнерах виртуальное окружение?

Нет, я не использую в контейнерах виртуальное окружение
Нет, я не использую контейнеры
Да, я использую в контейнерах виртуальное окружение
37%37%26%

Какие инструменты для работы с пакетами Python
вы используете напрямую?100+

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

Вы используете модуль стандартной библиотеки venv?100+

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

Зависимости приложения

45% Python-разработчиков используют те или иные инструменты для закрепления версии зависимостей приложения. Чаще всего они хранятся в файле requirements.txt — этот способ используют три четверти разработчиков.

Используете ли вы какие-либо инструменты для управления точными версиями зависимостей приложения?

Нет
Да
55%45%

В каком формате хранится информация о зависимостях приложения?100+

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

На вопрос отвечали только те, кто использует инструменты для управления точными версиями зависимостей приложения.

Используете ли вы какие-либо автоматические сервисы для обновления версий зависимостей приложения?100+

24%10%6%2%65%

Какие инструменты вы используете для управления зависимостями приложения?100+

poetry27%pipenv26%pip-tools26%Другое4%Нет33%

На вопрос отвечали только те, кто использует инструменты для управления точными версиями зависимостей приложения.

Установка пакетов

90% разработчиков заявили, что для установки пакетов Python они используют pip. Большинство получает пакеты через Python Package Index.

Откуда вы скачиваете пакеты?100+

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

Какие инструменты вы используете для установки пакетов?100+

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

Python-разработчиков говорят, что разрабатывают приложения. Самый популярный инструмент для этой цели — Setuptools, его используют 46% опрошенных.

Какие инструменты вы используете для разработки
приложений на Python?100+

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

На вопрос отвечали только те, кто разрабатывает приложения.

Хотя больше половины Python-разработчиков разрабатывают приложения, лишь 40% из них публиковали эти приложения в репозиториях пакетов.

Какие инструменты вы используете для создания пакетов
Python-библиотек?100+

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

На вопрос отвечали только те, кто разрабатывает Python-библиотеки.

34% респондентов разрабатывают Python-библиотеки. Для создания пакетов большинство из них (71%) использует Setuptools.

Что интересно, лишь 27% тех, кто разрабатывает библиотеки, уже публиковали их в репозиториях пакетов.

Где вы публиковали свои пакеты
Python-библиотек?100+

На вопрос отвечали только те, кто публиковал пакеты Python-библиотек.

Python Package Index — самое популярное место для публикации пакетов разработанных библиотек и приложений. Private PyPI используется примерно вдвое реже.

Демография

В команде vs самостоятельно

Работа над проектами

Статус занятости

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

Размер компании

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

На вопрос отвечали только те, кто работает в штате.

Размер команды

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

На вопрос отвечали только те, кто работает в штате.

Сфера деятельности компании

41%7%7%5%4%4%3%
Все результаты

На вопрос отвечали только те, кто работает в штате.

Целевая отрасль

51%4%3%3%3%3%3%
Все результаты

На вопрос отвечали только те, кто работает в штате.

Рабочая роль100+

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

На этот вопрос отвечали только те, кто работает.

Возраст

18–2010%21–2938%30–3929%40–4913%50–596%60 и старше3%

Опыт программирования на Python

Менее 1 года23%1–2 года23%3–5 лет29%6–10 лет15%11 лет и больше10%

Опыт профессионального программирования

Менее 1 года36%1–2 года19%3–5 лет19%6–10 лет11%11 лет и больше15%

Укажите свою страну или регион

Страны/регионы, которые указали меньше 1% респондентов, объединены в группу «Другое».

17%9%7%6%5%5%4%3%3%3%2%2%2%2%
Все результаты

Исходные данные и методология

Хотите проанализировать данные подробнее? Скачайте обезличенные результаты опроса и найдите нужные вам сведения. Делитесь своими открытиями и мыслями в Twitter с хештегом #pythondevsurvey. Не забудьте упомянуть @jetbrains и @ThePSF.

Прежде чем анализировать данные самостоятельно, обратите внимание:

Набор данных включает в себя только ответы, полученные через официальные каналы Python Software Foundation. После того как мы исключили дубликаты и ненадежные ответы, в наборе данных осталось более 23 000 ответов, собранных с 11 октября по 6 декабря 2021 года за счет продвижения опроса на сайте python.org, в блоге PSF, на страницах PSF в Twitter и LinkedIn, через официальные рассылки Python и связанные с Python сабреддиты. Чтобы избежать искажения результатов в пользу определенного инструмента или технологии, для сбора ответов не использовались каналы, связанные с какими-либо продуктами, сервисами и поставщиками.

Данные полностью анонимны и не содержат персональных данных респондентов и информации об их местонахождении. Чтобы исключить вероятность идентификации респондентов по их комментариям, мы удалили все ответы на открытые вопросы.

Чтобы вам было проще понять логику опроса, мы делимся набором данных, вопросами и всей логикой анкеты. Мы использовали разные способы упорядочивания вариантов ответов (алфавитный, случайный и прямой). Порядок ответов указан для каждого вопроса.

Критерии исключения ответов

  • Возраст 17 лет или меньше.
  • Респондент не дошел до вопроса «Как долго вы профессионально занимаетесь программированием?» на третьей странице опроса.
  • Возраст менее 21 года, а опыт профессионального программирования более 11 лет.
  • Слишком много одиночных ответов на вопросы с возможностью выбора нескольких ответов (за исключением ответов «Никакие», «Нет»).
  • Несколько ответов с одного адреса электронной почты (для каждого адреса мы сохранили только один ответ).
  • Сходные ответы с одного IP-адреса.

Сочетание по крайней мере двух из следующих факторов:

    • Используется более 16 языков программирования.
    • Более 9 рабочих ролей.
    • Более 11 областей использования («Для чего вы используете Python?»).
    • Выбранная страна/регион находится в верхней части списка стран/регионов, а не среди самых распространенных стран/регионов, при этом отличается от страны/региона, определенного по IP-адресу.
    • Сочетание рабочих ролей CEO и «Техническая поддержка».
    • CEO и возраст менее 21 года.
    • В целом слишком много выбранных ответов (например, респондент использует практически все фреймворки для Data Science, веб-разработки, упаковки и т. п.).
    • Ответы даны слишком быстро (менее 6 секунд на вопрос).

JetBrains и Python Software Foundation благодарят всех, кто участвовал в опросе. Вы помогли нам составить актуальное представление об экосистеме Python.

Поддержите Python Software Foundation. PSF — некоммерческая организация, существующая исключительно на средства, внесенные ее членами, спонсорами и сообществом.

Посмотрите результаты опросов 2020, 2019, 2018 и 2017 годов.

Читайте отчеты о других исследованиях JetBrains.

Спасибо, что уделили время!

Надеемся, наш отчет был вам полезен. Поделитесь результатами исследования с друзьями и коллегами.

Примите участие в наших опросах:

Если у вас есть вопросы об этом исследовании или предложения для новых опросов, напишите нам по адресу surveys@jetbrains.com или psf@python.org.