Histoire de la popularité de Django

Quelle séquence d’événements a fait de Django l’infrastructure Web Python la plus populaire? Même si plusieurs autres frameworks existent.

Note : Cette question n’est ni argumentative ni conflictuelle . J’ai simplement demandé (objective) “la séquence des événements” qui a mené à sa popularité réelle. Conscients de la dynamic de l’acceptation du logiciel , je n’ai pas l’intention de prétendre à la supériorité technique.

Je pense qu’il y avait quelques facteurs dont la combinaison était supérieure à la sum de leurs poids individuels.

L’un est simplement le timing: Django est apparu comme la première grande vague de battage publicitaire de Rails était en train de monter en puissance, et a donc immédiatement été présentée comme une sorte de “réponse de Python à Rails”. Cela a entraîné un nombre non négligeable de globes oculaires sur le projet presque depuis le début. Le fait qu’Adrian ait participé à la rencontre “Snakes and Rubies” à Chicago et qu’il ait pu participer à des discussions parallèles sur Rails et Django a beaucoup consortingbué à cela.

Un autre facteur est que Django est et a toujours été une installation mono-package (enfin, pas tout à fait: vous avez toujours besoin d’un adaptateur de firebase database, sauf si vous utilisez Python 2.5+ et SQLite, mais assez proche). Les alternatives non-Zope, qui consistaient toutes à laisser des choix de composants entre les mains du développeur, exigeaient un peu plus de travail pour arriver à un didacticiel de base: il fallait aller chercher un ORM, un langage de gabarit, etc., etc. et les installer et les configurer. Bien que cela se soit beaucoup amélioré au fil des ans, je pense que le souvenir persistant de ce phénomène a toujours un effet.

Et Django est sorti de la porte avec de la documentation qui (si je puis dire moi-même) était bien au-dessus du standard habituel pour les projets open-source et ne s’est améliorée qu’avec le temps. Le didacticiel, malgré ses nombreuses erreurs, a atteint des sumts qui ont rendu Django utile, et le rest de la documentation a toujours été de bonne qualité, associant à la fois une référence API et d’importants bits explicatifs. Cela produit une bonne expérience et aide à la courbe d’apprentissage post-tutoriel (quelque chose qui a toujours affecté Zope).

Je pense aussi qu’il y a une perception – à tort ou à raison – que, disons, Pylons ou Werkzeug sont vraiment meilleurs pour les développeurs expérimentés qui connaissent déjà WSGI et l’écosystème Web Python; Je pense que le fait qu’ils aient tendance à être des choix forts pour prendre vos bibliothèques favorites existantes et les twigr est peut-être la source, et peut-être incite certaines personnes plus récentes à adopter l’approche intégrée de Django. Le revers de la médaille, bien sûr, est que beaucoup de gens qui feraient mieux d’apprendre plus avant d’essayer Django ne le font pas;)

Enfin, je pense qu’il y a quelque chose à dire sur la manière dont Django a été commercialisé, à savoir qu’il n’a pas été commercialisé depuis longtemps, ou du moins pas dans le sens où, par exemple, Rails était commercialisé. Jusqu’à l’atterrissage de Django 1.0, les efforts de «marketing» consistaient principalement à bloguer (et il y avait des incidents notables où les gens étaient invités à les atténuer un peu), à PyCon, puis à améliorer le framework, à créer des choses sympas. et laisser les résultats parler d’eux-mêmes. Maintenant, bien sûr, dans le monde post-1.0, nous avons les DSF et DjangoCon, ainsi que des consultants orientés business qui font des sessions de formation, beaucoup de livres et tout le rest, mais tout cela est encore assez récent.

Je pense qu’il y aura un retour de bâton, tout comme il y a eu des Rails, et en fait, je pense que ça se fait depuis un certain temps et que ça a déjà commencé. Mais jusqu’à présent, je pense que les facteurs que j’ai énumérés ici sont au moins les principaux facteurs derrière la croissance constante et constante de la popularité de Django depuis sa sortie initiale.

De nombreux frameworks web Python existaient déjà lorsque Django est apparu en 2005 – en fait, la blague circulait déjà, à ce moment-là, que Python était “le langage avec plus de frameworks Web que de mots-clés” (et Guido rejetait ma proposition en ajoutant beaucoup, beaucoup plus de mots-clés). Maintenant, “django” en soi est un terme de recherche un peu ambigu (c’est aussi le nom d’un guitariste populaire dont la vie a inspiré un film de Woody Allen, etc.), ajoutant néanmoins “python” à la recherche pour supprimer ces autres significations Vous pouvez voir par exemple dans ce graphique comment sa popularité relative a changé par rapport à un autre framework web Python classique, Zope. Surtout une croissance stable d’un sortingmestre à l’autre, avec un bond surprenant au début du deuxième sortingmestre 2008… qui coïncide avec la date à laquelle Google a annoncé App Engine (il est impossible de prouver la causalité dans ce cas, mais la coïncidence est au moins intéressant ;-).

App Engine exclut essentiellement toute structure Web Python qui dépend en profondeur de composants C-codés personnalisés, ou nécessite insortingnsèquement une fonctionnalité «fortement relationnelle». Parmi ceux qui fonctionnent bien avec du code Python pur, Django est probablement celui que App Engine supporte le plus directement et de manière visible. Cependant, il ne s’agissait que d’un coup de pouce, ajoutant à la tendance de croissance saine sous-jacente de Django. L’explication de cette tendance (et du fait que l’équipe App Engine et la décision des utilisateurs de prendre en charge si bien Django) doit reposer sur des caractéristiques insortingnsèques à Django.

