JetBrains logo

Enquête 2022 auprès des développeurs Django

C'est la deuxième enquête annuelle sur les développeurs Django, menée en septembre et octobre 2022, dans le cadre d'une collaboration entre la Django Software Foundation et JetBrains. Pour nous aider à nous faire une meilleure idée de l'état actuel du framework et de l'écosystème qui l'entoure, 4 900 utilisateurs passionnés de Django de 248 pays et régions ont répondu à l'enquête.

Pour les derniers résultats, accédez à l'Enquête 2023 sur les développeurs Django, ou consultez l’Enquête initiale de 2021 sur les développeurs Django.

À quelles fins utilisez-vous principalement Django ?

Quelles versions de Django utilisez-vous ?>100 %

55%

0%

4,1

34%

0%

4,0

47%

75%

3.2

10%

30%

3.1

13%

39%

3.0 ou inférieure

La majorité des utilisateurs ont migré vers la dernière version, 4.1, mais quasiment la moitié des développeurs Django se reposent toujours sur la version LTS 3.2.

Les versions 3.1 et inférieures de Django sont utilisées par les développeurs Python expérimentés, tandis que les nouveaux utilisent uniquement les versions les plus récentes.

Pour vos nouveaux projets, quelle version de Django utilisez-vous ?

70%

La dernière version stable

28%

La dernière version LTS

3%

Autre

À quelle fréquence mettez-vous Django à niveau dans vos projets ?

44%

Chaque version stable

14%

Chaque version mensuelle

30%

LTS uniquement

5%

Une version non prise en charge de Django

7%

Autre

Les développeurs Django mettent généralement leurs projets à niveau soit à chaque version stable (44 %), soit uniquement à chaque version LTS (prise en charge sur le long terme) (32 %).

Technologies et frameworks

Quels backends de base de données utilisez-vous ?> 100%

79%

PostgreSQL

40%

SQLite

28%

MySQL

10%

MariaDB

2%

Oracle

2%

Aucun/Je ne suis pas sûr·e

6%

Autre

Django prend officiellement en charge les bases de données suivantes : PostgreSQL, SQLite, MySQL, MariaDB et Oracle. Depuis l'enquête de l'année dernière, PostgreSQL a encore gagné en popularité, avec des parts en hausse de 2 points de pourcentage.

Seulement 6 % des développeurs utilisent des bases de données qui ne sont pas prises en charge par Django. La base de données la plus souvent mentionnée par les développeurs est MongoDB.

Quel backend de cache utilisez-vous ?> 100%

54%

Redis

17%

Mémoire locale

16%

Base de données

16%

Memcached

8%

Système de fichiers

1%

Autre

27%

Aucun

Choisie par plus de la moitié des développeurs Django, la mise en cache avec Redis est clairement plébiscitée.
Les développeurs qui utilisent Redis comme backend de cache utilisent plus souvent TypeScript que ceux qui choisissent d'autres méthodes de mise en cache.

Les utilisateurs de bases de données PostgreSQL préfèrent Redis et Memcached.

Parmi les utilisateurs de SQLite, la part la plus importante est celle du système de fichiers, la mémoire locale arrivant en deuxième place.

Quels backends GeoDjango utilisez-vous ? >100 %

72%

Aucun/Je ne suis pas sûr·e

22%

PostGIS

6%

MySQL

2%

SpatiaLite

1%

Oracle

1%

Autre

L'utilisation du backend GeoDjango est fortement corrélée au choix du backend de la base de données.

Quelles sont les applications de contribution à Django les plus utiles à vos yeux ?> 100%

85%

admin

80%

auth

50%

postgres

50%

sessions

48%

staticfiles

33%

corrects

26%

contenttypes

25%

redirects

17%

humanize

16%

sites

11%

GeoDjango

10%

sitemap

3%

flatpages

3%

syndication

1%

Autre

5%

Aucun/Je ne suis pas sûr·e

Plus de 80 % des participants ont choisi admin ou auth, ce qui en fait les applications de contribution les plus populaires pour la deuxième année consécutive.

Quels sont vos trois composants essentiels préférés ?> 100%

76%

Modèles

50%

Admin

33%

Authentification

31%

Migrations

25%

Vues

14%

Commandes de gestion Django

13%

Formulaires

13%

Modèles

10%

