Опрос Django-разработчиков 2021

JetBrains в сотрудничестве с Django Software Foundation провели ежегодный опрос Django-разработчиков. В августе 2021 года более 7000 пользователей и поклонников Django из почти 140 стран и регионов приняли участие в исследовании и помогли нам определить текущее состояние фреймворка и связанной с ним экосистемы.

Результаты прошлогоднего исследования можно посмотреть здесь.

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

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

Для работы, а также для личных, образовательных или не связанных с основной работой проектов
Только для личных, образовательных и не связанных с основной работой проектов
Только для работы
66%20%15%

Лишь 15% Django-разработчиков используют фреймворк только для работы, в то время как две трети пользуются им и для работы, и для личных, образовательных или не связанных с основной работой проектов.

Те, кто работает самостоятельно, чаще используют Django для личных целей.

По данным опроса Python-разработчиков 2020 года, Django занимает второе по популярности место среди фреймворков для Python.

Кроме того, согласно недавнему опросу разработчиков Stackoverflow, он занимает девятое место среди всех фреймворков для веб-приложений.

Какую версию Django вы используете?> 100%

75%30%16%24%10%3%

24% респондентов все еще используют Django 2.2 — версию с долгосрочной поддержкой (LTS), предшествовавшую 3.2. Список поддерживаемых версий приведен здесь.

Три четверти Django-разработчиков используют версию 3.2, но при этом большинство из них работает с несколькими версиями.

Какую версию Django вы используете для новых проектов?

71%27%2%

Почти 30% респондентов используют для новых проектов Django LTS.

Как часто вы обновляете версию Django в проекте?

44%14%30%5%7%

Большинство разработчиков предпочитает обновлять Django либо после выхода каждого стабильного релиза (44%), либо после появления новой LTS-версии (30%).

Технологии и фреймворки

Какими бэкендами баз данных вы пользуетесь?> 100%

77%41%30%10%2%2%6%

Самый популярный бэкенд баз данных — PostgreSQL: его доля составляет 77% (он признан самой удобной базой данных для Django). Второе место по популярности занимает SQLite с долей 41%.

Какими бэкендами кэша вы пользуетесь?> 100%

Redis47%Memcached18%Другое2%Нет43%

Самый популярный бэкенд кэша — Redis, следом за ним идет Memcached (47% и 18% соответственно). Однако почти половина респондентов (43%) вообще не пользуются бэкендом кэша.

Memcached предлагает нативную поддержку, а поддержка Redis была добавлена в Django 4.0 не в последнюю очередь по результатам прошлогоднего опроса Django-разработчиков.

Чаще всего бэкенд кэша используют разработчики с опытом работы 11 и более лет. Не используют бэкенд кэша обычно менее опытные разработчики, фрилансеры и студенты.

Какими бэкендами GeoDjango вы пользуетесь?> 100%

72%22%7%2%1%1%

Только 28% респондентов используют GeoDjango, и большинство из них выбирают в качестве бэкенда PostGIS.

Какие contrib-приложения Django вы считаете самыми полезными?> 100%

84%80%49%49%46%33%27%24%17%16%12%11%6%4%3%1%

Назовите 3 любимых основных компонента> 100%

72%49%33%28%26%15%14%13%11%9%5%5%4%3%1%

Какие шаблонизаторы вы используете?> 100%

Шаблоны Django79%Jinja214%Другое1%Нет14%

Какие тестовые фреймворки вы используете?> 100%

39%36%19%12%6%5%4%2%1%1%31%

Чаще всего Django-разработчики используют pytest, unittest и coverage.

Какие JavaScript-фреймворки вы используете?> 100%

37%37%28%10%5%3%1%1%4%20%

Два самых популярных JS-фреймворка — jQuery и React (по 37%), Vue отстает от них на 9 процентных пунктов.

Интересно, что те, кто использует Django и для работы, и для личных целей, чаще выбирают Vue, чем те, кто использует Django только для работы (31% и 21% соответственно), а вот с другими фреймворками разница не так заметна.

36% разработчиков используют React только для работы, а 26% — для личных и образовательных целей.

Какие CSS-фреймворки вы используете?> 100%

68%15%14%12%6%3%2%2%1%4%16%

Почти 70% пользователей Django используют один или несколько CSS-фреймворков Bootstrap. Менее опытные программисты чаще выбирают Pure CSS, чем те, у кого большой опыт.

Назовите 5 любимых сторонних пакетов Django.> 100%

60%27%26%18%17%17%17%15%14%13%
Все результаты

Чем больше опыт работы, тем чаще разработчики используют django-debug-toolbar: его назвали всего 12% Django-программистов с опытом работы 1 год и целых 40% разработчиков с опытом работы 11 лет и больше.

Какие асинхронные технологии вы используете?> 100%

24%22%16%16%13%10%9%5%4%1%5%49%

Языки и другие веб-фреймворки

Python — ваш основной язык программирования?> 100%

Для 89% Django-разработчиков Python — основной язык программирования.

Какие языки программирования вы используете помимо Python?> 100%

75%64%47%37%20%19%16%14%11%9%5%3%3%6%4%

