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.
Respostas:
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.
fonte
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 ;-).
fonte
len(keyword.kwlist)
- por exemplo, nomes de tipo não são palavras-chave em Python, etc.Posso pensar em três razões para a popularidade do Django, apenas uma das quais foi abordada em outras respostas, pelo que vejo:
Documentação. É bem estruturado, abrangente e acessível em vários níveis de habilidade.
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.
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).
fonte
"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.
fonte
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.
fonte
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. :)
fonte
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.
fonte
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.
fonte
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 .
fonte