Ecosystème tiers

8%

URL

5%

Signaux

5%

Tests

4%

Mise en cache

2%

Je n'en suis pas sûr·e

1%

Autre

Le composant essentiel préféré des participants est Models. C'est le choix de 76 % des utilisateurs de Django, en hausse de 4 points de pourcentage par rapport à l'année précédente.

Quel moteur de templates utilisez-vous ?> 100%

81%

Templates Django

14%

Jinja2

2%

Autre

13%

Aucun

Quels frameworks de tests utilisez-vous ?> 100%

41%

pytest

36%

unittest

31%

pytest-django

21%

couverture

10%

Selenium

6%

tox

5%

Cypress

3%

Playwright

3%

django-test-plus

2%

nose

1%

TestCafe

1%

Autre

26%

Aucun

Quels frameworks JavaScript utilisez-vous ?>100 %

36%

37%

React

32%

37%

jQuery

25%

28%

Vue

16%

5%

htmx

8%

10%

Angular

Sorti en 2020, htmx reçoit aujourd'hui un intérêt croissant. L'utilisation de ce framework JavaScript a triplé depuis notre précédente enquête en août 2021. En outre, Alpine.js a doublé sa part, bien que cette valeur soit encore trop faible pour tirer des conclusions précises.

Par rapport aux résultats de l'année dernière, la part de jQuery a perdu 5 points de pourcentage.

Il est intéressant de noter que des frameworks autrefois dominants voient leur part baisser au profit de frameworks émergents.

Quels frameworks CSS utilisez-vous ?>100 %

62%

68%

Bootstrap

22%

15%

Tailwind CSS

13%

14%

Pure CSS

9%

12%

Material Design/Lite

6%

6%

Bulma

Depuis l'année dernière, la part de Tailwind CSS a augmenté de 7 points de pourcentage, passant de 15 à 22 %. Les personnes qui utilisent Tailwind CSS ont tendance à utiliser davantage des frameworks JavaScript, tels que Alpine.js, htmx, React et Vue, par rapport aux utilisateurs de Bootstrap. Les utilisateurs de Bootstrap utilisent presque deux fois plus souvent jQuery.

Quels sont vos 5 paquets Django tiers préférés ?> 100%

60%

djangorestframework

28%

django-celery

28%

django-debug-toolbar

18%

django-cors-headers

17%

django-filter

17%

django-allauth

16%

pytest-django

16%

django-redis

16%

django-extensions

15%

django-crispyforms

Quelles technologies asynchrones utilisez-vous ?> 100%

25%

ASGI

23%

asyncio

18%

FastAPI

15%

Canaux

15%

Uvicorn

11%

Les vues asynchrones de Django

9%

Daphne

5%

asgiref

4%

Starlette

1%

Hypercorn

1%

Anyio

4%

Autre

47%

Aucun

La moitié des développeurs Django écrivent des vues asynchrones (async). Cependant, l'utilisation des technologies asynchrones n'est pas clairement corrélée à l'expérience de développement des participants.

Pour en savoir plus sur la prise en charge asynchrone de Django, cliquez ici.

Syntaxe et documentation

Utilisez-vous actuellement des indications de type dans votre code Django ?

Les développeurs les plus expérimentés utilisent beaucoup plus les indications de type que les moins expérimentés. Dans l'ensemble, 46 % des développeurs Django utilisent les indications de type.

Quel vérificateur de type utilisez-vous ?>100 %

35%

Mypy

23%

Pyright/Pylance

4%

Pytype

5%

Autre

40%

Aucun

Dans quelle mesure contribuez-vous à la documentation des logiciels auxquels vous participez ?

22%

Beaucoup, ou souvent

28%

Quelques-uns, ou parfois

26%

Un peu, ou presque jamais

25%

Aucun, ou jamais

Qu'utilisez-vous pour héberger et publier la documentation des logiciels auxquels vous participez ?>100 %

43%

Readme

29%

Autohébergé

21%

Read the Docs

19%

Pages GitHub

3%

GitBook

8%

Autre

23%

Nous ne publions pas de documentation

Les grandes équipes sont plus susceptibles de documenter leurs logiciels, par exemple sur des pages Github (ce dernier étant surtout utilisé par les grandes équipes).

Les petites équipes publient moins souvent de la documentation.

