Ich denke, es gab einige Faktoren, deren Kombination größer war als die Summe ihrer individuellen Gewichte.
Eines ist einfach das Timing: Django schien richtig zu sein, als die erste große Welle des Rails-Hype anstieg, und so wurde es sofort als eine Art "Pythons Antwort auf Rails" dargestellt. Dies führte fast von Anfang an zu einer nicht unerheblichen Anzahl von Augäpfeln im Projekt. Die Tatsache, dass Adrian beim "Snakes and Rubies" -Treffen in Chicago war und an Nebengesprächen über Rails und Django teilnehmen durfte, hat viel dazu beigetragen.
Ein weiterer Faktor ist, dass Django eine Einzelpaketinstallation ist und war (nun ja, nicht ganz: Sie benötigen immer noch einen Datenbankadapter, es sei denn, Sie arbeiten mit Python 2.5+ und verwenden SQLite, sind aber nah genug dran). Die Nicht-Zope-Alternativen, die sich alle darauf konzentrierten, die Auswahl der Komponenten in den Händen des Entwicklers zu lassen, erforderten viel mehr Arbeit, um an den Punkt zu gelangen, an dem Sie ein grundlegendes Tutorial durchführen konnten: Sie müssten einen ORM suchen, a Vorlagensprache usw. usw. und installieren und konfigurieren Sie sie alle. Obwohl das im Laufe der Jahre viel besser geworden ist, denke ich, dass die anhaltende Erinnerung daran immer noch Wirkung zeigt.
Und Django kam mit einer Dokumentation aus dem Tor, die (wenn ich es selbst sagen darf) weit über dem üblichen Standard für Open-Source-Projekte lag und mit der Zeit nur besser geworden ist. Das Tutorial trifft trotz all seiner vielen Fehler auf eine Reihe von Höhepunkten, die Django nützlich machen, und der Rest der Dokumentation war immer von guter Qualität, wobei sowohl API-Referenz als auch wichtige "How to" -Bits nach Bedarf gemischt wurden. Dies führt zu einer guten Out-of-the-Box-Erfahrung und hilft bei der Lernkurve nach dem Tutorial (was Zope schon immer geplagt hat).
Ich denke auch, dass es eine Wahrnehmung gibt - zu Recht oder zu Unrecht -, dass beispielsweise Pylons oder Werkzeuge wirklich besser für erfahrene Entwickler sind, die sich bereits mit WSGI und dem Python-Web-Ökosystem auskennen. Die Tatsache, dass sie in der Regel eine gute Wahl sind, um Ihre vorhandenen Lieblingsbibliotheken zu nutzen und zusammenzufügen, ist meiner Meinung nach die Quelle dafür und treibt möglicherweise einige neuere Leute zu Djangos integriertem Ansatz. Die Kehrseite ist natürlich, dass viele Leute, die besser dran sind, mehr im Voraus zu lernen, bevor sie Django ausprobieren, das nicht tun;)
Schließlich denke ich, dass es etwas zu sagen gibt für die Art und Weise, wie Django vermarktet wurde, das heißt, dass es wirklich lange Zeit nicht vermarktet wurde, oder zumindest nicht in dem Sinne, dass beispielsweise Rails vermarktet wurde. Bis zur Landung von Django 1.0 bestand die "Marketing" -Anstrengung hauptsächlich aus Bloggen (und es gab einige bemerkenswerte Vorfälle, in denen die Leute gebeten wurden, es ein wenig abzuschwächen), Gesprächen bei PyCon und dann meist nur der Verbesserung des Frameworks, um damit coole Dinge aufzubauen und die Ergebnisse für sich selbst sprechen lassen. In der Welt nach 1.0 haben wir natürlich DSF und DjangoCon sowie geschäftsorientierte Berater, die Schulungen und viele Bücher und alles andere durchführen, aber das ist alles noch ziemlich neu.
Ich gehe davon aus, dass es eine Gegenreaktion geben wird, genau wie bei Rails, und ich denke, es braut sich schon eine Weile zusammen und hat bereits begonnen. Aber bis jetzt denke ich, dass die Faktoren, die ich hier aufgelistet habe, zumindest die Hauptfaktoren für das stetige, stetige Wachstum der Popularität sind, das Django seit seiner ersten Veröffentlichung gesehen hat.