Historia de la popularidad de Django [cerrado]

84

¿Qué secuencia de eventos convirtió a Django en el framework web Python más popular ... y aún así? Aunque existen varios otros marcos.

Nota : esta pregunta no es argumentativa ni conflictiva . Simplemente pedí (objetiva) "la secuencia de eventos" que conducen a su popularidad real. Siendo consciente de la dinámica de la aceptación del software , no pretendo que nadie se meta en discusiones sobre la superioridad técnica.

Sridhar Ratnakumar
fuente
14
Django es el framework web de Python más popular es un hecho, no una opinión subjetiva. "secuencia de eventos" se refiere a las decisiones de diseño, tiempo, marketing, etc. que conducen a su popularidad. ¿Qué tiene de absurdo?
Sridhar Ratnakumar
2
Esta es una muy buena pregunta.
Joshua Partogi
Observaré con interés para saber si estas decisiones de diseño, tiempo, marketing, etc., se conocen con suficiente precisión y puntualidad para ser consideradas "historia".
John Saunders
No estoy de acuerdo con el cierre de esta pregunta, pero podría ser mejor en CS .
Kyle Strand

Respuestas:

107

Creo que hubo algunos factores, cuya combinación fue mayor que la suma de sus pesos individuales.

Uno es simplemente el tiempo: Django apareció justo cuando la primera gran ola de publicidad de Rails estaba aumentando, por lo que se describió inmediatamente como una especie de "respuesta de Python a Rails". Eso resultó en un número no insignificante de ojos en el proyecto casi desde el principio. El hecho de que Adrian estuviera en la reunión de "Snakes and Rubies" en Chicago y participara en charlas lado a lado sobre Rails y Django hizo mucho por eso.

Otro factor es que Django es y siempre ha sido una instalación de un solo paquete (bueno, no del todo: todavía necesita un adaptador de base de datos, a menos que esté en Python 2.5+ y use SQLite, pero lo suficientemente cerca). Las alternativas que no eran de Zope, que se centraban en dejar las opciones de los componentes en manos del desarrollador, requerían un poco más de trabajo solo para llegar al punto en el que podrías hacer un tutorial básico: tendrías que ir a buscar un ORM, un idioma de la plantilla, etc., etc. y consígalos todos instalados y configurados. Aunque eso ha mejorado mucho con los años, creo que el recuerdo persistente de eso todavía tiene un efecto.

Y Django salió de la puerta con documentación que (si se me permite decirlo) estaba muy por encima del estándar habitual para proyectos de código abierto, y solo ha mejorado con el tiempo. El tutorial, a pesar de sus muchas fallas, toca varios de los puntos altos que hacen que Django sea útil, y el resto de la documentación siempre ha sido de buena calidad, mezclando referencias de API e importantes bits de "cómo hacer" según sea necesario. Esto produce una buena experiencia lista para usar y ayuda con la curva de aprendizaje posterior al tutorial (algo que siempre ha afectado a Zope).

También creo que hay una percepción, correcta o incorrectamente, de que, digamos, Pylons o Werkzeug son realmente mejores para los desarrolladores experimentados que ya conocen WSGI y el ecosistema web de Python; el hecho de que tienden a ser opciones sólidas para tomar sus bibliotecas favoritas existentes y conectarlas es la fuente de esto, creo, y tal vez empuje a algunas personas más nuevas hacia el enfoque integrado de Django. La otra cara, por supuesto, es que mucha gente que estaría mejor aprendiendo más por adelantado antes de probar Django no hace eso;)

Finalmente, creo que hay algo que decir sobre la forma en que se comercializa Django, es decir, que realmente no se comercializó durante mucho tiempo, o al menos no en el sentido en que, por ejemplo, se comercializó Rails. Hasta que aterrizó Django 1.0, el esfuerzo de "marketing" consistió principalmente en blogs de personas (y hubo algunos incidentes notables en los que se pidió a las personas que bajaran un poco el tono), charlas en PyCon y luego, principalmente, mejorar el marco, construir cosas interesantes con él. y dejar que los resultados hablen por sí mismos. Ahora, por supuesto, en el mundo posterior a 1.0 tenemos DSF y DjangoCon y consultores orientados a los negocios que realizan sesiones de capacitación y muchos libros y todo lo demás, pero todo eso sigue siendo bastante nuevo.