Quels systèmes et langages utilisez-vous pour créer et générer la documentation ?>100 %

64%

Markdown

37%

Swagger

24%

Sphinx

17%

rST

14%

Postman

13%

wiki

8%

Autre

19%

Aucun

Quels principes adoptez-vous dans la documentation des logiciels auxquels vous participez ?>100 %

81%

Pas d'architecture d'information explicitement adoptée

27%

Révision formelle de la documentation

14%

Structure thématique

13%

Le code ne sera pas fusionné sans documentation pertinente

12%

Guide de style explicite pour les contributeurs

10%

Langage inclusif

3%

Diátaxis

1%

DITA

4%

Autre

Langages et autres frameworks web

Python est-il votre principal langage de programmation ?

90%

Principal

10%

Secondaire

Quels autres langages de programmation utilisez-vous en plus de Python ?> 100%

75%

JavaScript

67%

HTML/CSS

49%

SQL

39%

Bash/Shell

25%

TypeScript

15%

C/C++

13%

Java

12%

PHP

12%

Go

9%

C#

8%

Rust

3%

Ruby

3%

R

7%

Autre

3%

Aucun

Quel est votre principal langage de programmation ?> 100%

23%

JavaScript

12%

Java

11%

TypeScript

10%

PHP

9%

C/C++

7%

C#

5%

Go

3%

HTML/CSS

2%

Rust

2%

SQL

2%

Ruby

1%

Bash / Shell

1%

R

11%

Autre

Cette question n'a été posée qu'aux personnes ayant choisi Python comme langage secondaire.

À part Django, quels frameworks web utilisez-vous ?> 100%

33%

React.js

29%

Flask

25%

JQuery

25%

FastAPI

24%

Vue.js

8%

Express

8%

Angular

4%

Spring

4%

Laravel

3%

ASP.NET Core

Quel framework web utilisez-vous le plus ?> 100%

83%

Django

5%

React.js

2%

Vue.js

2%

FastAPI

1%

Flask

1%

Angular

1%

Spring

5%

Autre

Ressources

Parmi les propositions suivantes, qu'utilisez-vous pour suivre l'actualité du développement Django ?> 100%

59%

djangoproject.com

26%

Stack Overflow

20%

Reddit

20%

Twitter

18%

Youtube

15%

Newsletter Django News

11%

Hacker News

11%

Ami·es

10%

Forum Django

9%

Podcasts

7%

RSS

6%

Groupes Google

4%

Discord

1%

IRC

3%

Autre

16%

Je ne suis pas l'évolution du développement de Django

Les plus grands adeptes de YouTube et de Stack Overflow sont des développeurs qui comptent moins de deux ans d'expérience.

Les personnes totalisant un minimum de 6 ans d'expérience professionnelle n'utilisent presque jamais YouTube pour se former à Django. Elles lisent généralement djangoproject.com et Django News.

Lesquels des outils suivants préférez-vous utiliser pour apprendre Django ?> 100%

80%

djangoproject.com

45%

Blogs

40%

Youtube

31%

Livres

18%

Amis ou collègues de travail

9%

Vidéos payantes

5%

Podcasts

5%

Autre

3%

Aucun

Pensez aux ressources web que vous lisez ou suivez pour Django, à l'exception des canaux officiels de Django> 100%

50%

Chaînes YouTube

33%

Blogs

33%

Podcasts

16%

Noms d'utilisateur Twitter

12%

Forums

19%

Autre

Versions de Python

Quelles versions de Python utilisez-vous ?> 100%

58%

13%

3.10

51%

60%

3.9

36%

53%

3.8

17%

31%

3.7

8%

21%

3.6 - 3.0

Selon l'enquête officielle sur les développeurs Python, les utilisateurs de Django ont une préférence plus marquée pour les versions les plus récentes de Python par rapport à la moyenne des développeurs Python. C'est notamment le cas pour la version 3.9, dont l'utilisation est supérieure de 29 points de pourcentage avec Django (51 %) par rapport à Python en général (22 %).

Comment mettez-vous généralement à jour votre version de Python ?>100

39%

Python fourni par le système d'exploitation

37%

Python.org

32%

Conteneurs Docker

28%

pyenv

6%

Anaconda

4%

Build à partir de la source

3%

Mises à jour automatiques via un fournisseur cloud

2%

