Storia della popolarità di Django [chiuso]


84

Quale sequenza di eventi ha reso Django il framework web Python più popolare .. e ancora così? Anche se esistono molti altri framework.

Nota : questa domanda non è né polemica né conflittuale . Ho semplicemente chiesto (oggettiva) "la sequenza di eventi" che portano alla sua effettiva popolarità. Essendo consapevole delle dinamiche di accettazione del software , non intendo che nessuno si metta in discussione sulla superiorità tecnica.


14
Django essendo il framework web Python più popolare è un dato di fatto, non un'opinione soggettiva. "sequenza di eventi" indica le decisioni di progettazione, i tempi, il marketing e così via che portano alla sua popolarità. Cosa c'è di senza senso in questo?
Sridhar Ratnakumar

2
Questa è davvero una buona domanda.
Joshua Partogi,

Guarderò con interesse per sapere se queste decisioni di progettazione, tempistica, marketing, ecc. Sono conosciute con sufficiente accuratezza e tempestività per essere considerate "storia".
John Saunders,

Non sono d'accordo con la chiusura di questa domanda, ma potrebbe essere migliore su CS .
Kyle Strand

Risposte:


107

Penso che ci fossero alcuni fattori, la cui combinazione era maggiore della somma dei loro pesi individuali.

Uno è semplicemente il tempismo: Django è apparso proprio mentre la prima grande ondata di hype di Rails stava aumentando, e così è stato immediatamente descritto come una sorta di "risposta di Python a Rails". Ciò ha comportato un numero non irrilevante di bulbi oculari sul progetto quasi dall'inizio. Il fatto che Adrian fosse al meetup "Snakes and Rubies" a Chicago e abbia preso parte a discorsi fianco a fianco su Rails e Django ha contribuito molto a questo.

Un altro fattore è che Django è ed è sempre stato un'installazione a pacchetto singolo (beh, non proprio: hai ancora bisogno di un adattatore per database, a meno che tu non sia su Python 2.5+ e utilizzi SQLite, ma abbastanza vicino). Le alternative non Zope, che si concentravano tutte sul lasciare la scelta dei componenti nelle mani dello sviluppatore, richiedevano un po 'più di lavoro solo per arrivare al punto in cui si poteva fare un tutorial di base: avresti bisogno di andare a caccia di un ORM, un linguaggio modello, ecc., ecc. e installali e configurali tutti. Sebbene sia migliorato molto nel corso degli anni, penso che il ricordo persistente di ciò abbia ancora un effetto.

E Django è uscito dal cancello con una documentazione che (se così posso dire io stesso) era molto al di sopra del solito standard per i progetti open-source, ed è solo migliorata nel tempo. Il tutorial, nonostante tutti i suoi numerosi difetti, colpisce una serie di punti salienti che rendono Django utile, e il resto della documentazione è sempre stato di buona qualità, mescolando sia riferimenti API che importanti bit di "come fare" secondo necessità. Questo produce una buona esperienza fuori dagli schemi e aiuta con la curva di apprendimento post-tutorial (qualcosa che ha sempre afflitto Zope).

Penso anche che ci sia la percezione - a torto oa ragione - che, diciamo, Pylons o Werkzeug siano davvero migliori per sviluppatori esperti che conoscono già WSGI e l'ecosistema web Python; il fatto che tendano ad essere scelte forti per prendere le tue librerie preferite esistenti e collegarle insieme è la fonte di questo, penso, e forse spinge alcune persone più recenti verso l'approccio integrato di Django. Il rovescio della medaglia, ovviamente, è che molte persone che farebbero meglio a imparare di più in anticipo prima di provare Django non lo fanno;)

