Python

Результаты опроса Python-разработчиков 2020

Результаты опроса Python-разработчиков 2020

В октябре 2020 года мы в четвертый раз провели большой опрос Python-разработчиков в сотрудничестве с Python Software Foundation. Более 28 000 человек из почти 200 стран/регионов приняли участие в исследовании и помогли нам определить текущее состояние экосистемы Python.

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

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

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

Для 85% участников опроса Python — основной язык программирования.

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

> 100%
ОсновнойВторостепенныйСовместно

Чаще всего в комбинации с Python используется JavaScript. Вместе с HTML/CSS, Bash/Shell и SQL он входит в топ языков, хотя бы один из которых используют совместно с Python 40% опрошенных.

JavaScript и C/C ++ — самые популярные основные языки среди тех, кто назвал Python второстепенным.

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

> 100%

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

Только 8% пользователей Python, работающих с данными, не используют никаких дополнительных языков, и только 3% веб-разработчиков пользуются исключительно Python. 75% веб-разработчиков используют и Python, и JavaScript, что неудивительно.

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

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

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

С какой целью вы используете Python?

> 100%
ОсновнойВторостепенныйСовместно

Незначительные различия в цифрах за два года объясняются тем, что в этом году в опросе участвовало больше студентов (13% против 10%). Поэтому больше респондентов выбрали вариант «Образовательные цели», а на долю других областей применения языка пришлось меньше ответов.

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

> 100%

С какой целью вы используете Python чаще всего?

ОсновнойВторостепенныйСовместно

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

Только 32% Python-разработчиков, занимающихся анализом данных и машинным обучением, считают себя дата-сайентистами.

Они используют Anaconda для обновления версий Python в два раза чаще, чем остальные пользователи языка, которые предпочитают Python.org.

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

Версии Python

Python 3 vs Python 2

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

> 100%

Версии Python 3

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

> 100%

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

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

> 100%

Между инструментами изоляции окружения и IDE обнаружились интересные зависимости:

  • Больше половины пользователей Jupyter Notebook и JupyterLab предпочитают Conda. А среди пользователей других редакторов доля Conda составляет меньше 20%.
  • Пользователи Virtualenv и Docker чаще всего выбирают PyCharm Professional Edition.
  • Среди тех, кто предпочитает Pipenv, наиболее популярны VS Code и PyCharm.
  • Vim лидирует среди пользователей Vagrant и Poetry.

Возможности языка

За что любят Python

По результатам ответов на открытый вопрос «Какие три особенности Python нравятся вам больше всего?»

* Исключая стандартные библиотеки, встроенные структуры данных и выражения, которые мы вынесли в отдельные варианты ответа:

  • Генерация списков
  • Список и словарь
  • Декораторы
  • Asyncio, многопоточность, многопроцессорность
  • Менеджеры контекста
  • Лямбда-функции

** Другие характеристики, которые были отмечены <1% респондентов.

Что ждут от языка

По результатам ответов на открытый вопрос «Какие три языковые возможности вы хотите увидеть в Python больше всего?»

* Исключая улучшения стандартной библиотеки, которые мы вынесли в отдельные варианты ответа.

** Другие характеристики, которые были отмечены <1% респондентов.

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

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

> 100%

Мы впервые включили FastAPI в варианты ответа, и он сразу оказался на третьем месте по популярности.

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

> 100%

Пользователи NumPy чаще используют Conda для изоляции окружения, чем другие Python-разработчики (32% против 22%).

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

> 100%

Использование фреймворков для юнит-тестирования коррелирует с профессиональным опытом. Начинающие Python-разработчики гораздо реже проводят юнит-тестирование.

Те, кто занимаются анализом данных и машинным обучением, используют тестовые фреймворки чаще, чем веб-разработчики и DevOps. А наиболее часто ими предсказуемо пользуются те, кто занимается тестированием ПО и написанием автоматических тестов.

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

> 100%

72% разработчиков, предпочитающих AWS, используют фреймворк Requests.

Tkinter и Pygame в основном выбирают молодые специалисты с опытом работы менее года.

ORM

> 100%

Большинство Python-разработчиков, использующих Flask, предпочитают SQLAlchemy, а пользователи Django используют Django ORM.

Базы данных

> 100%

PostgreSQL — самая распространенная база данных среди Python-разработчиков. Еще популярнее она среди пользователей AWS: ее предпочитают 65%.

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

> 100%

Большинство пользователей инструментов для работы с большими данными предпочитают JupiterLab, особенно те, кто работает с Apache Spark и Dask. На втором месте — Jupyter Notebook, а PyCharm Professional чаще всего выбирают пользователи Apache Kafka.

Облачные технологии

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

> 100%

Heroku и PythonAnywhere популярны среди молодых специалистов с опытом работы до 2 лет. Более опытные Python-разработчики чаще выбирают AWS и DigitalOcean.

Как у вас реализовано выполнение рабочего кода в облаке?

> 100%

Контейнеры — по-прежнему самый популярный способ запуска кода, а вот виртуальные машины понемногу сдают позиции: в 2020 году их использовали только 43% респондентов. Два года назад виртуальные машины были на первом месте с долей 47%.

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

> 100%

Тестировщики составляют большинство тех, кто ведет разработку в контейнерах Docker.

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

Инструменты

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

> 100%
Linux

68%

Linux

Windows

48%

Windows

macOS

29%

macOS

BSD

2%

BSD

1%

Другое

Чем опытнее Python-разработчики, тем чаще они предпочитают работать в Linux и macOS и тем реже выбирают Windows.

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

> 100%

На этот раз первое место занимает Gitlab CI, опередив прошлогоднего лидера Jenkins/Hudson.

Тестировщики — самые активные пользователи систем непрерывной интеграции. Почти 80% респондентов, участвующих в тестировании ПО или написании автоматизированных тестов, используют CI-системы.

Инструменты управления конфигурацией

> 100%

Редакторы и IDE

ОсновнойData ScienceВеб

Чтобы определить, какие IDE и редакторы наиболее популярны, мы задали вопрос, в котором можно было выбрать только один вариант ответа. Варианты, набравшие меньше 0,5% в 2019 году, объединены в группу «Другое».

Совокупная доля PyCharm Community и PyCharm Professional — 33%, что соответствует результатам прошлого года. VS Code продолжает расти, набрав за год 5%. Между тем, большинство текстовых редакторов, таких как Vim или Sublime Text, сдают позиции.

Jupyter Notebook, Jupiter Lab и Spyder привлекли больше пользователей из Data Science.

Среди пользователей VS Code примерно поровну веб-разработчиков и аналитиков данных.

А среди пользователей PyCharm веб-разработчиков почти вдвое больше, чем тех, кто работает с данными. Эта разница особенно заметна среди пользователей PyCharm Professional Edition.

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

> 100%

Большинство действий, перечисленных в этом вопросе, имеют явный сдвиг в пользу более опытных пользователей. Чем дольше люди в профессии, тем выше вероятность, что они будут использовать перечисленные технологии. Однако это не относится к опциональному указанию типов и автодополнению. Разработчики с более чем 11-опытом гораздо реже пользуются этими функциями, чем те, кто занимается программированием 3-5 лет.

Работа и занятость

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

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

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

Вид занятости

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

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

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

Рабочая роль

> 100%

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

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

Возраст

В какой стране/регионе вы живете?

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

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

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

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

1

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

2

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

3

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

Скачать исходные данные

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

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

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

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

Примите участие в будущих опросах

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

© JetBrains s.r.o., 2000 – 2021 гг. Все права защищены.