Quelqu'un d'autre gère les mises à jour de Python pour moi

3%

Autre

2%

Je ne mets pas à jour

Les développeurs qui visitent python.org ont davantage tendance à mettre à niveau Python vers chaque version stable que ceux qui utilisent Python via leur système d'exploitation.

Les développeurs situés en Asie utilisent python.org deux fois plus que la moyenne (27 % contre 13 %), tandis que ceux d'Europe choisissent la version de Python fourni par leur système d'exploitation (22 points de pourcentage de plus avec 55 % contre 33 %).

Lesquels des outils suivants utilisez-vous pour isoler les environnements Python ?> 100%

55%

44%

venv

43%

55%

Virtualenv

42%

40%

Docker

21%

23%

Pipenv

19%

13%

Poetry

La part de Poetry a augmenté de 6 points de pourcentage, passant de 13 % en 2021 à 19 % à la fin de 2022.

Quels outils de mise en forme du code utilisez-vous ?> 100%

51%

35%

Black

28%

18%

isort

23%

30%

autopep8

19%

0%

pre-commit

1%

2%

YAPF

La part de l'outil de mise en forme du code Black a considérablement augmenté (de 16 points de pourcentage) par rapport aux résultats de l'enquête de l'année dernière.

Quels linters utilisez-vous ?> 100%

43%

40%

Flake8

41%

26%

Black

33%

37%

pylint

18%

14%

mypy

3%

4%

Autre

Quels sont vos 5 principaux paquets Python de référence ?> 100%

55%

Psycopg2

51%

Requests

40%

Gunicorn

36%

Celery

35%

Pillow

32%

pytest

31%

Black

19%

Boto3

14%

uWSGI

14%

sentry-sdk

14%

WhiteNoise

12%

factory-boy

11%

Couverture

11%

Jinja2

5%

HTTPX

2%

Bleach

2%

Model Bakery

2%

Python Slugify

2%

sorl-thumbnail

6%

Autre

5%

Aucun

Psycopg2 et Requests sont les paquets Python les plus utilisés par les utilisateurs de Django, avec 54 % chacun.

Requests est une plateforme populaire parmi tous les développeurs Python, tandis que Psycopg2 semble être spécifique à Django.

Pillow, un module permettant de travailler avec des images, est populaire auprès des développeurs moins expérimentés.

Cloud

Quelle plateforme d'hébergement cloud utilisez-vous ?> 100%

44%

AWS

23%

DigitalOcean

21%

Heroku

12%

Google Cloud Platform

10%

PythonAnywhere

8%

Microsoft Azure

7%

Linode

3%

Fly.io

1%

OpenShift

1%

OpenStack

13%

Autre

20%

Aucun

Avec 56 % des parts, AWS est généralement le choix des développeurs d'Amérique du Nord et d'Amérique centrale.

Heroku est en tête en Afrique avec une part de 39 %, tandis qu'AWS arrive juste derrière avec 37 %.

Par ailleurs, PythonAnywhere est plus demandé en Afrique et au Moyen-Orient, avec une part de 20 %, et en Asie, avec 19 %. Dans toutes les autres parties du monde, il ne dépasse pas les 10 %.

Comment développez-vous localement pour le cloud ?> 100%

63%

Localement avec virtualenv

44%

Dans des conteneurs Docker

8%

Dans des machines virtuelles

7%

Avec un interpréteur système local

7%

Dans des environnements de développement à distance

2%

Directement dans l'environnement de production

2%

Autre

10%

Aucun

Comment exécutez-vous du code dans le cloud (dans un environnement de production) ?>100

54%

Dans des conteneurs

33%

Dans des machines virtuelles

23%

Sur une plateforme en tant que service

9%

Serverless

2%

Autre

15%

Aucun

Outils de développement

Quel est votre IDE ou éditeur de texte principal ?> 100%

42%

VS Code

38%

PyCharm

7%

Vim

5%

Sublime Text

2%

Atom

2%

Emacs

1%

Notepad++

3%

Autre

Quel est votre principal système d'exploitation local ?> 100%

41%

Linux

33%

macOS

16%

Windows avec WSL

10%

Windows sans WSL

1%

Autre

Quels systèmes d'intégration continue (CI) utilisez-vous ?> 100%

42%

35%

GitHub Actions

28%

