JetBrains в сотрудничестве с Django Software Foundation провели ежегодный опрос Django-разработчиков. В августе 2021 года более 7000 пользователей и поклонников Django из почти 140 стран и регионов приняли участие в исследовании и помогли нам определить текущее состояние фреймворка и связанной с ним экосистемы.
Результаты прошлогоднего исследования можно посмотреть здесь.
Лишь 15% Django-разработчиков используют фреймворк только для работы, в то время как две трети пользуются им и для работы, и для личных, образовательных или не связанных с основной работой проектов.
Те, кто работает самостоятельно, чаще используют Django для личных целей.
По данным опроса Python-разработчиков 2020 года, Django занимает второе по популярности место среди фреймворков для Python.
Кроме того, согласно недавнему опросу разработчиков Stackoverflow, он занимает девятое место среди всех фреймворков для веб-приложений.
24% респондентов все еще используют Django 2.2 — версию с долгосрочной поддержкой (LTS), предшествовавшую 3.2. Список поддерживаемых версий приведен здесь.
Три четверти Django-разработчиков используют версию 3.2, но при этом большинство из них работает с несколькими версиями.
Почти 30% респондентов используют для новых проектов Django LTS.
Большинство разработчиков предпочитает обновлять Django либо после выхода каждого стабильного релиза (44%), либо после появления новой LTS-версии (30%).
Самый популярный бэкенд баз данных — PostgreSQL: его доля составляет 77% (он признан самой удобной базой данных для Django). Второе место по популярности занимает SQLite с долей 41%.
Самый популярный бэкенд кэша — Redis, следом за ним идет Memcached (47% и 18% соответственно). Однако почти половина респондентов (43%) вообще не пользуются бэкендом кэша.
Memcached предлагает нативную поддержку, а поддержка Redis была добавлена в Django 4.0 не в последнюю очередь по результатам прошлогоднего опроса Django-разработчиков.
Чаще всего бэкенд кэша используют разработчики с опытом работы 11 и более лет. Не используют бэкенд кэша обычно менее опытные разработчики, фрилансеры и студенты.
Только 28% респондентов используют GeoDjango, и большинство из них выбирают в качестве бэкенда PostGIS.
Чаще всего Django-разработчики используют pytest, unittest и coverage.
Два самых популярных JS-фреймворка — jQuery и React (по 37%), Vue отстает от них на 9 процентных пунктов.
Интересно, что те, кто использует Django и для работы, и для личных целей, чаще выбирают Vue, чем те, кто использует Django только для работы (31% и 21% соответственно), а вот с другими фреймворками разница не так заметна.
36% разработчиков используют React только для работы, а 26% — для личных и образовательных целей.
Почти 70% пользователей Django используют один или несколько CSS-фреймворков Bootstrap. Менее опытные программисты чаще выбирают Pure CSS, чем те, у кого большой опыт.
Чем больше опыт работы, тем чаще разработчики используют django-debug-toolbar: его назвали всего 12% Django-программистов с опытом работы 1 год и целых 40% разработчиков с опытом работы 11 лет и больше.
Для 89% Django-разработчиков Python — основной язык программирования.
75% Django-разработчиков используют также JavaScript, а 67% — HTML/CSS.
На этот вопрос отвечали только те, кто не назвал основным языком Python.
Помимо Python, чаще всего основным языком программирования пользователи Django называют JavaScript. Третье место занимает C/C++, при этом большинство тех, кто с ним работает, либо студенты, либо программисты с опытом работы 11 и больше лет.
5 основных веб-фреймворков, которыми пользуются Django-разработчики, — React.js, Flask, JQuery, Vue.js и FastAPI. Часто их используют вместе.
Отметим, что 20% респондентов вообще не следят за новостями Django. Большинство из них — начинающие и разработчики, опыт работы которых менее 1 года.
Более опытные разработчики предпочитают новостную рассылку Django News, Hacker News, RSS и Twitter, а те, у кого опыта меньше, чаще следят за развитием Django на Stack Overflow и YouTube.
5 самых популярных подкастов:
5 самых популярных YouTube-каналов:
3 самых популярных блога:
2 самых популярных Twitter-аккаунта:
Самый популярный форум:
Чаще всего пользователи Django используют Python версий 3.9 и 3.8.
Разработчики с опытом работы 11 и более лет вдвое чаще других используют Python 2 (14% и 6% соответственно).
Удивительно, что 13% респондентов назвали Python 3.10, хотя опрос проводился в августе 2021 года, а версия 3.10 вышла только в октябре этого же года.
Респонденты, использующие Django для личных и образовательных целей, а также специалисты с опытом работы менее 2 лет чаще обновляют версию Python с помощью Python.org или Anaconda.
Более опытные разработчики, использующие Django для работы, чаще пользуются специальными инструментами, например контейнерами Docker и pyenv. Все категории разработчиков активно используют пакеты Python, предоставляемые операционной системой.
Все категории разработчиков используют Virtualenv. Менее опытные разработчики чаще выбирают Venv, более опытные предпочитают Docker.
Пользователи mypy чаще всего выбирают для форматирования кода Black и isort, а пользователи pylint предпочитают autopep8.
Инструмент для форматирования кода Black чаще используют опытные разработчики, а autopep8 выбирают специалисты с не очень большим опытом. При работе с Python выбор по умолчанию — autopep8. Django обещает в будущем добавить официальную поддержку Black.
91% пользователей Flake8 используют также PostgreSQL. pylint популярнее у не очень опытных разработчиков, а опытные специалисты выбирают Flake8.
Чаще всего пользователи Django используют пакеты Psycopg2 и Requests — каждый назвали по 54% респондентов.
Платформа Requests пользуется популярностью у всех Python-разработчиков, а использование Psycopg2, видимо, характерно именно для тех, кто работает с Django.
Pillow — модуль работы с образами — популярен среди не очень опытных разработчиков.
Самая популярная облачная платформа хостинга — AWS.
Среди пользователей Heroku и PythonAnywhere больше не очень опытных разработчиков, чем среди пользователей других платформ.
Интересно сравнить результаты этого опроса с результатами опроса Python-разработчиков: мы видим, что Google Cloud Platform занимает у Python-разработчиков второе место (ее используют 33% респондентов), а у Django-разработчиков — только четвертое (лишь четверть респондентов). Эта тенденция еще заметнее в случае Microsoft Azure: эту платформу использует 21% тех, кто работает с Python, но среди Django-разработчиков ее пользователи составляют лишь 8%.
Самые популярные IDE у Django-разработчиков — VS Code и PyCharm.
Менее опытные разработчики чаще выбирают VSCode, а более опытные предпочитают PyCharm. Среди тех, у кого 3–5 лет опыта работы, обе IDE пользуются одинаковой популярностью.
42% Django-разработчиков используют Linux — больше, чем любую другую ОС. Windows и macOS практически поделили второе место, набрав соответственно 29% и 28%.
Отвечая «Другое», респонденты чаще всего называли Bitbucket и Azure DevOps.
Только 32% пользователей Django используют инструменты управления конфигурацией. Второе место заняли «Пользовательские решения» — их назвали 7% респондентов.
62% Django-разработчиков используют контейнеры.
Опытные разработчики чаще используют для отладки приложений shell/pdb.
Самый популярный бэкенд кэша — Redis, следом за ним идет Memcached (47% и 18% соответственно). Однако почти половина респондентов (43%) вообще не пользуются бэкендом кэша.
Memcached предлагает нативную поддержку, а поддержка Redis была добавлена в Django 4.0 не в последнюю очередь по результатам прошлогоднего опроса Django-разработчиков.
Чаще всего бэкенд кэша используют разработчики с опытом работы 11 и более лет. Не используют бэкенд кэша обычно менее опытные разработчики, фрилансеры и студенты.
Среди пользователей Django вдвое больше фрилансеров, чем среди разработчиков в целом: доля фрилансеров по данным этого опроса составляет 11%, в то время как во всей экосистеме разработки она равна лишь 5%, а по результатам опроса Python-разработчиков — 6%.
Django-разработчики чаще работают в небольших командах.
Хотите проанализировать данные подробнее? Скачайте обезличенные результаты опроса и найдите нужные вам сведения. Делитесь своими открытиями и мыслями в Twitter с хештегом #djangosurvey. Не забудьте упомянуть @jetbrains и @djangoproject.
Набор данных включает в себя только ответы, полученные через официальные каналы Django Software Foundation. После того как мы исключили дубликаты и ненадежные ответы, в наборе данных осталось более 7000 ответов, собранных в августе 2021 года за счет продвижения опроса через такие официальные каналы Django, как djangoproject.com и Twitter-аккаунт DSF. Чтобы избежать искажения результатов в пользу определенного инструмента или технологии, для сбора ответов не использовались каналы, связанные с какими-либо продуктами, сервисами и поставщиками.
Данные полностью анонимны и не содержат персональные данные респондентов и информацию об их местонахождении. Чтобы исключить вероятность идентификации респондентов по их комментариям, мы удалили все ответы на открытые вопросы.
Чтобы вам было проще понять логику опроса, мы делимся набором данных, вопросами и всей логикой анкеты.
JetBrains и Django Software Foundation благодарят всех, кто участвовал в опросе.
Если у вас есть вопросы или предложения, свяжитесь с нами по адресу surveys@jetbrains.com.