Histoire de la popularité de Django [fermé]


84

Quelle séquence d'événements a fait de Django le framework Web Python le plus populaire ... et toujours? Même si plusieurs autres cadres existent.

Remarque : Cette question n'est ni argumentative ni conflictuelle . J'ai simplement demandé "la séquence des événements" (objective) qui a conduit à sa popularité réelle. Conscient de la dynamique de l'acceptation des logiciels , je n'ai pas l'intention de discuter de supériorité technique.


14
Django étant le framework Web Python le plus populaire, c'est un fait, pas une opinion subjective. «séquence d'événements» désigne les décisions de conception, le calendrier, le marketing, etc. qui mènent à sa popularité. Qu'est-ce qui n'a pas de sens?
Sridhar Ratnakumar

2
C'est une très bonne question.
Joshua Partogi

Je regarderai avec intérêt pour savoir si ces décisions de conception, calendrier, marketing, etc., sont connus avec une précision et une rapidité suffisantes pour être considérés comme «historiques».
John Saunders

Je ne suis pas d'accord avec la clôture de cette question, mais ce serait peut-être mieux sur CS .
Kyle Strand

Réponses:


107

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

L'un est simplement le timing: Django est apparu juste alors que la première grande vague de battage médiatique de Rails montait, et il a donc été immédiatement décrit comme étant une sorte de «réponse de Python à Rails». Cela a abouti à un nombre non négligeable de globes oculaires sur le projet presque dès le début. Le fait qu'Adrian ait participé à la rencontre "Snakes and Rubies" à Chicago et ait pu participer à des discussions côte à côte sur Rails et Django a fait beaucoup pour 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 base de données, sauf si vous êtes sur Python 2.5+ et que vous utilisez SQLite, mais assez proche). Les alternatives non-Zope, qui visaient toutes à laisser le choix des composants entre les mains du développeur, nécessitaient un peu plus de travail juste pour arriver au point où vous pourriez faire un tutoriel de base: vous auriez besoin d'aller à la recherche d'un ORM, un langue de modèle, etc., etc. et faites-les tous installés et configurés. Bien que cela se soit beaucoup amélioré au fil des ans, je pense que le souvenir persistant de cela a toujours un effet.