27%

GitLab CI

10%

12%

Jenkins/Hudson

8%

8%

CircleCI

2%

6%

TravisCI

Depuis l'année dernière, la part de GitHub Actions a légèrement augmenté (+ 7 points de pourcentage), tandis que Jenkins et Travis CI ont perdu respectivement 2 et 4 points de pourcentage.

Quels outils de gestion de la configuration utilisez-vous ?> 100%

19%

Ansible

8%

Solution personnalisée

6%

Fabric

2%

Puppet

2%

Salt

1%

Chef

5%

Autre

65%

Aucun

Conteneurs

Utilisez-vous des conteneurs Docker, ou quelque chose de similaire ?>100

47%

J'utilise des conteneurs pendant le développement

45%

L'application que je génère fonctionne dans des conteneurs en production

44%

Des conteneurs sont utilisés dans le processus CI/CD

31%

Non/Je ne suis pas sûr·e

2%

J'utilise des conteneurs à d'autres fins

Qu'exécutez-vous dans des conteneurs Docker ?>100

91%

Un code d'application que je développe ou que mon équipe développe

61%

Des services de sauvegarde auxquels mon code se connecte

22%

Des utilitaires que j'utilise pendant le développement

2%

Autre

L'utilisation de conteneurs Docker pour sauvegarder des services et utilitaires est réduite chez les particuliers et les petites entreprises de moins de 10 personnes.

Au cours du développement, où exécutez-vous votre code ?>100

71%

Dans un virtualenv

61%

Dans un conteneur, sur mon ordinateur

15%

À l'aide de l'interpréteur système sur mon ordinateur

9%

Dans des conteneurs internes, sur un autre ordinateur

4%

Sur un autre ordinateur en dehors de conteneurs

0%

Autre

Comment déployez-vous du code dans des conteneurs distants pendant le développement ?>100

68%

J'utilise l'intégration continue

40%

Je transfère le code sur la machine hôte puis j'y génère le conteneur

35%

Je génère l'image du conteneur localement puis j'envoie l'image en mode push

12%

Je me connecte au moteur Docker à distance

6%

Autre

Comment déboguez-vous votre application ?> 100%

72%

Utilisation d'instructions print ou log

56%

Utilisation de mon IDE

40%

Utilisation du shell/pdb

2%

Autre

45 % des développeurs ayant 11 ans d'expérience ou plus déboguent leurs applications à l'aide de shell/pdb, tandis que cette part tombe à 20 % pour ceux qui comptent moins d'un an d'expérience et à 30 % pour ceux qui comptent 1 à 2 ans d'expérience.

Déboguez-vous votre application sur des hôtes distants, ou dans des conteneurs ?

Données démographiques

Quelle est votre situation professionnelle actuelle ?>100

65%

Employé·e à plein temps par une entreprise / organisation

11%

Freelancer

9%

Indépendant·e

6%

Étudiant·e

4%

Employé·e à temps partiel par une entreprise / organisation

3%

Étudiant·e employé·e

1%

Retraité·e

1%

Autre

Le taux des utilisateurs freelances de Django est deux fois plus élevé que celui des développeurs en général : la part des freelancers dans cette enquête est de 11 %, contre seulement 5 % dans l'écosystème total des développeurs, et 6 % dans l'enquête sur les développeurs Python.

Quelle est votre fonction ?>100

79%

Développement/Programmation

18%

Direction d'équipe

17%

Architecte

12%

CTO/CIO/CEO

7%

Management produit

6%

Assistance technique

4%

DBA

4%

Analyste métier

3%

Ingénierie AQ

3%

Rédaction technique

8%

Autre

Quelle est votre expérience professionnelle en matière de codage ?> 100%

9%

11%

Moins d'1 an

15%

17%

1 à 2 ans

22%

24%

3 à 5 ans

21%

19%

6 à 10 ans

33%

29%

+ de 11 ans

Les données démographiques de cette année montrent que les participants de l'enquête 2022 sont légèrement plus expérimentés que celles et ceux de l'année dernière.

Depuis combien de temps programmez-vous en Python ?> 100%

6%

8%

Moins d'1 an

16%

21%

1 à 2 ans

30%

31%

3 à 5 ans

28%

24%

6 à 10 ans

19%

16%

+ de 11 ans

Quelle est votre tranche d'âge ?