75% Django-разработчиков используют также JavaScript, а 67% — HTML/CSS.

Каков ваш основной язык программирования?> 100%

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

25%13%12%10%8%7%5%3%2%2%2%1%12%

Помимо Python, чаще всего основным языком программирования пользователи Django называют JavaScript. Третье место занимает C/C++, при этом большинство тех, кто с ним работает, либо студенты, либо программисты с опытом работы 11 и больше лет.

Какие веб-фреймворки вы используете помимо Django?> 100%

32%32%30%27%20%9%8%5%4%3%
Все результаты

5 основных веб-фреймворков, которыми пользуются Django-разработчики, — React.js, Flask, JQuery, Vue.js и FastAPI. Часто их используют вместе.

Какой веб-фреймворк вы используете чаще всего?> 100%

82%4%2%2%2%1%1%1%5%

Ресурсы

Из каких источников вы получаете новости о Django?> 100%

53%31%20%19%16%11%10%10%10%6%6%5%3%2%20%3%

Отметим, что 20% респондентов вообще не следят за новостями Django. Большинство из них — начинающие и разработчики, опыт работы которых менее 1 года.

Более опытные разработчики предпочитают новостную рассылку Django News, Hacker News, RSS и Twitter, а те, у кого опыта меньше, чаще следят за развитием Django на Stack Overflow и YouTube.

Какие источники информации вы используете при изучении Django?> 100%

78%46%41%31%18%9%5%5%3%

Назовите веб-ресурсы, помимо официальных каналов информации о Django, где вы читаете новости о Django> 100%

YouTube-каналы52%Блог34%Подкасты25%Twitter-аккаунты13%Форум11%Другое23%

5 самых популярных подкастов:

  1. Django Chat
  2. Talk Python To Me
  3. Python Bytes
  4. Django Riffs
  5. The Real Python

5 самых популярных YouTube-каналов:

  1. Dennis Ivy
  2. Corey Schafer
  3. JustDjango
  4. Very Academy
  5. freeCodeCamp

3 самых популярных блога:

  1. Simple is Better Than Complex
  2. Real Python: Python Tutorials
  3. Medium

2 самых популярных Twitter-аккаунта:

  1. Carlton Gibson (@carltongibson)
  2. Джефф Триплетт (@webology)

Самый популярный форум:

Версии Python

Какую версию Python вы используете?> 100%

13%60%53%31%19%4%6%2%

Чаще всего пользователи Django используют Python версий 3.9 и 3.8.

Разработчики с опытом работы 11 и более лет вдвое чаще других используют Python 2 (14% и 6% соответственно).

Удивительно, что 13% респондентов назвали Python 3.10, хотя опрос проводился в августе 2021 года, а версия 3.10 вышла только в октябре этого же года.

С помощью каких инструментов вы обычно обновляете версию Python?>100

40%37%27%25%8%5%4%3%2%3%

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

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

Какие из следующих инструментов вы используете для изоляции окружений Python (если вообще используете)?> 100%

55%44%40%23%13%8%3%2%3%

Все категории разработчиков используют Virtualenv. Менее опытные разработчики чаще выбирают Venv, более опытные предпочитают Docker.

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

35%
Black
30%
autopep8
18%
isort
2%
YAPF
4%
Другое
35%
Нет

Пользователи mypy чаще всего выбирают для форматирования кода Black и isort, а пользователи pylint предпочитают autopep8.

Инструмент для форматирования кода Black чаще используют опытные разработчики, а autopep8 выбирают специалисты с не очень большим опытом. При работе с Python выбор по умолчанию — autopep8. Django обещает в будущем добавить официальную поддержку Black.

Какие линтеры вы используете?> 100%

40%37%26%14%4%26%

91% пользователей Flake8 используют также PostgreSQL. pylint популярнее у не очень опытных разработчиков, а опытные специалисты выбирают Flake8.

Использование Flake8 и pylint в зависимости от опыта работы с Python> 100%

Flake8
pylint
3%/7%11%/24%31%/31%32%/23%23%/15%

Какие 5 пакетов Python вы в первую очередь используете?> 100%

54%54%42%39%35%28%20%17%16%12%11%11%11%9%4%3%2%2%2%1%6%7%

Чаще всего пользователи Django используют пакеты Psycopg2 и Requests — каждый назвали по 54% респондентов.

Платформа Requests пользуется популярностью у всех Python-разработчиков, а использование Psycopg2, видимо, характерно именно для тех, кто работает с Django.

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

Облачные сервисы

Какую облачную платформу хостинга вы используете (если вообще используете)?> 100%

43%27%25%13%11%8%6%1%1%12%19%

Самая популярная облачная платформа хостинга — AWS.

Среди пользователей Heroku и PythonAnywhere больше не очень опытных разработчиков, чем среди пользователей других платформ.

Интересно сравнить результаты этого опроса с результатами опроса Python-разработчиков: мы видим, что Google Cloud Platform занимает у Python-разработчиков второе место (ее используют 33% респондентов), а у Django-разработчиков — только четвертое (лишь четверть респондентов). Эта тенденция еще заметнее в случае Microsoft Azure: эту платформу использует 21% тех, кто работает с Python, но среди Django-разработчиков ее пользователи составляют лишь 8%.

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