Espero que haya una reacción violenta, tal como ha ocurrido con Rails, y de hecho creo que se ha estado gestando durante un tiempo y ya ha comenzado. Pero hasta ahora creo que los factores que he enumerado aquí son al menos los principales detrás del crecimiento constante y constante de la popularidad que ha visto Django desde su lanzamiento inicial.

James Bennett
fuente
31
No hay necesidad de ser modesto: la calidad y cantidad de la documentación de Django es una gran ventaja. Bien hecho todo.
Ned Deily
1
"Hasta que aterrizó Django 1.0, el esfuerzo de" marketing "consistía principalmente en personas blogueando ..." ¿Olvidas los dos libros publicados (es decir, en proceso durante mucho tiempo) antes de la 1.0, uno de ellos es el tuyo? Eso me suena a marketing pesado.
Cristian
9
Dos libros no hacen "marketing pesado", al menos para mí. Y, para ser honesto, hubiera preferido mantener la mía apagada hasta que saliera 1.0, aunque solo fuera porque hubiera simplificado bastante mi vida.
James Bennett
4
Probablemente debería mencionar su participación en Django, ya que no es tan conocido en SO como, digamos, su blog. Creo recordar que escribiste algo sobre esto antes, aunque no puedo encontrar el enlace en el cajero automático.
Xiong Chiamiov
7
Es bastante fácil hacer clic en mi nombre y ver quién soy.
James Bennett
112

Muchos frameworks web de Python ya existían cuando apareció Django en 2005; de hecho, para ese entonces ya corría el chiste de que Python es "el lenguaje con más frameworks web que palabras clave" (y Guido rechazó mi propuesta de arreglar eso en Py3k por agregando muchas, muchas más palabras clave). Ahora, "django" per se es un poco ambiguo como término de búsqueda (también es el nombre de un guitarrista popular cuya vida inspiró una película de Woody Allen, etc., etc.), sin embargo, agrega "python" a la búsqueda para eliminar esos otros significados. puedes ver, por ejemplo, en este gráficocómo cambió su relativa popularidad en comparación con otro marco web clásico de Python, Zope. Crecimiento mayoritariamente constante trimestre tras trimestre, con un gran salto sorprendente al comienzo del segundo trimestre de 2008 ... que coincide con la fecha en la que Google anunció App Engine (es imposible probar la causalidad en tal caso, pero la coincidencia es al menos interesante ;-).

App Engine básicamente descarta cualquier marco web de Python que dependa en gran medida de componentes codificados en C personalizados o que requiera intrínsecamente una funcionalidad "muy relacional"; de los que funcionan bien con solo código Python puro, Django es probablemente el que App Engine admite de manera más directa y visible. Sin embargo, esto fue solo un impulso, que se sumó a la tendencia de crecimiento saludable subyacente de Django. La explicación de esa tendencia (y, de hecho, de la decisión del equipo de App Engine y de los usuarios de dar soporte tan bien a Django) debe estar en características intrínsecas a Django.

Django es a veces criticado (incluso por ... sinceramente ;-) por ser "demasiado mágico" o "demasiado monolítico", en comparación con alternativas como Pylons, TurboGears, Werkzeug, & c, que son más ligeras (especialmente las últimas , mi favorito ;-), más transparente y permite un intercambio más fácil dentro y fuera de componentes específicos (ORM, plantillas, etc.). Sin embargo, la popularidad de Django nos dice que, para la mayoría de las personas interesadas en desarrollar sitios web y aplicaciones del lado del servidor, estas opciones de diseño de Django se perciben positivamente: Django es visto como un marco muy rico y bien integrado (y tiene muchos complementos ons y "plugins" contribuidos, pero esos son más una consecuencia que una causa de su ascendencia).