2%

Moins de 18 ans

4%

18–20

30%

21–29

37%

30–39

19%

40–49

6%

50–59

2%

60 ou plus

1%

Je préfère ne pas répondre

Dans quelle région vivez-vous ?

45%

Europe

19%

Amérique du Nord

18%

Asie

7%

Amérique du Sud

7%

Afrique

3%

Moyen-Orient

2%

Océanie

1%

Amérique centrale

1%

Autre

Dans quel pays / quelle région vivez-vous ?

15%

États-Unis

7%

Inde

6%

Allemagne

5%

France

5%

Royaume-Uni

3%

Espagne

3%

Russie

3%

Brésil

3%

Pologne

3%

Chine continentale

2%

Canada

2%

Pays-Bas

2%

Italie

2%

Australie

2%

Iran

1%

Nigeria

Société

Quelle est la taille de votre entreprise ?

18%

Ce n'est que moi

20%

2 à 10 personnes

20%

11 à 50 personnes

20%

51 à 500 personnes

5%

501 à 1 000 personnes

5%

1 001 à 5 000 personnes

8%

Plus de 5 000 personnes

3%

Je n'en suis pas sûr·e

Au sein de votre entreprise, quelle est la taille de votre équipe ?

9%

Ce n'est que moi

67%

2 à 7 personnes

14%

8 à 12 personnes

6%

13 à 20 personnes

2%

21 à 40 personnes

1%

Plus de 40 personnes

Les développeurs Django ont tendance à travailler en petites équipes.

Sur combien de projets travaillez-vous ?

Plus un développeur est expérimenté, plus ses projets sont nombreux. Les développeurs moins expérimentés travaillent généralement sur un projet principal avec plusieurs projets accessoires, voire uniquement sur un projet principal.

Travaillez-vous en équipe ou de manière indépendante ?

Lequel des secteurs suivants correspond le mieux aux activités de votre entreprise ?> 100%

38%

Technologies de l'information/Développement de logiciels

8%

Éducation/Formation

7%

Comptabilité/Finances/Assurance

5%

Médical/Santé

3%

Ventes/Distribution/Développement commercial

3%

Sciences

3%

À but non lucratif

3%

Banque/Immobilier/Prêts immobiliers

3%

Fabrication

2%

Administration/Gestion

2%

Logistique/Transport

2%

Marketing

2%

Affaires/Gestion stratégique

2%

Entretien/Maintenance

1%

Édition

1%

Sécurité

1%

Ressources humaines

1%

Hôtellerie/Restauration

1%

BTP/Architecture

1%

Design

1%

Juridique

1%

Support client

10%

Autre

Méthodologie et données brutes

Vous voulez explorer les données en détail ? Téléchargez les réponses anonymisées à l'enquête et voyez ce que vous pouvez apprendre ! Partagez vos conclusions et vos analyses en mentionnant @jetbrains et @djangoproject sur Twitter avec le hashtag #djangosurvey.

Avant de disséquer les données, veuillez prendre en compte les informations importantes ci-dessous :

L'ensemble de données comprend uniquement les réponses collectées par les canaux officiels de la Django Software Foundation. Après avoir éliminé les doublons et les réponses non fiables, l'ensemble des données se compose d'environ 4 900 réponses collectées en septembre-octobre 2022 grâce à la promotion de l'enquête sur les canaux officiels de Django, tels que djangoproject.com et le compte Twitter de la DSF. Afin d’éviter que l’enquête ne penche en faveur d’un outil ou d’une technologie spécifiques, aucun canal associé aux produits, aux services ou aux fournisseurs n’a été utilisé pour recueillir les réponses.

Par ailleurs, ces données sont anonymes et ne comportent pas d'informations personnelles ou de géolocalisation. En outre, afin d’empêcher l’identification de tout participant individuel par ses textes de commentaires, tous les champs ouverts ont été supprimés.

Pour vous aider à mieux comprendre la logique de l’enquête, nous partageons l’ensemble des données, les questions et toute la logique de l’enquête.

Télécharger les données brutes

Une fois encore, au nom de la Django Software Foundation et de JetBrains, nous tenons à remercier toutes les personnes qui ont participé à cette enquête.

Pour toute question or suggestion, merci de nous contacter à l'adresse surveys@jetbrains.com.