В сотрудничестве с Django Software Foundation в сентябре-октябре 2022 года мы провели второй ежегодный опрос Django-разработчиков. 4900 пользователей и поклонников Django из 248 стран и регионов приняли участие в исследовании и помогли нам определить текущее состояние фреймворка и связанной с ним экосистемы.
55%
0%
4.1
34%
0%
4.0
47%
75%
3.2
10%
30%
3.1
13%
39%
3.0 или более ранняя
Большинство пользователей перешли на самую свежую версию 4.1, но почти половина Django-разработчиков по-прежнему пользуются LTS-версией 3.2.
Более старыми версиями (до 3.1) пользуются опытные Python-разработчики, а новички предпочитают самые новые версии.
Django-разработчики обычно обновляют Django либо после выхода каждого стабильного релиза (44%), либо после появления новой LTS-версии (32%).
Django официально поддерживает следующие базы данных: PostgreSQL, SQLite, MySQL, MariaDB и Oracle. По сравнению с прошлым годом PostgreSQL стала еще популярнее: ее доля увеличилась на 2 процентных пункта.
Только 6% разработчиков используют базы данных, которые не поддерживаются Django. Чаще всего такие респонденты называли MongoDB.
Больше половины Django-разработчиков для кэширования выбирают Redis — это самое популярное решение.
Те, кто пользуется Redis в качестве кэш-бэкенда, используют TypeScript чаще, чем те, кто предпочитает другие способы кэширования.
Пользователи PostgreSQL предпочитают Redis и Memcached.
Среди пользователей SQLite самая большая доля у файловой системы, второе место занимает локальная память.
Использование бэкенда GeoDjango в значительной степени коррелирует с выбором бэкенда БД.
Более 80% респондентов выбирают admin или auth — эти contrib-приложения становятся самыми популярными второй год подряд.
Самый распространенный компонент у наших респондентов — модели. Его назвали 76% пользователей Django — на 4 процентных пункта больше, чем в прошлом году.
Шаблоны Django
Jinja2
Другое
Нет
36%
37%
React
32%
37%
jQuery
25%
28%
Vue
16%
5%
htmx
8%
10%
Angular
Набирает популярность htmx, выпущенный в 2020 году. По сравнению с результатами опроса, проводившегося в августе 2021 года, число пользователей этого JavaScript-фреймворка выросло втрое. Кроме того, вдвое увеличилась доля Alpine.js, хотя она по-прежнему слишком мала, чтобы можно было делать какие-то выводы.
Популярность jQuery за год уменьшилась на 5 процентных пунктов.
Любопытно, что лидировавшие фреймворки начинают сдавать позиции вновь появившимся.
62%
68%
Bootstrap
22%
15%
Tailwind CSS
13%
14%
Pure CSS
9%
12%
Material Design/Lite
6%
6%
Bulma
С прошлого года доля Tailwind CSS выросла на 7 процентных пунктов: с 15% до 22%. Те, кто использует Tailwind CSS, чаще, чем пользователи Bootstrap, выбирают фреймворки JavaScript, например Alpine.js, htmx, React и Vue. Пользователи Bootstrap почти вдвое чаще используют jQuery.
Половина Django-разработчиков пишут асинхронные представления. Однако использование асинхронных технологий никак не связано с опытом респондентов.
Более опытные разработчики пользуются подсказками типов намного чаще, чем менее опытные. В общей сложности подсказки типов используют 46% опрошенных.
Активно или часто
Средне, время от времени
Немного, почти не участвую
Не участвую
Большие команды чаще пишут документацию к своему ПО, например, с помощью Github Pages — этот инструмент чаще всего используется большими командами.
Команды поменьше реже публикуют документацию.
Основной
Второстепенный
На этот вопрос отвечали только те, кто не назвал основным языком Python.
YouTube и Stack Overflow чаще всего используют разработчики с опытом работы менее 2 лет.
А те, у кого опыт превышает 5 лет, почти никогда не смотрят YouTube для изучения Django. Они обычно читают djangoproject.com и Django News.
YouTube-каналы
Блоги
Подкасты
Twitter-аккаунты
Форумы
Другое
58%
13%
3.10
51%
60%
3.9
36%
53%
3.8
17%
31%
3,7
8%
21%
3.6–3.0
По данным официального опроса Python-разработчиков, Django-разработчики чаще используют новые версии Python, чем Python-разработчики в целом. Это особенно очевидно на примере версии 3.9: ее доля у Django-разработчиков (51%) на 29 процентных пунктов больше, чем среди Python-разработчиков в целом (22%).
Читатели python.org, чаще обновляют Python с выходом каждой новой стабильной версии, чем те, кто пользуется пакетами Python, предоставляемыми ОС.
Разработчики из Азии вдвое чаще используют ресурсы python.org, чем респонденты в целом (27% и 13% соответственно), а среди разработчиков из Европы доля использования пакетов Python, предоставляемых ОС, на 22 процентных пункта больше (55% и 33%).
55%
44%
venv
43%
55%
Virtualenv
42%
40%
Docker
21%
23%
Pipenv
19%
13%
Poetry
На 6 процентных пунктов увеличилась доля Poetry: с 13% в 2021 году до 19% к концу 2022-го.
51%
35%
Black
28%
18%
isort
23%
30%
autopep8
19%
0%
pre-commit
1%
2%
YAPF
По сравнению с результатами прошлогоднего опроса значительно выросла доля форматера Black — на 16 процентных пунктов.
43%
40%
Flake8
41%
26%
Black
33%
37%
pylint
18%
14%
mypy
3%
4%
Другое
Чаще всего пользователи Django используют пакеты Psycopg2 и Requests — каждый назвали по 54% респондентов.
Платформа Requests пользуется популярностью у всех Python-разработчиков, а использование Psycopg2, видимо, характерно именно для тех, кто работает с Django.
Pillow — модуль работы с образами — популярен среди не очень опытных разработчиков.
Наибольшей популярностью AWS пользуется у разработчиков из Северной и Центральной Америки: там ее доля составляет 56%.
В Африке лидирует Heroku (39%), а AWS с небольшим отставанием занимает второе место (37%).
PythonAnywhere более востребована в Африке и на Ближнем Востоке (20%), а также в Азии (19%). В других регионах доля этой платформы не превышает 10%.
Linux
macOS
Windows без WSL
Windows без WSL
Другое
42%
35%
GitHub Actions
28%
27%
GitLab CI
10%
12%
Jenkins/Hudson
8%
8%
CircleCI
2%
6%
TravisCI
По сравнению с прошлым годом доля GitHub Actions немного увеличилась (на 7 процентных пунктов), а Jenkins и Travis CI потеряли соответственно 2 и 4 процентных пункта.
Я использую контейнеры во время разработки
Мое приложение работает в контейнерах в производственной среде
Контейнеры используются в CI/CD-процессе
Нет / Не знаю
Я использую контейнеры для других целей
Индивидуальные разработчики и небольшие компании, насчитывающие менее 10 человек, реже используют Docker-контейнеры для вспомогательных служб и утилит.
45% разработчиков с опытом работы от 11 лет выполняют отладку приложений с помощью shell / pdb, в то время как среди разработчиков с опытом 1-2 года это делают 30%, а с опытом менее года — 20%.
Среди пользователей Django вдвое больше фрилансеров, чем среди разработчиков в целом: доля фрилансеров по данным этого опроса составляет 11%, в то время как во всей экосистеме разработки она равна лишь 5%, а по результатам опроса Python-разработчиков — 6%.
9%
11%
Менее 1 года
15%
17%
1–2 года
22%
24%
3–5 лет
21%
19%
6–10 лет
33%
29%
11 лет и больше
Демографические данные этого года показывают, что в 2022 году у респондентов чуть больше опыта, чем в прошлом.
6%
8%
Менее 1 года
16%
21%
1–2 года
30%
31%
3–5 лет
28%
24%
6–10 лет
19%
16%
11 лет и больше
Django-разработчики чаще работают в небольших командах.
Чем опытнее разработчики, тем больше у них проектов. Менее опытные разработчики обычно работают над одним главным и несколькими связанными с ним проектами или вовлечены только в один проект.
Хотите проанализировать данные самостоятельно? Скачайте обезличенные результаты опроса и найдите нужные вам сведения. Делитесь своими открытиями и мыслями в Twitter с хештегом #djangosurvey. Не забудьте упомянуть @jetbrains и @djangoproject.
Набор данных включает в себя только ответы, полученные через официальные каналы Django Software Foundation. После того как мы исключили дубликаты и ненадежные ответы, в наборе данных осталось более 4900 ответов, собранных в сентябре-октябре 2022 года за счет продвижения опроса через такие официальные каналы Django, как djangoproject.com и Twitter-аккаунт DSF. Чтобы избежать искажения результатов в пользу определенного инструмента или технологии, для сбора ответов не использовались каналы, связанные с какими-либо продуктами, сервисами и поставщиками.
Данные полностью анонимны и не содержат персональные данные респондентов и информацию об их местонахождении. Чтобы исключить вероятность идентификации респондентов по их комментариям, мы удалили все ответы на открытые вопросы.
Чтобы вам было проще понять логику опроса, мы делимся набором данных, вопросами и всей логикой анкеты.
JetBrains и Django Software Foundation благодарят всех, кто участвовал в опросе.
Если у вас есть вопросы или предложения, пишите нам по адресу surveys@jetbrains.com.