Et Django est sorti de la porte avec une documentation qui (si je puis dire moi-même) était bien au-dessus de la norme habituelle pour les projets open source, et ne s'est améliorée qu'avec le temps. Le didacticiel, malgré tous ses nombreux défauts, aborde un certain nombre de points forts qui rendent Django utile, et le reste de la documentation a toujours été de bonne qualité, mélangeant à la fois des références API et des éléments de "mode d'emploi" importants selon les besoins. Cela produit une bonne expérience prête à l'emploi et aide à la courbe d'apprentissage post-tutoriel (quelque chose qui a toujours tourmenté 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; le fait qu'ils ont tendance à être de bons choix pour prendre vos bibliothèques préférées existantes et les brancher ensemble en est la source, je pense, et incite peut-être certaines personnes plus récentes à l'approche intégrée de Django. Le revers de la médaille, bien sûr, c'est que beaucoup de gens qui feraient mieux d'en apprendre plus avant d'essayer Django ne le font pas;)

Enfin, je pense qu'il y a quelque chose à dire sur la façon dont Django a été commercialisé, c'est-à-dire qu'il n'a pas vraiment été commercialisé depuis longtemps, ou du moins pas dans le sens où, disons, Rails était commercialisé. Jusqu'à ce que Django 1.0 débarque, l'effort de «marketing» consistait principalement à bloguer (et il y a eu des incidents notables où les gens ont été invités à atténuer un peu les choses), à discuter à PyCon puis surtout à améliorer le cadre, en créant des choses sympas avec et laisser les résultats parler d'eux-mêmes. Maintenant, bien sûr, dans le monde post-1.0, nous avons le DSF et DjangoCon et des consultants orientés métier qui font des sessions de formation et beaucoup de livres et tout le reste, mais tout cela est encore assez nouveau.

Je m'attends à ce qu'il y ait un contrecoup, tout comme il y en a eu avec Rails, et en fait, je pense que cela se prépare depuis un moment et 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 à l'origine de la croissance constante et régulière de la popularité que Django a connue depuis sa sortie initiale.


31
Pas besoin d'être modeste: la qualité et la quantité de la documentation de Django est un énorme plus pour elle. Bravo à tous.
Ned Deily

1
"Jusqu'à l'arrivée de Django 1.0, l'effort" marketing "consistait principalement à bloguer ..." Oubliez-vous les deux livres publiés (c'est-à-dire en cours depuis longtemps) avant la version 1.0, l'un d'entre eux étant le vôtre? Cela me semble être un gros marketing.
Cristian

9
Deux livres ne font pas du «marketing lourd», du moins pour moi. Et, pour être honnête, j'aurais préféré garder le mien jusqu'à la sortie de la version 1.0, ne serait-ce que parce que cela m'aurait beaucoup simplifié la vie.
James Bennett

4
Vous devriez probablement mentionner votre implication avec Django, car elle n'est pas aussi connue sur SO que, par exemple, votre blog. Il me semble que vous avez déjà écrit quelque chose à ce sujet, même si je ne trouve pas le lien atm.
Xiong Chiamiov

7
C'est assez facile de cliquer sur mon nom et de voir qui je suis.
James Bennett

112

De nombreux frameworks Web Python existaient déjà lorsque Django est apparu en 2005 - en effet, la blague circulait déjà, à ce moment-là, que Python est "le langage avec plus de frameworks Web que de mots-clés" (et Guido a rejeté ma proposition de corriger cela dans Py3k en ajouter de nombreux autres mots-clés). Maintenant, "django" en soi est un peu ambigu comme terme de recherche (c'est aussi le nom d'un guitariste populaire dont la vie a inspiré un film de Woody Allen, etc., etc.), ajoutant néanmoins "python" à la recherche pour supprimer ces autres significations vous pouvez voir par exemple dans ce graphiquecomment sa popularité relative a changé par rapport à un autre framework Web Python classique, Zope. Croissance principalement régulière d'un trimestre à l'autre, avec un énorme bond surprenant au début du deuxième trimestre de 2008 ... qui coïncide avec la date à laquelle Google a annoncé App Engine (il est impossible de prouver le lien de cause à au moins intéressant ;-).

App Engine exclut essentiellement toute infrastructure Web Python qui dépend profondément de composants codés C personnalisés ou qui nécessitent intrinsèquement des fonctionnalités «fortement relationnelles»; Parmi ceux qui fonctionnent bien avec du code Python pur, Django est probablement celui que App Engine prend le plus directement et visiblement en charge. Cependant, ce n'était qu'un coup de pouce, ajoutant à la tendance de croissance saine sous-jacente de Django. L'explication de cette tendance (et en fait de la décision de l'équipe App Engine et des utilisateurs de si bien soutenir Django) doit résider dans des caractéristiques intrinsèques à Django lui-même.

Django est parfois critiqué (y compris par ... le vôtre vraiment ;-) pour être "trop ​​magique" ou "trop ​​monolithique", comparé à des alternatives telles que Pylons, TurboGears, Werkzeug, etc., qui sont plus légères (surtout ces dernières) , mon préféré ;-), plus transparent, et permet un échange plus facile entre des composants spécifiques (ORM, templating, 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 considéré comme un cadre très riche et bien intégré (et il a beaucoup d'ajouts. ons et "plugins" contribués, mais ceux-ci sont plus une conséquence qu'une cause de son ascendant).

Facilité de démarrage, "pages d'administration" automatiques, etc. - ainsi que le fait que Django peut être plié pour créer des sites / applications vraiment riches et complexes et répondre à des exigences particulières ou uniques, avec beaucoup de compétences et un peu de travail - sont probablement les "fonctionnalités qui tuent". Pour utiliser Werkzeug au mieux, vous devez comprendre HTTP et WSGI, et choisir et intégrer votre stockage et vos modèles préférés - les développeurs de sites Web et d'applications basés sur Python (comme, dans un sens, les utilisateurs de Rails ou les utilisateurs de PHP encore plus populaire! -) «votent avec leur esprit» pour un environnement dans lequel ils n'ont pas nécessairement besoin de faire quoi que ce soit, mais peuvent surtout se concentrer sur leur domaine d'application. Je dois admettre qu'ils ont probablement un point ;-).


3
Je pense que, étant donné la popularité de Django, une certaine familiarité avec celui-ci vous sera très utile; cela n'empêche pas d'utiliser repoze.bfg, werkzeug, etc., lorsqu'ils conviennent mieux à une application ou à un site. Vous pourriez faire un projet semi-jouet à partir de zéro dans chacun d'eux, si vous avez du temps, et ainsi acquérir une appréciation plus profonde des forces et des faiblesses qui les rendent plus ou moins appropriés en fonction de ce qu'un projet implique (je dois admettre Je n'ai aucune expérience concrète de première main avec repoze.bfg ...).
Alex Martelli

1
@Triptych, clairement pas la seule raison, puisque certains autres frameworks ( pas n'importe quel framework cependant: pensez à Zope, par exemple! -) auraient pu être tout aussi applicables. Je suppose que mes réflexions sur les avantages, pour les développeurs d'applications / de sites, de cadres richement intégrés et quelque peu «magiques» ont peut-être influencé la décision d'offrir un support principal (par exemple, en le rendant automatiquement disponible sans nécessiter de téléchargement d'utilisateur).
Alex Martelli

1
@cletus, Java a 50 mots-clés par java.sun.com/docs/books/tutorial/java/nutsandbolts/… , Python 2.6 en a 31 par len(keyword.kwlist)- par exemple, les noms de types ne sont pas des mots-clés en Python, etc.
Alex Martelli