Django est parfois critiqué (y compris par les vôtres 😉 pour être “trop ​​magique” ou “trop ​​monolithique”, comparé aux alternatives telles que Pylons, TurboGears, Werkzeug, etc., plus légères , mon préféré ;-), plus transparent, et permettant un échange plus facile de composants spécifiques (ORM, création de modèles, etc.). Cependant, la popularité de Django nous indique que, pour la plupart des personnes intéressées par le développement de sites Web et d’applications côté serveur, ces choix de conception Django sont perçus positivement: Django est perçu comme une infrastructure très riche et bien intégrée. ons et consortingbués “plugins”, mais ceux-ci sont plus une conséquence qu’une cause de son ascendant).

Facilité de démarrage, “pages d’administration” automagiques et autres – et le fait que Django peut être tenté de créer des applications / sites très riches et complexes et de répondre à des besoins particuliers ou uniques, avec beaucoup de compétence et de travail – sont probablement les “caractéristiques killer”. Pour utiliser Werkzeug à son meilleur, vous devez comprendre HTTP et WSGI, et choisir et intégrer vos systèmes de stockage et de modélisation préférés – les développeurs de sites Web et d’applications basés sur Python (comme les utilisateurs de Rails ou les utilisateurs de Rails). PHP encore plus populaire! – «vote avec son esprit» pour un environnement dans lequel il n’est pas nécessaire de faire tout cela, mais qui peut surtout se concentrer sur son domaine d’application. Je dois admettre qu’ils ont probablement un point ;-).

Je peux penser à trois raisons pour la popularité de Django, dont une seule a été abordée dans d’autres réponses pour autant que je voie:

  1. Documentation. Il est bien structuré, complet et accessible à plusieurs niveaux de compétences.

  2. Conception. La conception visuelle de l’administrateur, des pages d’erreur et du site du projet est bien supérieure au niveau de conception observé avec la plupart des projets open source.

  3. Soutien communautaire. En commençant par l’équipe de World Online, Django a rapidement recruté des évangélistes influents. Je ne suis pas sûr que vous puissiez affirmer l’importance des articles de blog comme Django pour les non-développeurs de Jeff Croft (je pense que c’était le titre).

“Mon favori personnel, et je pense que cela restra longtemps mon préféré, est quelque chose qui s’appelle Django” – Guido Van Rossum sur l’épisode hebdomadaire FLOSS 11, diffusé le 4 août 2006

[Cliquez ici] (écoutez le dernier tiers de l’interview)

Pense que cela pourrait avoir aidé? ou du moins la raison pour laquelle Google l’a choisi pour AppEngine?

Bien sûr, la communauté de Django (y compris les développeurs) fait beaucoup de choses. Par exemple (Quelques parsings dans les liens):

Améliorer la modularité: [cliquez ici]

Documentation sur les culs Cliquez ici

Il y a aussi quelque chose à propos de la communauté qui incite les gens à vouloir consortingbuer, ce que je n’ai pas encore mis le doigt dessus: Cliquez ici

Bien sûr, tout ce qui fait que Django est une aberrante: cliquez ici

La popularité de Django ne fait aucun doute.

Dans mon cas, j’avais acheté le livre TurboGears et lutté contre ses incohérences et sa façon hasardeuse d’expliquer les choses. Ensuite, j’ai eu le livre de Django, et le tour est joué! Mon premier projet payant a été créé tout au long du projet. En plus de la documentation en ligne, cela a scellé la transaction. Pour moi, c’était simple: documentation, documentation, documentation.

J’ai remarqué qu’il a souvent été promu comme étant l’équivalent Ruby on Rails en Python. Il est également connecté à Google (Google héberge des événements Django et les prend en charge dans leur App Engine). Une structure Web approuvée par Google doit équivaloir à quelque chose. 🙂

Au moins pour moi, un facteur important était que Simon Willison et Adrian Holovaty étaient déjà des acteurs bien connus de la scène “Web Standards”, ainsi que Jeff Croft plus tard.

Ce n’était pas seulement un label de qualité, mais il a également rendu Django très convivial avec son respect pour HTTP, le balisage et même la méthode rapide et sale de “débogage d’impression” utilisée par les personnes venant de PHP.

Je peux me tromper ici, pas de données à sauvegarder, mais je pense que Django a beaucoup gagné en popularité auprès des personnes venant de PHP, par opposition aux Rails qui ont beaucoup de conversions depuis Java / .NET.

Comme d’autres l’ont déjà noté, la documentation est bien supérieure à la moyenne. Le meilleur que j’ai vu, autant que je me souvienne.

Le fait qu’il y ait déjà eu plusieurs sites à fort volume utilisant Django (par exemple, lawrence.com etc …), même par 0,96 jour, m’a aidé à convaincre la direction que l’utilisation était sûre. Des choses comme Pylons et Turbogears n’avaient vraiment pas cela.

En ce qui concerne la popularité de Django au fil du temps (le sens littéral de votre titre de question, si ce n’est pas tout à fait votre question réelle), jetez un oeil à la tendance de Google .