66%40%10%7%7%3%1%9%

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

49%37%23%9%2%15%

Инструменты

Каков ваш основной текстовый редактор или IDE?> 100%

42%38%7%5%2%2%1%3%

Самые популярные IDE у Django-разработчиков — VS Code и PyCharm.

Менее опытные разработчики чаще выбирают VSCode, а более опытные предпочитают PyCharm. Среди тех, у кого 3–5 лет опыта работы, обе IDE пользуются одинаковой популярностью.

Основной текстовый редактор или IDE для профессионального и личного использования> 100%

Профессиональный
Для личных проектов
40%/49%40%/29%7%/6%5%/6%2%/4%2%/1%1%/2%3%/3%

Какова ваша основная локальная операционная система?> 100%

42% Django-разработчиков используют Linux — больше, чем любую другую ОС. Windows и macOS практически поделили второе место, набрав соответственно 29% и 28%.

Какие системы непрерывной интеграции (CI) вы используете?> 100%

35%27%12%8%6%1%7%32%

Отвечая «Другое», респонденты чаще всего называли Bitbucket и Azure DevOps.

Какие инструменты управления конфигурацией вы используете (если используете)?> 100%

20%7%2%2%1%4%68%

Только 32% пользователей Django используют инструменты управления конфигурацией. Второе место заняли «Пользовательские решения» — их назвали 7% респондентов.

Контейнеры

Используете ли вы контейнеры Docker или их аналоги?>100

62% Django-разработчиков используют контейнеры.

Что вы запускаете в контейнерах Docker?>100

89%62%19%2%

Где вы выполняете запуск кода во время разработки?>100

73%60%16%8%4%1%

Как вы развертываете код в удаленных контейнерах во время разработки?>100

65%41%39%14%4%

Как вы выполняете отладку приложения?> 100%

72%56%40%2%

Опытные разработчики чаще используют для отладки приложений shell/pdb.

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

Я использую только выражения логирования
Нет
Я часто использую отладчик для приложения, запущенного удаленно или в контейнере
Я один или два раза подключал отладчик
29%28%23%20%

Какими бэкендами кэша вы пользуетесь?>100%

Самый популярный бэкенд кэша — Redis, следом за ним идет Memcached (47% и 18% соответственно). Однако почти половина респондентов (43%) вообще не пользуются бэкендом кэша.

Memcached предлагает нативную поддержку, а поддержка Redis была добавлена в Django 4.0 не в последнюю очередь по результатам прошлогоднего опроса Django-разработчиков.

Чаще всего бэкенд кэша используют разработчики с опытом работы 11 и более лет. Не используют бэкенд кэша обычно менее опытные разработчики, фрилансеры и студенты.

Демография

Укажите ваш вид занятости в настоящий момент>100

61%11%9%9%4%4%2%

Среди пользователей Django вдвое больше фрилансеров, чем среди разработчиков в целом: доля фрилансеров по данным этого опроса составляет 11%, в то время как во всей экосистеме разработки она равна лишь 5%, а по результатам опроса Python-разработчиков — 6%.

Чем вы занимаетесь на работе?>100

79%18%17%12%7%6%4%4%3%3%8%

Каков размер вашей компании?

19%20%21%19%4%5%8%3%

Каков размер команды, в которой вы работаете в вашей компании?

12%64%14%6%2%2%

Django-разработчики чаще работают в небольших командах.

Вы работаете в команде или самостоятельно?

Я работаю в команде
Я работаю над своим проектом самостоятельно
Я независимый консультант или инструктор
64%32%4%

Над каким количеством проектов вы работаете?

Я работаю над несколькими разными проектами
Я работаю над одним главным и несколькими связанными с ним проектами
Я работаю только над одним проектом
49%36%15%

Какая из следующих отраслей точнее всего соответствует деятельности вашей компании?> 100%

36%8%6%5%4%3%3%2%2%2%2%2%2%2%1%1%1%1%1%1%1%12%

Каков ваш опыт профессионального программирования?

11%17%24%19%29%

Как давно вы программируете на Python?

8%21%31%24%16%

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

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

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

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

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

Набор данных включает в себя только ответы, полученные через официальные каналы Django Software Foundation. После того как мы исключили дубликаты и ненадежные ответы, в наборе данных осталось более 7000 ответов, собранных в августе 2021 года за счет продвижения опроса через такие официальные каналы Django, как djangoproject.com и Twitter-аккаунт DSF. Чтобы избежать искажения результатов в пользу определенного инструмента или технологии, для сбора ответов не использовались каналы, связанные с какими-либо продуктами, сервисами и поставщиками.

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

Чтобы вам было проще понять логику опроса, мы делимся набором данных, вопросами и всей логикой анкеты.

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

JetBrains и Django Software Foundation благодарят всех, кто участвовал в опросе.

Если у вас есть вопросы или предложения, свяжитесь с нами по адресу surveys@jetbrains.com.