34
Je pense que vous manquez un point important. La documentation de Django était (bien) meilleure que n'importe quel framework Python (ainsi que meilleure que la documentation des rails, IMO)
agiliq

6
@Alex, je doute que quiconque lise réellement les documents du début à la fin, mais la plupart des gens qui ont un problème lancent une recherche sur Google. Être capable de trouver la réponse en 5 minutes en utilisant de beaux documents au lieu d'une heure de recherche dans les articles de blog est un gros plus (c'était jusqu'à StackOveflow, au moins, ce qui rendait beaucoup plus facile de poser des questions stupides;)
Edan Maor

22

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

  1. Documentation. Il est bien structuré, complet et accessible à partir d'un certain nombre de niveaux de compétence.

  2. Conception. La conception visuelle de l'administrateur, des pages d'erreur et du site du projet est bien au-dessus du 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 choisi des évangélistes influents. Je ne suis pas sûr que vous puissiez surestimer l'importance des articles de blog comme Django de Jeff Croft pour les non-développeurs (je pense que c'était le titre).


13

"Mon favori personnel, et je pense que cela restera un favori personnel pendant longtemps, est quelque chose qui s'appelle Django" - Guido Van Rossum sur l'épisode hebdomadaire 11 de FLOSS, diffusé le 4 août 2006

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

Vous pensez que cela aurait pu aider? ou du moins la raison pour laquelle Google l'a choisi pour AppEngine?

bien sûr, la communauté django (y compris les développeurs) fait beaucoup de choses correctement. Par exemple (quelques analyses dans les liens):

Améliorer la modularité: [Cliquez ici]

documentation kick ass Cliquez ici

Il y a aussi quelque chose dans la communauté qui incite les gens à vouloir contribuer sur lequel je n'ai pas encore mis le doigt: Cliquez ici

Bien sûr, tout cela fait que Django est une valeur aberrante: cliquez ici

Il n'y a aucun doute sur la popularité de Django.


1
Je pense que cette réponse fournit un peu les autres non. Beaucoup de gens sont allés aveuglément à Django à cause de ce commentaire.
Jorge Vargas

Rien de mal à le faire aveuglément quand Guido le décrit comme tel. Je l'ai fait et je n'ai jamais regardé en arrière depuis.
Vers le haut.

3

Dans mon cas, j'avais acheté le livre TurboGears, et je me suis débattu à travers ses incohérences et son parcours aléatoire pour expliquer les choses. Ensuite, j'ai eu le livre Django, et voilà! Mon premier projet payant a été créé en parcourant l'exemple de projet du livre. Cela plus la documentation en ligne a scellé l'affaire. Pour moi, c'était simple: Documentation, documentation, documentation.


2

J'ai remarqué qu'il était souvent présenté comme l'équivalent Ruby on Rails en Python. Il dispose également d'une connexion à Google (Google héberge les événements Django et les prend en charge dans leur App Engine). Un cadre Web approuvé par Google doit valoir quelque chose. :)


2
Bien sûr, mais GAE est venu beaucoup plus tard dans le processus. Et Django était déjà populaire.
Sridhar Ratnakumar

1
@Sridhar, oui - J'ai fait les deux remarques dans ma réponse: GAE a donné à Django une grosse augmentation à sa date d'annonce ... mais cela s'ajoutait à une tendance de croissance régulière.
Alex Martelli

2

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

Ce n'était pas seulement un sceau de qualité, mais cela rendait Django très convivial pour le Web, avec son respect pour HTTP, le balisage, et même la façon rapide et sale de travail de «débogage d'impression» à laquelle les gens venant de PHP étaient habitués.

Je me trompe peut-être énormément ici, pas de données pour étayer cela, mais je pense que Django a gagné beaucoup plus de traction auprès de personnes venant de PHP, par opposition à Rails qui a obtenu beaucoup de conversions de Java / .NET.

Comme d'autres l'ont déjà noté, la documentation est bien au-dessus de la moyenne. Le meilleur que j'ai vu, pour autant que je me souvienne.


0

Le fait qu'il y avait plusieurs sites à fort volume utilisant déjà Django (ie lawrence.com etc ...) - même à la 0.96 jours - m'a aidé à convaincre la direction qu'il était sûr d'utiliser. Des choses comme Pylons et Turbogears n'avaient vraiment pas cela.


1
Heureusement, ces jours sont révolus, maintenant que les pylônes ont maintenant reddit.com et sourceforge (via turbogears).
zzzeek

Cependant, Pylons n'a pas encore atteint la version 1.0, ce qui, je suppose (pas vérifié), signifie qu'ils n'ont pas les promesses de stabilité de l'API de Django.
Xiong Chiamiov

-1

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


1
Le lien de tendance est faux. Comme l'a souligné @Alex Martelli, vous devez faire sortir le guitariste.
Jorge Vargas
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.