História da popularidade do Django [fechado]

84

Que sequência de eventos fez do Django o framework da web Python mais popular ... e ainda assim? Mesmo que existam várias outras estruturas.

Nota : Esta questão não é argumentativa nem confrontadora . Eu simplesmente pedi (objetiva) "a seqüência de eventos" que levou à sua popularidade real. Estando ciente da dinâmica de aceitação de software , não pretendo que ninguém entre em discussões sobre superioridade técnica.

Sridhar Ratnakumar
fonte
14
Django sendo o framework da web Python mais popular é um fato, não uma opinião subjetiva. "sequência de eventos" significa as decisões de design, tempo, marketing e assim por diante que levaram à sua popularidade. O que é absurdo nisso?
Sridhar Ratnakumar,
2
Esta é uma pergunta muito boa.
Joshua Partogi,
Assistirei com interesse para saber se essas decisões de design, tempo, marketing, etc., são conhecidas com precisão e oportunidade suficientes para serem consideradas "história".
John Saunders,
Não concordo com o fechamento dessa questão, mas pode ser melhor no CS .
Kyle Strand

Respostas:

107

Acho que houve alguns fatores, cuja combinação foi maior do que a soma de seus pesos individuais.

Um é simplesmente o tempo: Django apareceu bem quando a primeira grande onda de hype do Rails estava crescendo, e então foi imediatamente retratado como uma espécie de "resposta do Python ao Rails". Isso resultou em um número não insignificante de olhos no projeto quase desde o início. O fato de Adrian estar no encontro "Snakes and Rubies" em Chicago e ter participado de conversas lado a lado sobre Rails e Django ajudou muito nisso.

Outro fator é que o Django é e sempre foi uma instalação de pacote único (bem, não exatamente: você ainda precisa de um adaptador de banco de dados, a menos que esteja no Python 2.5+ e usando SQLite, mas perto o suficiente). As alternativas não-Zope, todas focadas em deixar as escolhas de componentes nas mãos do desenvolvedor, exigiram um pouco mais de trabalho apenas para chegar ao ponto onde você pudesse fazer um tutorial básico: você precisaria ir caçar um ORM, um linguagem de modelo, etc., etc. e instale-os e configure-os. Embora isso tenha melhorado muito com o passar dos anos, acho que a lembrança persistente disso ainda tem um efeito.

E Django saiu do portão com uma documentação que (se assim posso dizer) estava muito acima do padrão usual para projetos de código aberto e só melhorou com o tempo. O tutorial, com todas as suas muitas falhas, atinge uma série de pontos altos que tornam o Django útil, e o restante da documentação sempre foi de boa qualidade, misturando tanto a referência da API quanto os bits "como fazer" importantes conforme necessário. Isso produz uma boa experiência out-of-the-box e ajuda na curva de aprendizado pós-tutorial (algo que sempre atormentou o Zope).

Eu também acho que há uma percepção - certa ou errada - de que, digamos, Pylons ou Werkzeug são realmente melhores para desenvolvedores experientes que já conhecem WSGI e o ecossistema da web Python; o fato de que eles tendem a ser escolhas fortes para pegar suas bibliotecas favoritas existentes e conectá-las é a fonte disso, eu acho, e talvez leve algumas pessoas mais novas em direção à abordagem integrada do Django. O outro lado, é claro, é que muitas pessoas que estariam melhor aprendendo mais antecipadamente antes de tentar Django não fazem isso;)

Por fim, acho que há algo a ser dito sobre a forma como o Django foi comercializado, ou seja, ele realmente não foi comercializado por um longo tempo, ou pelo menos não no sentido que, digamos, Rails foi comercializado. Até o Django 1.0 chegar, o esforço de "marketing" consistia principalmente em pessoas blogando (e houve alguns incidentes notáveis ​​em que as pessoas foram solicitadas a diminuir um pouco o tom), palestras na PyCon e, em seguida, principalmente apenas melhorar o framework, construindo coisas legais com ele e deixando os resultados falarem por si. Agora, é claro, no mundo pós-1.0 temos o DSF e DjangoCon e consultores voltados para negócios fazendo sessões de treinamento e muitos livros e tudo o mais, mas isso tudo ainda é muito novo.

Eu espero que haja uma reação, assim como aconteceu com Rails, e na verdade eu acho que está fermentando há um tempo e já começou. Mas, até agora, acho que os fatores que listei aqui são pelo menos os principais por trás do crescimento consistente e constante da popularidade que o Django tem visto desde seu lançamento inicial.

James Bennett
fonte
31
Não precisa ser modesto: a qualidade e quantidade da documentação do Django é uma grande vantagem para ele. Muito bem, todos.
Ned Deily,
1
"Até o Django 1.0 chegar, o esforço de" marketing "consistia principalmente em pessoas blogando ..." Você está se esquecendo dos dois livros publicados (ou seja, em andamento há muito tempo) antes do 1.0, sendo um deles seu? Isso soa como um marketing pesado para mim.
Cristian,
9
Dois livros não fazem "marketing pesado", pelo menos para mim. E, para ser honesto, eu teria preferido manter o meu desligado até que 1.0 fosse lançado, apenas porque simplificaria um pouco minha vida.
James Bennett,
4
Você provavelmente deve mencionar seu envolvimento com Django, já que ele não é tão conhecido no SO como, digamos, seu blog. Parece que me lembro de você ter escrito algo sobre isso antes, embora não consiga encontrar o link atm.
Xiong Chiamiov
7
É bastante fácil clicar no meu nome e ver quem sou.
James Bennett,
112

