Welche Abfolge von Ereignissen machte Django zum beliebtesten Python-Webframework. Und das immer noch? Obwohl es mehrere andere Frameworks gibt.
Hinweis : Diese Frage ist weder argumentativ noch konfrontativ . Ich habe lediglich nach (objektiven) "Abfolgen von Ereignissen" gefragt, die zu seiner tatsächlichen Popularität führen. Da ich mir der Dynamik der Softwareakzeptanz bewusst bin, beabsichtige ich nicht, über die technische Überlegenheit zu streiten.
Antworten:
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.
quelle
Viele Python-Webframeworks existierten bereits, als Django 2005 erschien - tatsächlich ging der Witz bereits dahin, dass Python "die Sprache mit mehr Webframeworks als Schlüsselwörtern" ist (und Guido lehnte meinen Vorschlag ab, dies in Py3k durch zu beheben viele, viele weitere Schlüsselwörter hinzufügen). Jetzt ist "django" per se als Suchbegriff etwas mehrdeutig (es ist auch der Name eines beliebten Gitarristen, dessen Leben einen Woody Allen-Film usw. usw. inspiriert hat), und fügt der Suche dennoch "Python" hinzu, um diese anderen Bedeutungen zu entfernen Sie können zB in dieser Grafik sehenwie sich seine relative Popularität im Vergleich zu einem anderen klassischen Python-Webframework, Zope, verändert hat. Meistens stetiges Wachstum gegenüber dem Vorquartal, mit einem großen überraschenden Anstieg zu Beginn des zweiten Quartals 2008 ... der zufällig mit dem Datum zusammenfällt, an dem Google App Engine angekündigt hat (in einem solchen Fall ist es unmöglich, die Ursache zu beweisen, aber der Zufall ist es zumindest interessant ;-).
App Engine schließt im Wesentlichen jedes Python-Webframework aus, das stark von benutzerdefinierten C-codierten Komponenten abhängt oder an sich "stark relationale" Funktionen erfordert. Von denen, die nur mit reinem Python-Code gut funktionieren, ist Django wahrscheinlich derjenige, den App Engine am direktesten und sichtbarsten unterstützt. Dies war jedoch nur ein Schub, der zu Djangos zugrunde liegendem gesunden Wachstumstrend beitrug. Die Erklärung für diesen Trend (und in der Tat für die Entscheidung des App Engine-Teams und der Benutzer, Django so gut zu unterstützen) muss in Eigenschaften liegen, die Django selbst eigen sind.
Django wird manchmal kritisiert (auch von ... Ihnen wirklich ;-), weil er "zu magisch" oder "zu monolithisch" ist, verglichen mit Alternativen wie Pylons, TurboGears, Werkzeug usw., die leichter sind (insbesondere letzteres) , mein Favorit ;-), transparenter und einfacheres Ein- und Auswechseln bestimmter Komponenten (ORM, Vorlagen usw.). Die Popularität von Django zeigt jedoch, dass diese Django-Designentscheidungen für die meisten Menschen, die an der Entwicklung serverseitiger Websites und Apps interessiert sind, positiv wahrgenommen werden: Django wird als sehr reichhaltiges und gut integriertes Framework angesehen (und es hat viele zusätzliche Vorteile). ons und beigetragene "Plugins", aber diese sind eher eine Konsequenz als eine Ursache für ihren Aufstieg).
Einfache begonnen, automagischen „admin Seiten“ und dergleichen - sowie die Tatsache , dass Django kann gebogen werden , um wirklich reiche und komplexe Websites / apps zu machen und eigentümlich oder individuellen Anforderungen, mit viel Geschick und etwas Arbeit aufnehmen - sind wahrscheinlich die "Killer Features". Um Werkzeug optimal nutzen zu können, müssen Sie HTTP und WSGI verstehen und Ihren bevorzugten Speicher und Vorlagen auswählen und integrieren - Entwickler von Python-basierten Websites und Apps (in gewissem Sinne Benutzer von Rails oder Benutzer von Noch beliebteres PHP! -) "stimmen mit ihrem Mindshare ab" für eine Umgebung, in der sie nicht unbedingt etwas davon tun müssen, sondern sich hauptsächlich auf ihre Anwendungsdomäne konzentrieren können. Ich muss zugeben, dass sie wahrscheinlich einen Punkt haben ;-).
quelle
len(keyword.kwlist)
- z. B. sind Typnamen keine Schlüsselwörter in Python usw.Ich kann mir drei Gründe für die Popularität von Django vorstellen, von denen meines Erachtens nur einer in anderen Antworten angesprochen wurde:
Dokumentation. Es ist gut strukturiert, umfassend und von einer Reihe von Schwierigkeitsstufen aus zugänglich.
Design. Das visuelle Design des Administrators, der Fehlerseiten und der Projektwebsite liegt weit über dem Designniveau, das bei den meisten Open Source-Projekten zu beobachten ist.
Gemeinschaftliche Unterstützung. Beginnend mit dem Team von World Online hat Django schon früh einige einflussreiche Evangelisten aufgegriffen. Ich bin mir nicht sicher, ob Sie die Bedeutung von Blog-Posts wie Jeff Crofts Django für Nicht-Entwickler überbewerten können (ich denke, das war der Titel).
quelle
"Mein persönlicher Favorit, und ich gehe davon aus, dass dies noch lange ein persönlicher Favorit sein wird, heißt Django" - Guido Van Rossum in der wöchentlichen FLOSS-Folge 11, ausgestrahlt am 4. August 2006
[Hier klicken] (letztes Drittel des Interviews anhören)
Denken Sie, das hätte vielleicht geholfen? oder zumindest der Grund, warum Google es für AppEngine ausgewählt hat?
Natürlich macht die Django-Community (einschließlich der Entwickler) vieles richtig. Zum Beispiel (Einige Analysen in den Links):
Verbesserung der Modularität: [Hier klicken]
Kick Ass Dokumentation Klicken Sie hier
Es gibt auch etwas in der Community, das die Leute dazu bringt, einen Beitrag zu leisten, auf den ich noch keinen Finger gelegt habe: Klicken Sie hier
Natürlich alles, was dazu führt, dass Django ein Ausreißer ist: Klicken Sie hier
Es gibt keine Frage über Djangos Popularität.
quelle
In meinem Fall hatte ich das TurboGears-Buch gekauft und mich durch seine Inkonsistenzen und den zufälligen Weg zur Erklärung der Dinge gekämpft. Dann bekam ich das Django-Buch und voila! Mein erstes kostenpflichtiges Projekt wurde erstellt, während ich mich durch das Beispielprojekt im Buch arbeitete. Das und die Online-Dokumentation besiegelten den Deal. Für mich war es einfach: Dokumentation, Dokumentation, Dokumentation.
quelle
Mir ist aufgefallen, dass es in Python oft als Ruby on Rails-Äquivalent beworben wurde. Es hat auch eine Verbindung zu Google (Google hostet Django-Events und unterstützt diese in ihrer App Engine). Ein von Google empfohlenes Webframework muss etwas ausmachen. :) :)
quelle
Zumindest für mich war ein wichtiger Faktor, dass Simon Willison und Adrian Holovaty bereits bekannte Spieler in der "Web Standards" -Szene waren, ebenso wie Jeff Croft später.
Das war nicht nur ein Qualitätssiegel, sondern machte Django auch sehr webfreundlich, mit seinem Respekt vor HTTP, Markup und sogar der schnellen und schmutzigen "Print-Debugging" -Methode, an die Leute aus PHP gewöhnt waren.
Ich könnte mich hier stark irren, keine Daten, um dies zu sichern, aber ich habe das Gefühl, dass Django von Leuten, die aus PHP kommen, viel mehr Zugkraft gewonnen hat als von Rails, die viele Konvertierungen von Java / .NET erhalten haben.
Wie bereits erwähnt, ist die Dokumentation weit überdurchschnittlich. Das Beste, was ich gesehen habe, soweit ich mich erinnere.
quelle
Die Tatsache, dass es bereits mehrere Websites mit hohem Volumen gab, auf denen Django verwendet wurde (z. B. lawrence.com usw.) - selbst nach 0,96 Tagen -, half mir, das Management davon zu überzeugen, dass die Verwendung sicher ist. Dinge wie Pylons und Turbogears hatten das wirklich nicht.
quelle
Was die Popularität von Django im Laufe der Zeit betrifft (die wörtliche Bedeutung Ihres Fragentitels, wenn nicht ganz Ihre eigentliche Frage), werfen Sie einen Blick auf den Google-Trend .
quelle