Результаты опроса Python-разработчиков 2020
Результаты опроса Python-разработчиков 2020
В октябре 2020 года мы в четвертый раз провели большой опрос Python-разработчиков в сотрудничестве с Python Software Foundation. Более 28 000 человек из почти 200 стран/регионов приняли участие в исследовании и помогли нам определить текущее состояние экосистемы Python.
Использование Python
Python в качестве основного и второстепенного языка
Для 85% участников опроса Python — основной язык программирования.
Использование Python с другими языками
Чаще всего в комбинации с Python используется JavaScript. Вместе с HTML/CSS, Bash/Shell и SQL он входит в топ языков, хотя бы один из которых используют совместно с Python 40% опрошенных.
JavaScript и C/C ++ — самые популярные основные языки среди тех, кто назвал Python второстепенным.
Инструменты для веб-разработки и Data Science
Диаграмма «Веб-разработка» построена на основе ответов тех, кто выбрал веб-разработку, отвечая на вопрос «С какой целью вы используете Python чаще всего?». На диаграмме «Анализ данных», собраны ответы тех, кто выбрал анализ данных и машинное обучение.
Только 8% пользователей Python, работающих с данными, не используют никаких дополнительных языков, и только 3% веб-разработчиков пользуются исключительно Python. 75% веб-разработчиков используют и Python, и JavaScript, что неудивительно.
Для чего используют Python
Мы спрашивали, с какой целью люди используют Python, какими видами разработки они занимаются и как совмещают разные варианты применения языка.
Для чего вы используете Python?
С какой целью вы используете Python?
Незначительные различия в цифрах за два года объясняются тем, что в этом году в опросе участвовало больше студентов (13% против 10%). Поэтому больше респондентов выбрали вариант «Образовательные цели», а на долю других областей применения языка пришлось меньше ответов.
Насколько активно вы занимаетесь следующими видами деятельности?
С какой целью вы используете Python чаще всего?
Вы считаете себя дата-сайентистом?
Только 32% Python-разработчиков, занимающихся анализом данных и машинным обучением, считают себя дата-сайентистами.
Они используют Anaconda для обновления версий Python в два раза чаще, чем остальные пользователи языка, которые предпочитают Python.org.
На вопрос отвечали только те, кто занимается анализом данных и машинным обучением.
Версии Python
Python 3 vs Python 2
Области применения разных версий языка
Версии Python 3
Установка и обновление Python
Пользователи Windows обычно устанавливают Python с сайта Python.org, тогда как пользователи Linux и macOS чаще используют пакеты, предоставляемые операционной системой, Docker-контейнеры или pyenv.
Способы изоляции окружения
Между инструментами изоляции окружения и 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% респондентов.
Фреймворки и библиотеки
Веб-фреймворки
Мы впервые включили FastAPI в варианты ответа, и он сразу оказался на третьем месте по популярности.
Фреймворки и библиотеки для анализа данных
Пользователи NumPy чаще используют Conda для изоляции окружения, чем другие Python-разработчики (32% против 22%).
Фреймворки для юнит-тестирования
Использование фреймворков для юнит-тестирования коррелирует с профессиональным опытом. Начинающие Python-разработчики гораздо реже проводят юнит-тестирование.
Те, кто занимаются анализом данных и машинным обучением, используют тестовые фреймворки чаще, чем веб-разработчики и DevOps. А наиболее часто ими предсказуемо пользуются те, кто занимается тестированием ПО и написанием автоматических тестов.
Другие фреймворки и библиотеки
72% разработчиков, предпочитающих AWS, используют фреймворк Requests.
Tkinter и Pygame в основном выбирают молодые специалисты с опытом работы менее года.
ORM
Большинство Python-разработчиков, использующих Flask, предпочитают SQLAlchemy, а пользователи Django используют Django ORM.
Базы данных
PostgreSQL — самая распространенная база данных среди Python-разработчиков. Еще популярнее она среди пользователей AWS: ее предпочитают 65%.
Инструменты для работы с большими данными
Большинство пользователей инструментов для работы с большими данными предпочитают JupiterLab, особенно те, кто работает с Apache Spark и Dask. На втором месте — Jupyter Notebook, а PyCharm Professional чаще всего выбирают пользователи Apache Kafka.
Облачные технологии
Популярные облачные платформы
Heroku и PythonAnywhere популярны среди молодых специалистов с опытом работы до 2 лет. Более опытные Python-разработчики чаще выбирают AWS и DigitalOcean.
Как у вас реализовано выполнение рабочего кода в облаке?
Контейнеры — по-прежнему самый популярный способ запуска кода, а вот виртуальные машины понемногу сдают позиции: в 2020 году их использовали только 43% респондентов. Два года назад виртуальные машины были на первом месте с долей 47%.
Как вы разрабатываете облачные приложения?
Тестировщики составляют большинство тех, кто ведет разработку в контейнерах Docker.
Веб-разработчики значительно реже пользуются удаленными окружениями и виртуальными машинами, чем другие респонденты. Они предпочитают работать локально, пользуясь virtualenv.
Инструменты
Операционная система
68%
Linux
48%
Windows
29%
macOS
2%
BSD
1%
Другое
Чем опытнее Python-разработчики, тем чаще они предпочитают работать в Linux и macOS и тем реже выбирают Windows.
Системы непрерывной интеграции (CI)
На этот раз первое место занимает Gitlab CI, опередив прошлогоднего лидера Jenkins/Hudson.
Тестировщики — самые активные пользователи систем непрерывной интеграции. Почти 80% респондентов, участвующих в тестировании ПО или написании автоматизированных тестов, используют CI-системы.
Инструменты управления конфигурацией
Редакторы и IDE
Чтобы определить, какие 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-разработки
Большинство действий, перечисленных в этом вопросе, имеют явный сдвиг в пользу более опытных пользователей. Чем дольше люди в профессии, тем выше вероятность, что они будут использовать перечисленные технологии. Однако это не относится к опциональному указанию типов и автодополнению. Разработчики с более чем 11-опытом гораздо реже пользуются этими функциями, чем те, кто занимается программированием 3-5 лет.
Работа и занятость
В команде vs самостоятельно
Работа над проектами
Размер команды
Вид занятости
Размер компании
Сфера деятельности компании
Целевая отрасль
Рабочая роль
Опыт программирования на 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.
Спасибо, что уделили время!
Если вам было интересно, поделитесь результатами исследования с друзьями и коллегами.
Примите участие в будущих опросах
Если у вас есть вопросы, касающиеся этого исследования, или предложения для будущих опросов, напишите нам по адресу surveys@jetbrains.com или psf@python.org.