Muitos frameworks web Python já existiam quando Django apareceu em 2005 - na verdade, a piada já circulava, então, que Python é "a linguagem com mais frameworks web do que palavras-chave" (e Guido rejeitou minha proposta de consertar isso em Py3k por adicionando muitas, muitas mais palavras-chave). Agora, "django" em si é um pouco ambíguo como termo de pesquisa (também é o nome de um guitarrista popular cuja vida inspirou um filme de Woody Allen, etc, etc), no entanto, adicionando "python" à pesquisa para remover esses outros significados você pode ver, por exemplo, neste gráficocomo sua popularidade relativa mudou em comparação a outro framework da web Python clássico, o Zope. Principalmente um crescimento constante trimestre a trimestre, com um salto enorme e surpreendente no início do segundo trimestre de 2008 ... que coincide com a data em que o Google anunciou o App Engine (é impossível provar a causa nesse caso, mas a coincidência é pelo menos interessante ;-).

O App Engine essencialmente exclui qualquer estrutura da web Python que dependa profundamente de componentes C-codificados personalizados ou que exija intrinsecamente funcionalidade "fortemente relacional"; dentre aqueles que funcionam bem apenas com código Python puro, Django é provavelmente aquele que o App Engine oferece suporte mais direta e visível. No entanto, isso foi apenas um impulso, acrescentando à tendência de crescimento saudável subjacente do Django. A explicação para essa tendência (e de fato para a equipe do App Engine e a decisão dos usuários de suportar o Django tão bem) deve estar nas características que são intrínsecas ao próprio Django.

Django é às vezes criticado (incluindo por ... sinceramente ;-) por ser "muito mágico" ou "muito monolítico", em comparação com alternativas como Pylons, TurboGears, Werkzeug, etc., que são mais leves (especialmente o último , meu favorito ;-), mais transparente e permite a troca mais fácil dentro e fora de componentes específicos (ORM, modelos, etc.). No entanto, a popularidade do Django nos diz que, para a maioria das pessoas interessadas no desenvolvimento de sites e aplicativos do lado do servidor, essas escolhas de design do Django são percebidas positivamente: o Django é visto como um framework muito rico e bem integrado (e tem muitos acréscimos e contribuiu com "plugins", mas esses são mais uma consequência do que uma causa de sua ascensão).

Fácil de começar, "páginas de administração" automáticas e semelhantes - bem como o fato de que o Django pode ser inclinado para criar sites / aplicativos realmente ricos e complexos e acomodar requisitos peculiares ou únicos, com muita habilidade e algum trabalho - são provavelmente os "recursos matadores". Para usar Werkzeug da melhor forma, você precisa entender HTTP e WSGI, e escolher e integrar seu armazenamento e modelos favoritos - desenvolvedores de sites e aplicativos baseados em Python (como, em certo sentido, usuários de Rails ou usuários de PHP ainda mais popular! -) estão "votando com sua mente compartilhada" por um ambiente no qual eles não precisam necessariamente fazer nada disso, mas podem se concentrar principalmente em seu domínio de aplicativo. Devo admitir que eles provavelmente têm razão ;-).

Alex Martelli
fonte
3
Eu acho que, dada a popularidade do Django, alguma familiaridade com ele será útil para você; isso não impede também o uso de repoze.bfg, werkzeug, etc, quando eles se adequam melhor a um aplicativo ou site. Você poderia fazer um projeto de semi-brinquedo do zero em cada um deles, se você tiver algum tempo, e assim obter uma apreciação mais profunda dos pontos fortes e fracos que os tornam mais ou menos adequados, dependendo do que um projeto envolve (devo admitir Não tenho nenhuma experiência de primeira mão no mundo real com repoze.bfg ...).
Alex Martelli,
1
@Triptych, claramente não é a única razão, já que alguns outros frameworks (mas não qualquer framework: pense no Zope, por exemplo! -) poderiam ser igualmente aplicáveis. Eu acho que minhas reflexões sobre as vantagens, para desenvolvedores de aplicativos / sites, de estruturas ricamente integradas e um tanto "mágicas" podem ter influenciado a decisão sobre o que oferecer suporte principal (por exemplo, tornando-o automaticamente disponível sem exigir nenhum upload do usuário).
Alex Martelli,
1
@cletus, Java tem 50 palavras-chave por java.sun.com/docs/books/tutorial/java/nutsandbolts/… , Python 2.6 tem 31 por len(keyword.kwlist)- por exemplo, nomes de tipo não são palavras-chave em Python, etc.
Alex Martelli
34
Acho que você perdeu um ponto importante. A documentação do Django era (muito) melhor do que qualquer framework Python (bem como melhor do que a documentação do rails, IMO)
agiliq
6
@Alex, duvido que alguém realmente leia a documentação do início ao fim, mas a maioria das pessoas, quando tem um problema, faz uma pesquisa no Google. Ser capaz de encontrar a resposta em 5 minutos usando documentos bonitos em vez de 1 hora pesquisando em postagens de blog é uma grande vantagem (era até StackOveflow, pelo menos, o que tornava fazer perguntas idiotas muito mais fácil;)
Edan Maor,
22

