JetBrains в сотрудничестве с Python Software Foundation в пятый раз провели ежегодный опрос Python-разработчиков. Осенью 2021 года более 23 000 разработчиков и поклонников Python из почти 200 стран и регионов приняли участие в исследовании и помогли нам определить текущее состояние языка и связанной с ним экосистемы.
Последние 4 года доля респондентов, называющих Python своим основным языком, почти не меняется — 84-85%.
Среди языков, используемых вместе с Python, самый популярный — JavaScript. Однако среди разработчиков, назвавших Python второстепенным, с JavaScript делит популярность C/C++. HTML/CSS, Bash/Shell и SQL тоже используются довольно широко: на каждом их них пишут больше трети Python-разработчиков.
Статистика по веб-разработке основана на ответах респондентов, которые выбрали веб-разработку, отвечая на вопрос «С какой целью вы используете Python чаще всего?».Соответственно, Data Science относится к тем, кто в ответе на тот же вопрос, выбрал анализ данных или машинное обучение.
Как и ожидалось, среди веб-разработчиков популярными языками, используемыми совместно с Python, стали JavaScript (69%) и HTML/CSS (60%), в то время как те, кто занимается анализом данных, чаще выбирают SQL (42%).Кроме того, среди разработчиков, занятых анализом данных, доля тех, кто не использует никакие дополнительные языки, втрое выше, чем среди веб-разработчиков.
Мы спрашивали, с какой целью люди используют Python, какими видами разработки они занимаются и как совмещают разные варианты применения языка.
За последние годы существенных изменений в сценариях использования Python не произошло. Самыми распространенными областями остаются анализ данных, машинное обучение, веб-разработка и DevOps.
Четверть разработчиков, для которых Python — основной язык, используют его в первую очередь для веб-разработки. Среди тех, кто назвал Python второстепенным языком, веб-разработка является основной деятельностью лишь для 12%.
Что интересно, доля разработчиков, указавших анализ данных в качестве основной сферы использования Python, примерно одинакова и среди тех, для кого это основной язык программирования (17%), и среди тех, для кого он второстепенный (16%).
На вопрос отвечали только те, кто занимается анализом данных и машинным обучением.
Лишь 29% Python-разработчиков, занятых анализом данных и машинным обучением, считают себя специалистами по Data Science.
Доля пользователей Python 2 сокращается в среднем на 5 процентных пунктов в год, и сейчас его используют лишь 5 разработчиков из 100.
Интересно, что, по сравнению с Python 3, Python 2 чаще применяется для создания компьютерной графики, игр и мобильной разработки.
Enthought выбрали менее 0,5% респондентов, поэтому он был включен в «Другое».
Больше половины пользователей Windows скачивают Python с сайта Python.org, а среди пользователей Linux так делает лишь треть. Неудивительно, что пользователи Linux и macOS чаще всего устанавливают и обновляют Python, используя возможности операционной системы. В то же время у пользователей macOS довольно большой популярностью пользуются pyenv и контейнеры Docker.
Специальные инструменты для изоляции окружения Python используют 75% Python-разработчиков.Интересно, что самым популярным инструментом у разработчиков, использующих Jupyter-ноутбуки (50%), является Conda, а остальные предпочитают Virtualenv и Docker.
Flask, Django и FastAPI остаются самыми популярными веб-фреймворками для Python. FastAPI, выпущенный в конце 2018 года, демонстрирует самый быстрый рост: его доля по сравнению с прошлым годом увеличилась на 9 процентных пунктов. В то же время доля пользователей Flask по сравнению с 2020 годом уменьшилась на 5 процентных пунктов.
Подробнее об использовании фреймворка Django можно узнать из результатов опроса Django-разработчиков, который мы провели совместно с Django Software Foundation в 2021 году.
10% Python-разработчиков используют одновременно 7 и более фреймворков и библиотек для Data Science, а половина — не больше двух.
Большинство остальных фреймворков более популярны среди веб-разработчиков, чем среди специалистов по Data Science, которые в основном используют Tkinker и PyQT.
Популярность различных фреймворков для юнит-тестирования Python за год почти не изменилась.
Их используют лишь 56% соло-разработчиков, зато в компаниях численностью от 5000 сотрудников ими пользуются 75% респондентов.
SQLAlchemy — самая популярная ORM среди пользователей баз данных.
Интересно, что 52% пользователей Redis используют ORM Django, хотя в среднем ею пользуются менее трети Python-разработчиков. А еще стоит отметить, что 20% пользователей Amazon Redshift используют SQLObject, в то время как ее доля среди всех разработчиков меньше 5%.
Среди специалистов по Data Science базами данных пользуются 80%, среди веб-разработчиков — 98%.
Доля пользователей PostgreSQL среди веб-разработчиков на 32 процентных пункта больше, чем среди тех, кто занят Data Science. Доля пользователей Redis больше на 25 процентных пунктов, а доля пользователей SQLite — на 12 процентных пунктов. В то же время специалисты по Data Science вдвое чаще, чем веб-разработчики, используют Oracle Database.
Распределение ответов по инструментам для работы с большими данными осталось примерно таким же, как в прошлом году. В целом специалисты по Data Science используют их на 13 процентных пунктов чаще, чем другие разработчики, а Apache Spark и Dask у них популярнее вдвое.
Python-разработчиков используют облачные платформы.
На вопрос отвечали только те, кто пользуется облачными платформами.
Интересно, что пользователи Visual Basic, C# и C/C++ используют AWS примерно вдвое реже, чем Python-разработчики в целом.
На вопрос отвечали только те, кто пользуется облачными платформами.
Популярность виртуальных машин продолжает снижаться. В 2018 году их доля составляла 47%, это был самый распространенный вариант. Сегодня же их использует лишь 41% Python-разработчиков.
На вопрос отвечали только те, кто пользуется облачными платформами.
Среди тех, кто занят веб-разработкой, DevOps и прототипированием ПО, чрезвычайно популярна локальная разработка на Python с использованием virtualenv (61-65%). Docker-контейнерами пользуются в первую очередь веб-разработчики (54%).
Виртуальные машины часто выбирают те, кто занимается DevOps, машинным обучением и сетевым программированием (26-27%). Что интересно, те, кто работает в DevOps и машинном обучении, также чаще других используют среды удаленной разработки.
По сравнению с 2020 годом популярность Linux и macOS снизилась на 5 процентных пунктов, а использование Windows соответственно выросло на 10 процентных пунктов.
GitHub Actions появилась в 2018 году и быстро набрала популярность. Сегодня она лидирует в списке CI-систем: ею пользуется почти треть Python-разработчиков.
Еще одна CI-система, демонстрирующая рост, — Gitlab CI: ее доля выросла с 2018 года на 4 процентных пункта. А вот Travis CI быстро теряет популярность: снижение на 13% по сравнению с 2018 годом. Jenkins/Hudson также потеряла 8 процентных пунктов за три года.
Python-разработчиков используют инструменты для создания документации. Самый популярный из них — Sphinx.
Среди тех, для кого Python основной язык, доля использующих профилировщики Python и инструменты анализа покрытия кода больше на 8 процентных пунктов, а доля использующих виртуальные окружения Python на 10 процентных пунктов больше, чем среди разработчиков, для которых Python второстепенный язык.
Общая доля редакций PyCharm Community и Professional составляет 31% — почти столько же, сколько в прошлом году. Доля VS Code выросла за год на 6 процентных пунктов.
Интересно, что PyCharm и VS Code одинаково популярны среди веб-разработчиков (39%), в то время как специалисты по Data Science чаще (на 9 процентных пунктов) используют VS Code в качестве основной IDE.
Чтобы определить, какие IDE и редакторы наиболее популярны, мы задали вопрос, в котором можно было выбрать только один вариант ответа.
Статистика по веб-разработке основана на ответах респондентов, которые выбрали веб-разработку, отвечая на вопрос «С какой целью вы используете Python чаще всего?».Соответственно, Data Science относится к тем, кто в ответе на тот же вопрос, выбрал анализ данных или машинное обучение.
Чаще всего Python-разработчики узнавали об IDE, которая стала для них основным инструментом, от друзей или коллег, во время обучения, а также через поиск в интернете.
Лишь 1% респондентов узнали о своих инструментах из рекламы.
57% пользователей Jupyter-ноутбуков впервые узнали о них в школе, в университете или на онлайн-курсах. Среди всех участников опроса такие варианты ответа выбрали 25%.
VS Code, Jupyter-ноутбуки и PyCharm чаще всего используются в дополнение к основной IDE: каждый из этих вариантов выбрали более 20% Python-разработчиков.
VS Code, Jupyter-ноутбуки и PyCharm чаще всего используются в дополнение к основной IDE: каждый из этих вариантов выбрали более 20% Python-разработчиков.
Те, для кого основная IDE — Jupyter-ноутбук, в четыре раза чаще других Python-разработчиков также используют Spyder.
В июне 2021 года Python Software Foundation пригласили разработчика, который бы на постоянной основе занимался развитием языка и поддержкой сообщества.
Им стал Core-разработчик Лукаш Ланга. Он помогает разобраться с нерешенными задачами, определить приоритетные направления развития проекта, изучает другие важные вопросы.
23% Python-разработчиков уже знают о приглашенном разработчике, и 91% из них считают, что это хорошая идея.
Более того, 30% тех, кто в курсе новшества, уже видят его эффект.
Только 19% пользователей Python когда-либо сообщали о найденных ошибках. Что интересно, сайт bugs.python.org — не самый распространенный способ сделать это. Почти вдвое больше программистов предпочитают задать вопрос в другом месте или создать пул-реквест на GitHub.
Из тех, кто когда-либо сообщал о ошибках, 73% отметили, что проблема была решена, и лишь 7% заявили, что им так никто и не ответил.
На вопрос отвечали только те, кто когда-либо сообщал об ошибках.
Python-разработчиков используют контейнеры, а 59% из них используют в контейнере виртуальное окружение.
45% Python-разработчиков используют те или иные инструменты для закрепления версии зависимостей приложения. Чаще всего они хранятся в файле requirements.txt — этот способ используют три четверти разработчиков.
На вопрос отвечали только те, кто использует инструменты для управления точными версиями зависимостей приложения.
На вопрос отвечали только те, кто использует инструменты для управления точными версиями зависимостей приложения.
90% разработчиков заявили, что для установки пакетов Python они используют pip. Большинство получает пакеты через Python Package Index.
Python-разработчиков говорят, что разрабатывают приложения. Самый популярный инструмент для этой цели — Setuptools, его используют 46% опрошенных.
На вопрос отвечали только те, кто разрабатывает приложения.
Хотя больше половины Python-разработчиков разрабатывают приложения, лишь 40% из них публиковали эти приложения в репозиториях пакетов.
На вопрос отвечали только те, кто разрабатывает Python-библиотеки.
34% респондентов разрабатывают Python-библиотеки. Для создания пакетов большинство из них (71%) использует Setuptools.
Что интересно, лишь 27% тех, кто разрабатывает библиотеки, уже публиковали их в репозиториях пакетов.
На вопрос отвечали только те, кто публиковал пакеты Python-библиотек.
Python Package Index — самое популярное место для публикации пакетов разработанных библиотек и приложений. Private PyPI используется примерно вдвое реже.
На вопрос отвечали только те, кто работает в штате.
На вопрос отвечали только те, кто работает в штате.
На вопрос отвечали только те, кто работает в штате.
На вопрос отвечали только те, кто работает в штате.
На этот вопрос отвечали только те, кто работает.
Страны/регионы, которые указали меньше 1% респондентов, объединены в группу «Другое».
Хотите проанализировать данные подробнее? Скачайте обезличенные результаты опроса и найдите нужные вам сведения. Делитесь своими открытиями и мыслями в Twitter с хештегом #pythondevsurvey. Не забудьте упомянуть @jetbrains и @ThePSF.
Набор данных включает в себя только ответы, полученные через официальные каналы Python Software Foundation. После того как мы исключили дубликаты и ненадежные ответы, в наборе данных осталось более 23 000 ответов, собранных с 11 октября по 6 декабря 2021 года за счет продвижения опроса на сайте python.org, в блоге PSF, на страницах PSF в Twitter и LinkedIn, через официальные рассылки Python и связанные с Python сабреддиты. Чтобы избежать искажения результатов в пользу определенного инструмента или технологии, для сбора ответов не использовались каналы, связанные с какими-либо продуктами, сервисами и поставщиками.
Данные полностью анонимны и не содержат персональных данных респондентов и информации об их местонахождении. Чтобы исключить вероятность идентификации респондентов по их комментариям, мы удалили все ответы на открытые вопросы.
Чтобы вам было проще понять логику опроса, мы делимся набором данных, вопросами и всей логикой анкеты. Мы использовали разные способы упорядочивания вариантов ответов (алфавитный, случайный и прямой). Порядок ответов указан для каждого вопроса.
Сочетание по крайней мере двух из следующих факторов:
JetBrains и Python Software Foundation благодарят всех, кто участвовал в опросе. Вы помогли нам составить актуальное представление об экосистеме Python.
Поддержите Python Software Foundation. PSF — некоммерческая организация, существующая исключительно на средства, внесенные ее членами, спонсорами и сообществом.
Посмотрите результаты опросов 2020, 2019, 2018 и 2017 годов.
Читайте отчеты о других исследованиях JetBrains.
Надеемся, наш отчет был вам полезен. Поделитесь результатами исследования с друзьями и коллегами.
Если у вас есть вопросы об этом исследовании или предложения для новых опросов, напишите нам по адресу surveys@jetbrains.com или psf@python.org.