Infine, penso che ci sia qualcosa da dire sul modo in cui Django è stato commercializzato, vale a dire che non è stato commercializzato per molto tempo, o almeno non nel senso in cui, diciamo, Rails è stato commercializzato. Fino all'arrivo di Django 1.0, lo sforzo di "marketing" consisteva principalmente in persone che bloggavano (e c'erano alcuni incidenti notevoli in cui alle persone veniva chiesto di attenuarlo un po '), discorsi a PyCon e poi principalmente solo migliorare il framework, costruendo cose interessanti con esso e lasciando che i risultati parlino da soli. Ora, ovviamente, nel mondo post-1.0 abbiamo DSF e DjangoCon e consulenti orientati al business che fanno sessioni di formazione e molti libri e tutto il resto, ma è tutto ancora abbastanza nuovo.

Mi aspetto che ci sarà un contraccolpo, proprio come è stato con Rails, e in effetti penso che sia in fermento da un po 'e sia già iniziato. Ma fino ad ora penso che i fattori che ho elencato qui siano almeno quelli principali alla base della crescita costante e costante della popolarità che Django ha visto dalla sua uscita iniziale.


31
Non c'è bisogno di essere modesti: la qualità e la quantità della documentazione di Django è un enorme vantaggio per questo. Ben fatto, tutto.
Ned Deily

1
"Fino all'arrivo di Django 1.0, lo sforzo di" marketing "consisteva principalmente in persone che bloggano ..." Stai dimenticando i due libri pubblicati (cioè in lavorazione da molto tempo) prima della 1.0, uno dei quali è tuo? Mi sembra un marketing pesante.
Cristian

9
Due libri non fanno "marketing pesante", almeno per me. E, ad essere onesto, avrei preferito tenere il mio spento fino all'uscita della 1.0, se non altro perché mi avrebbe semplificato un po 'la vita.
James Bennett

4
Probabilmente dovresti menzionare il tuo coinvolgimento con Django, dal momento che non è così noto su SO come, ad esempio, il tuo blog. Mi sembra di ricordare che hai scritto qualcosa su questo prima, anche se non riesco a trovare il link atm.
Xiong Chiamiov

7
È abbastanza facile fare clic sul mio nome e vedere chi sono.
James Bennett

112

Molti framework web Python esistevano già quando Django è apparso nel 2005 - anzi, a quel punto si stava già scherzando sul fatto che Python è "il linguaggio con più framework web che parole chiave" (e Guido ha rifiutato la mia proposta di risolverlo in Py3k aggiungendo molte, molte più parole chiave). Ora "django" di per sé è un po 'ambiguo come termine di ricerca (è anche il nome di un famoso chitarrista la cui vita ha ispirato un film di Woody Allen, ecc. Ecc.), Tuttavia aggiungendo "python" alla ricerca per rimuovere questi altri significati puoi vedere ad esempio in questo graficocome è cambiata la sua popolarità relativa rispetto a un altro classico framework web Python, Zope. Crescita per lo più costante trimestre su trimestre, con un enorme e sorprendente balzo all'inizio del secondo trimestre 2008 ... che coincide proprio con la data in cui Google ha annunciato App Engine (è impossibile provare il nesso di causalità in questo caso, ma la coincidenza è almeno interessante ;-).

App Engine essenzialmente esclude qualsiasi framework web Python che dipenda profondamente da componenti personalizzati con codice C o che richieda intrinsecamente funzionalità "fortemente relazionali"; tra quelli che funzionano bene con il solo codice Python puro, Django è probabilmente quello che App Engine supporta più direttamente e visibilmente. Tuttavia, questa è stata solo una spinta, che si è aggiunta al trend di crescita sano sottostante di Django. La spiegazione di questa tendenza (e in effetti per la decisione del team di App Engine e degli utenti di supportare Django così bene) deve risiedere in caratteristiche intrinseche a Django stesso.