Posso pensar em três razões para a popularidade do Django, apenas uma das quais foi abordada em outras respostas, pelo que vejo:

  1. Documentação. É bem estruturado, abrangente e acessível em vários níveis de habilidade.

  2. Projeto. O design visual do administrador, das páginas de erro e do site do projeto estão muito acima do nível de design visto na maioria dos projetos de código aberto.

  3. Suporte da comunidade. Começando com a equipe da World Online, Django escolheu alguns evangelistas influentes desde o início. Não tenho certeza se você pode exagerar na importância de postagens de blog como Django para não desenvolvedores de Jeff Croft (acho que esse é o título).

Tony
fonte
13

"Meu favorito pessoal, e espero que permanecerá um favorito pessoal por muito tempo, é algo chamado Django" - Guido Van Rossum no episódio semanal 11 FLOSS, exibido em 4 de agosto de 2006

[Clique aqui] (ouça o último terço da entrevista)

Acha que isso pode ter ajudado? ou pelo menos a razão pela qual o Google escolheu para AppEngine?

é claro que a comunidade django (incluindo desenvolvedores) está fazendo muitas coisas certas. Por exemplo (algumas análises nos links):

Melhorando a modularidade: [Clique aqui]

documentação kick ass Clique aqui

Também há algo sobre a comunidade que leva as pessoas a quererem contribuir e que ainda não consegui identificar: Clique aqui

Claro, tudo isso leva o Django a ser um outlier: Clique Aqui

Não há dúvida sobre a popularidade do Django.

Acima.
fonte
1
Acho que essa resposta fornece um pouco que as outras não. MUITAS pessoas entraram cegamente no Django devido a esse comentário.
Jorge Vargas
Não há nada de errado em fazer isso cegamente quando Guido o descreve como tal. Eu fiz, e nunca olhei para trás desde então.
cima.
3

No meu caso, comprei o livro TurboGears e lutei contra suas inconsistências e rota aleatória para explicar as coisas. Então eu peguei o livro Django, e voila! Meu primeiro projeto pago foi criado enquanto eu trabalhava no projeto de amostra do livro. Isso mais a documentação online selou o negócio. Para mim, era simples: Documentação, documentação, documentação.

sinal
fonte
2

Percebi que muitas vezes era promovido como sendo o equivalente em Ruby on Rails em Python. Ele também tem uma conexão com o Google (o Google hospeda eventos Django e oferece suporte para isso em seu App Engine). Uma estrutura da web que está sendo endossada pelo Google tem que valer alguma coisa. :)

joemoe
fonte
2
Claro, mas o GAE veio muito mais tarde no processo. E Django já era popular.
Sridhar Ratnakumar,
1
@Sridhar, sim - eu fiz os dois pontos em minha resposta: GAE deu ao Django um grande impulso na data de anúncio ... mas isso foi no topo de uma tendência de crescimento constante.
Alex Martelli,
2

Ao menos para mim, um fator importante foi que Simon Willison e Adrian Holovaty já eram jogadores bem conhecidos na cena "Web Standards", assim como Jeff Croft mais tarde.

Isso não foi apenas um selo de qualidade, mas também tornou o Django muito amigável para a web, com seu respeito por HTTP, marcação e até mesmo a forma rápida e suja de "depuração de impressão" que as pessoas que vêm do PHP estavam acostumadas.

Posso estar muito errado aqui, não há dados para comprovar isso, mas sinto que Django ganhou muito mais força com as pessoas que vinham do PHP, em oposição ao Rails, que obteve muitas conversões de Java / .NET.

Como outros já observaram, a documentação está muito acima da média. O melhor que já vi, pelo que me lembro.

Manuel Razzari
fonte
0

O fato de que já havia vários sites de alto volume usando Django (por exemplo, lawrence.com etc ...) - mesmo por 0,96 dias - me ajudou a convencer a gerência de que era seguro usar. Coisas como Pylons e Turbogears realmente não tinham isso.

Roubar
fonte
1
Felizmente, esses dias acabaram, agora que os postes agora têm reddit.com e sourceforge (via turbogears).
zzzeek
No entanto, o Pylons ainda não atingiu o 1.0, o que presumo (não verifiquei) significa que eles não possuem as promessas de estabilidade da API do Django.
Xiong Chiamiov
-1

Quanto à popularidade do Django ao longo do tempo (o significado literal do título da sua pergunta, se não exatamente a sua pergunta real), dê uma olhada na tendência do Google .

Peter
fonte
1
O link da tendência está errado. Como apontado por @Alex Martelli, você precisa tirar o guitarrista.
Jorge Vargas