Facilidad para comenzar, "páginas de administración" automágicas, y cosas por el estilo, así como el hecho de que Django se puede modificar para crear sitios / aplicaciones realmente ricos y complejos y adaptarse a requisitos peculiares o únicos, con mucha habilidad y algo de trabajo son probablemente las "características asesinas". Para utilizar Werkzeug al máximo, debe comprender HTTP y WSGI, y elegir e integrar su almacenamiento y plantillas favoritos: desarrolladores de sitios web y aplicaciones basados ​​en Python (como, en cierto sentido, usuarios de Rails o usuarios de ¡PHP aún más popular! -) están "votando con su mente compartida" por un entorno en el que no necesariamente necesitan hacer nada de eso, sino que pueden centrarse principalmente en su dominio de aplicación. Debo admitir que probablemente tengan razón ;-).

Alex Martelli
fuente
3
Creo que, dada la popularidad de Django, un poco de familiaridad con él te servirá; eso no excluye también el uso de repoze.bfg, werkzeug, etc., cuando se adapten mejor a una aplicación o sitio. Podrías hacer un proyecto de semi-juguete desde cero en cada uno de ellos, si dispones de algo de tiempo, y así ganar una apreciación más profunda de las fortalezas y debilidades que los hacen más o menos apropiados dependiendo de lo que conlleve un proyecto (tengo que admitir No tengo experiencia de primera mano en el mundo real con repoze.bfg ...).
Alex Martelli
1
@Triptych, claramente no es la única razón, ya que algunos otros marcos ( aunque no cualquier marco: ¡piense en Zope, por ejemplo! -) podrían haber sido igualmente aplicables. Supongo que mis reflexiones sobre las ventajas, para los desarrolladores de aplicaciones / sitios, de marcos ricamente integrados y algo "mágicos" pueden haber influido en la decisión de qué ofrecer soporte primario (por ejemplo, haciéndolo disponible automáticamente sin necesidad de que el usuario lo cargue).
Alex Martelli
1
@cletus, Java tiene 50 palabras clave por java.sun.com/docs/books/tutorial/java/nutsandbolts/… , Python 2.6 tiene 31 por len(keyword.kwlist)- por ejemplo, los nombres de tipo no son palabras clave en Python, etc.
Alex Martelli
34
Creo que se pierde un punto importante. La documentación de Django fue (mucho) mejor que cualquier marco de Python (así como mejor que la documentación de rails, en mi opinión)
agiliq
6
@Alex, dudo que alguien lea los documentos de principio a fin, pero la mayoría de las personas cuando tienen un problema hacen una búsqueda en Google. Ser capaz de encontrar la respuesta en 5 minutos usando documentos atractivos en lugar de 1 hora buscando en las publicaciones del blog es una gran ventaja (fue hasta StackOveflow, al menos, lo que hizo que hacer preguntas tontas sea mucho más fácil;)
Edan Maor
22

Puedo pensar en tres razones de la popularidad de Django, solo una de las cuales se ha abordado en otras respuestas por lo que veo:

  1. Documentación. Está bien estructurado, es completo y accesible desde varios niveles de habilidad.

  2. Diseño. El diseño visual del administrador, las páginas de error y el sitio del proyecto están muy por encima del nivel de diseño visto con la mayoría de los proyectos de código abierto.

  3. Soporte comunitario. Comenzando con el equipo de World Online, Django recogió a algunos evangelistas influyentes desde el principio. No estoy seguro de que puedas exagerar la importancia de las publicaciones de blogs como Django for Non-Developers de Jeff Croft (creo que ese era el título).

Tony
fuente
13

"Mi favorito personal, y espero que seguirá siendo un favorito personal durante mucho tiempo, es algo llamado Django" - Guido Van Rossum en el episodio 11 de la semana FLOSS, emitido el 4 de agosto de 2006