Django a volte viene criticato (anche da ... tuo sincero ;-) per essere "troppo magico" o "troppo monolitico", rispetto ad alternative come Pylons, TurboGears, Werkzeug, ecc, che sono più leggere (specialmente le seconde , il mio preferito ;-), più trasparente e consente uno scambio più semplice tra componenti specifici (ORM, modelli e c). Tuttavia, la popolarità di Django ci dice che, per la maggior parte delle persone interessate allo sviluppo di siti Web e app lato server, queste scelte di progettazione di Django sono percepite positivamente: Django è visto come un framework molto ricco e ben integrato (e ha molti componenti aggiuntivi ons e "plugin" forniti, ma questi sono più una conseguenza che una causa della sua ascesa).

Facilità di avvio, automagiche "pagine di amministrazione" e simili - oltre al fatto che Django può essere piegato per creare siti / app davvero ricchi e complessi e soddisfare requisiti particolari o unici, con molta abilità e un po 'di lavoro - sono probabilmente le "caratteristiche killer". Per utilizzare Werkzeug al meglio, è necessario comprendere HTTP e WSGI e scegliere e integrare lo storage e i modelli preferiti: sviluppatori di siti Web e app basati su Python (come, in un certo senso, utenti di Rails o utenti di PHP ancora più popolare! -) stanno "votando con la loro condivisione mentale" per un ambiente in cui non devono necessariamente fare nulla di tutto ciò, ma possono concentrarsi principalmente sul dominio dell'applicazione. Devo ammettere che probabilmente hanno ragione ;-).


3
Penso che, data la popolarità di Django, una certa familiarità con esso ti servirà bene; ciò non preclude anche l'utilizzo di repoze.bfg, werkzeug, ecc., quando si adattano meglio a un'app o un sito. Potresti creare un progetto semi-giocattolo da zero in ciascuno di essi, se hai tempo, e quindi ottenere un apprezzamento più profondo per i punti di forza e di debolezza che li rendono più o meno appropriati a seconda di cosa comporta un progetto (devo ammettere Non ho alcuna esperienza di prima mano nel mondo reale con repoze.bfg ...).
Alex Martelli

1
@Triptych, chiaramente non l' unica ragione, dal momento che alcuni altri framework ( non qualsiasi framework però: pensa Zope, per esempio! -) avrebbero potuto essere altrettanto applicabili. Immagino che le mie riflessioni sui vantaggi, per gli sviluppatori di app / siti, di framework riccamente integrati e in qualche modo "magici" possano aver influenzato la decisione su cosa offrire supporto primario (ad esempio, rendendolo automaticamente disponibile senza richiedere alcun caricamento da parte dell'utente).
Alex Martelli

1
@cletus, Java ha 50 parole chiave per java.sun.com/docs/books/tutorial/java/nutsandbolts/… , Python 2.6 ne ha 31 per len(keyword.kwlist)- ad esempio, i nomi dei tipi non sono parole chiave in Python, ecc.
Alex Martelli