[Haga clic aquí] (escuche el último tercio de la entrevista)

¿Crees que esto podría haber ayudado? o al menos la razón por la que Google lo eligió para AppEngine?

por supuesto, la comunidad de django (incluidos los desarrolladores) está haciendo muchas cosas bien. Por ejemplo (Algunos análisis en los enlaces):

Mejora de la modularidad: [Haga clic aquí]

documentación de kick ass Haga clic aquí

También hay algo acerca de la comunidad que hace que la gente quiera contribuir, algo que todavía tengo que señalar: Haga clic aquí

Por supuesto, todo eso lleva a que Django sea un valor atípico: Haga clic aquí

No hay duda sobre la popularidad de Django.

Arriba.
fuente
1
Creo que esta respuesta proporciona un poco que las otras no. MUCHA gente entró ciegamente en Django debido a ese comentario.
Jorge Vargas
No hay nada de malo en hacerlo a ciegas cuando Guido lo describe como tal. Lo hice, y nunca miré hacia atrás desde entonces.
Arriba.
3

En mi caso, compré el libro TurboGears y luché a través de sus inconsistencias y su ruta azarosa para explicar las cosas. Luego obtuve el libro de Django, ¡y listo! Mi primer proyecto de pago se creó mientras trabajaba en el proyecto de muestra del libro. Eso más la documentación en línea selló el trato. Para mí, fue simple: documentación, documentación, documentación.

señal
fuente
2

Noté que a menudo se promocionaba como el equivalente de Ruby on Rails en Python. También tiene una conexión con Google (Google aloja eventos de Django y lo admite en su App Engine). Un marco web respaldado por Google tiene que valer algo. :)

joemoe
fuente
2
Claro, pero GAE llegó mucho más tarde en el proceso. Y Django ya era popular.
Sridhar Ratnakumar
1
@Sridhar, sí, hice ambos puntos en mi respuesta: GAE le dio a Django un gran impulso en su fecha de anuncio ... pero eso se sumó a una tendencia de crecimiento constante.
Alex Martelli
2

Al menos para mí, un factor importante fue que Simon Willison y Adrian Holovaty ya eran jugadores bien conocidos en la escena de los "estándares web", al igual que Jeff Croft más tarde.

Eso no solo era un sello de calidad, sino que también hizo que Django fuera muy amigable con la web, con su respeto por HTTP, el marcado e incluso la forma rápida y sucia de trabajar de "depuración de impresión" a la que estaban acostumbradas las personas que vienen de PHP.

Puede que esté muy equivocado aquí, no hay datos para respaldar esto, pero siento que Django ganó mucha más tracción de las personas que vienen de PHP, a diferencia de Rails, que obtuvo muchas conversiones de Java / .NET.

Como ya han señalado otros, la documentación está muy por encima del promedio. Lo mejor que he visto, por lo que recuerdo.

Manuel Razzari
fuente
0

El hecho de que hubiera varios sitios de gran volumen que ya usaban Django (es decir, lawrence.com, etc.), incluso en los días de 0.96, me ayudó a convencer a la gerencia de que era seguro de usar. Cosas como Pylons y Turbogears realmente no tenían eso.

Robar
fuente
1
Afortunadamente esos días terminaron, ahora que pylons ahora tiene reddit.com y sourceforge (a través de turbogears).
zzzeek
Sin embargo, los pilones aún no han llegado a 1.0, lo que supongo (no he comprobado) significa que carecen de las promesas de estabilidad API de Django.
Xiong Chiamiov
-1

En cuanto a la popularidad de Django a lo largo del tiempo (el significado literal del título de su pregunta, si no es su pregunta real), eche un vistazo a la tendencia de Google .

Pedro
fuente
1
El vínculo de tendencia es incorrecto. Como lo señaló @Alex Martelli, es necesario sacar al guitarrista.
Jorge Vargas