34
Penso che ti manchi un punto importante. La documentazione di Django era (
decisamente

6
@ Alex, dubito che qualcuno legga effettivamente i documenti dall'inizio alla fine, ma la maggior parte delle persone quando ha un problema fa una ricerca su Google. Essere in grado di trovare la risposta in 5 minuti utilizzando documenti di bell'aspetto invece di 1 ora di ricerca nei post del blog è un grande vantaggio (almeno fino a StackOveflow, il che ha reso molto più facile fare domande stupide;)
Edan Maor

22

Posso pensare a tre ragioni per la popolarità di Django, solo una delle quali è stata affrontata in altre risposte per quanto vedo:

  1. Documentazione. È ben strutturato, completo e accessibile da una serie di livelli di abilità.

  2. Design. Il design visivo dell'amministratore, le pagine di errore e il sito del progetto sono molto al di sopra del livello di design visto con la maggior parte dei progetti open source.

  3. Supporto comunitario. A partire dal team di World Online, Django ha raccolto presto alcuni influenti evangelisti. Non sono sicuro che tu possa sopravvalutare l'importanza di post di blog come Django for Non-Developers di Jeff Croft (penso che fosse il titolo).


13

"Il mio preferito, e mi aspetto che rimarrà un mio preferito per molto tempo, è qualcosa chiamato Django" - Guido Van Rossum sull'episodio settimanale 11 di FLOSS, in onda il 4 agosto 2006

[Clicca qui] (ascolta l'ultimo terzo dell'intervista)

Pensi che questo potrebbe aver aiutato? o almeno il motivo per cui Google l'ha scelto per AppEngine?

ovviamente, la comunità di django (inclusi gli sviluppatori) sta facendo molte cose per bene. Ad esempio (Alcune analisi nei link):

Miglioramento della modularità: [fare clic qui]

documentazione kick ass Fare clic qui

C'è anche qualcosa nella comunità che spinge le persone a voler contribuire su cui devo ancora mettere il dito: Clicca qui

Ovviamente, tutto ciò ha portato Django ad essere un valore anomalo: clicca qui

Non ci sono dubbi sulla popolarità di Django.


1
Penso che questa risposta fornisca un po 'che gli altri no. MOLTE persone sono entrate ciecamente in Django a causa di quel commento.
Jorge Vargas

Non c'è niente di male a farlo alla cieca quando Guido lo descrive come tale. L'ho fatto e da allora non mi sono più guardato indietro.
Su.

3

Nel mio caso, avevo acquistato il libro TurboGears e ho lottato per le sue incoerenze e il percorso casuale per spiegare le cose. Poi ho ricevuto il libro di Django e voilà! Il mio primo progetto a pagamento è stato creato mentre lavoravo attraverso il progetto di esempio nel libro. Quello più la documentazione in linea ha sigillato l'affare. Per me è stato semplice: documentazione, documentazione, documentazione.


2

Ho notato che spesso veniva promosso come l'equivalente di Ruby on Rails in Python. Ha anche una connessione a Google (Google ospita eventi Django e lo supporta nel loro App Engine). Un framework web approvato da Google deve valere qualcosa. :)


2
Certo, ma GAE è arrivato molto più tardi nel processo. E Django era già popolare.
Sridhar Ratnakumar

1
@Sridhar, sì - ho sottolineato entrambi i punti nella mia risposta: GAE ha dato a Django un grande balzo in avanti alla sua data di annuncio ... ma era in cima a un trend di crescita costante.
Alex Martelli

2

Almeno per me, un fattore importante è stato che Simon Willison e Adrian Holovaty erano già giocatori ben noti nella scena "Web Standards", così come Jeff Croft in seguito.

Non era solo un sigillo di qualità, ma rendeva anche Django molto web-friendly, con il suo rispetto per HTTP, markup e persino il modo di lavorare veloce e sporco, "print debugging" a cui erano abituate le persone provenienti da PHP.

Potrei sbagliarmi pesantemente qui, nessun dato a supporto di questo, ma sento che Django ha guadagnato molta più trazione da persone provenienti da PHP, al contrario di Rails che ha ottenuto molte conversioni da Java / .NET.

Come altri hanno già notato, la documentazione è molto al di sopra della media. Il migliore che abbia visto, per quanto ricordo.


0

Il fatto che ci fossero diversi siti ad alto volume che già utilizzavano Django (ad esempio lawrence.com ecc ...) - anche nei giorni 0.96 - mi ha aiutato a convincere la direzione che era sicuro da usare. Cose come Pylons e Turbogears non ce l'avevano davvero.


1
Fortunatamente quei giorni sono finiti, ora che tralicci ha reddit.com e sourceforge (tramite turbogears).
zzzeek

Pylons non ha ancora raggiunto 1.0, tuttavia, il che presumo (non verificato) significhi che mancano delle promesse di stabilità API di Django.
Xiong Chiamiov

-1

Per quanto riguarda la popolarità di Django nel tempo (il significato letterale del titolo della tua domanda, se non proprio la tua domanda reale), dai un'occhiata alla tendenza di Google .


1
Il collegamento alla tendenza è sbagliato. Come sottolineato da @Alex Martelli, devi far uscire il chitarrista.
Jorge Vargas
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.