Django受欢迎的历史[关闭]


84

什么事件顺序使Django成为最受欢迎的Python Web框架。即使存在其他几个框架。

注意:这个问题既非论争也不是对抗性的。我只是要求(客观)导致其实际流行的“事件顺序”。意识到软件接受的动态,我无意让任何人就技术优势争论不休。


14
Django是最受欢迎的Python Web框架,这是事实,而不是主观意见。“事件顺序”是指导致其流行的设计决策,时间安排,市场营销等。这有什么荒谬的?
Sridhar Ratnakumar,2009年

2
这是一个非常好的问题。
2009年

我将感兴趣地观察以了解这些设计决策,时间安排,市场营销等是否以足够的准确性和及时性被了解为“历史”。
约翰·桑德斯

我不同意这个问题的结局,但在CS上可能会更好。
凯尔·斯特兰德

Answers:


107

我认为有几个因素,这些因素的总和大于各自权重的总和。

一个简单的时间就是:随着Rails的第一波大肆宣传,Django的出现恰到好处,因此它立即被描绘成“ Python对Rails的回答”。几乎从一开始就在该项目上引起了不小的关注。Adrian参加了在芝加哥举行的“蛇与红宝石”聚会,并参加了有关Rails和Django的并排讨论,这一事实为此做出了很多贡献。

另一个因素是Django一直并且一直都是单软件包安装(嗯,还不完全是:您仍然需要一个数据库适配器,除非您使用的是Python 2.5+和SQLite,但足够接近)。非Zope替代方案都致力于将组件的选择权留在开发人员手中,为了使您可以进行基础教程,需要做大量工作:您需要深入研究ORM,模板语言等),并进行安装和配置。尽管这些年来情况已经好得多,但我认为对此的挥之不去的记忆仍然会产生影响。

Django提供的文档(如果我自己也这么说的话)远远超出了开源项目的通常标准,并且随着时间的推移才变得更好。本教程尽管有很多缺点,但在许多方面都达到了使Django有用的高点,并且本文档的其余部分始终保持良好的质量,并根据需要混合了API参考和重要的“操作方法”。这提供了良好的开箱即用的体验,并有助于教程后的学习曲线(这一直困扰着Zope)。

我还认为,不管是对还是错,都有一种看法,那就是,Pylons或Werkzeug对于那些已经了解WSGI和Python网络生态系统方式的经验丰富的开发人员确实更好。我认为,它们往往是选择您现有的最喜欢的库并将它们插入在一起的强大选择,这一事实的根源在于,也许这会促使一些新人转向Django的集成方法。当然,不利的一面是,许多在尝试使用Django之前最好先学习更多的人不要这样做;)

最后,我认为对于Django的销售方式来说,还有很多话要说,那就是它确实没有销售很长时间了,或者至少在某种意义上说不是,例如Rails的销售。在Django 1.0登陆之前,“市场营销”工作主要是由人们写博客(有些显着事件要求人们对其进行细化),在PyCon上进行讨论,然后主要只是改善框架,使用它来构建有趣的东西。让结果说明一切。当然,现在,在1.0版之后的世界中,我们有DSF和DjangoCon以及面向业务的顾问进行培训课程,大量书籍以及所有其他内容,但这仍然是相当新的。

我希望会出现反弹,就像Rails一样,实际上我认为它已经酝酿了一段时间并且已经开始。但是直到现在,我认为我在这里列出的因素至少是自从Django首次发布以来,人气持续稳定增长背后的主要因素。


31
无需谦虚:Django文档的质量和数量是其巨大的优势。干得好,全部。
内德·迪利

1
“直到Django的1.0落地,‘市场营销’工作大多是由人写博客......”你是不是忘记了2本书出版1.0之前(即,在作品中很长一段时间),他们是你的吗?对我来说,这听起来像是沉重的行销。
克里斯蒂安(Cristian)

9
至少对我来说,两本书没有“繁重的市场营销”。而且,老实说,我宁愿将其保留到1.0发行,如果仅仅是因为这样做会大大简化我的生活。
James Bennett

4
您可能应该提到您对Django的参与,因为在Django中,它的知名度不如您的博客。我似乎记得您之前写过一些关于此的内容,尽管我找不到链接atm。
熊加米奥夫09年

7
单击我的名字并查看我的身份是相当容易的。
James Bennett

112

当Django于2005年问世时,已经存在许多Python网络框架-的确,到那时,笑话已经传开了,Python是“网络框架比关键字多的语言”(而Guido拒绝了我的建议,即在Py3k中修复该问题,添加很多很多其他关键字)。现在,“ django”本身作为搜索词有点含糊(它也是一个流行吉他手的名字,他的生活启发了伍迪·艾伦电影等),但是在搜索中添加了“ python”以删除其他含义您可以在此图中看到例如与另一个经典的Python网络框架Zope相比,它的相对受欢迎程度发生了怎样的变化。通常每季度都保持稳定的增长,在2008年第二季度初出现了惊人的大幅增长……这恰好与Google宣布App Engine的日期一致(在这种情况下无法证明因果关系,但是巧合的是至少有趣;-)。

App Engine本质上排除了任何高度依赖自定义C编码组件或本质上需要“高度关系”功能的Python网络框架;在仅使用纯Python代码运行良好的代码中,Django可能是App Engine最直接,最明显地支持的代码。但是,这只是一个推动,增加了Django潜在的健康增长趋势。对于这种趋势的解释(实际上是对App Engine团队以及用户如此出色地支持Django的决定)的解释必须在于Django本身固有的特征。

与Pylons,TurboGears,Werkzeug和&c等重量较轻的替代品相比,Django有时会因“过于魔术”或“过于单一”而受到批评(包括……您的真心地-)。 ,我最喜欢的;-)更加透明,并且允许更轻松地交换特定组件(ORM,模板和&c)。但是,Django的受欢迎程度告诉我们,对于大多数对开发服务器端网站和应用程序感兴趣的人来说,这些Django设计选择得到了积极的评价:Django被视为一个非常丰富且集成良好的框架(它确实有很多附加功能,并贡献了“插件”,但这些更多的是结果而不是其优势。

易于上手,自动的“管理页面”之类的东西-以及Django可以通过大量的技巧和一些工作来弯曲制作真正丰富而复杂的网站/应用并适应特殊或独特的要求的事实-可能是“杀手级功能”。要最好地使用Werkzeug,您需要了解HTTP和WSGI,并选择和集成自己喜欢的存储和模板-基于Python的网站和应用程序的开发人员(从某种意义上说,例如Rails的用户或甚至更受欢迎的PHP!-)都在为自己的环境“投票”,在这种环境中,他们不一定需要做任何事情,而是可以专注于他们的应用程序领域。我不得不承认他们可能确实有一点;-)。


3
我认为,鉴于Django的受欢迎程度,对它的一些熟悉会很好地为您服务;当它们更适合应用程序或网站时,也不排除使用repoze.bfg,werkzeug等。如果有时间的话,您可以从头开始制作一个半玩具项目,从而对使项目或多或少适合的优势和劣势有更深的了解(我必须承认)我对repoze.bfg ...没有真实的第一手经验。
亚历克斯·马丁里

1
@Triptych显然不是唯一的原因,因为其他一些框架(尽管不是 任何框架:例如Zope !!)可能同样适用。我想我对应用程序/站点开发人员对高度集成且有些“神奇”的框架的优缺点的想法可能已经影响了决定为什么提供主要支持的决定(例如,通过自动提供它而无需任何用户上传)。
Alex Martelli,2009年

1
@cletus,Java有每50个关键字java.sun.com/docs/books/tutorial/java/nutsandbolts/...,Python 2.6中有每31 len(keyword.kwlist)-例如,typenames不是关键字在Python等
亚历克斯·马尔泰利

34
我认为您错过了重要的一点。Django的文档(在某种程度上)比任何Python框架都要好(并且比IMO的rails文档
也要

6
@Alex,我怀疑有人真的开始阅读文档了,但是大多数人遇到问题时都会通过google搜索。能够使用美观的文档在5分钟内找到答案,而不是在一小时内通过博客帖子进行搜索是一个很大的优势(直到至少StackOveflow,这使提出愚蠢的问题变得容易多了;)
Edan Maor

22

我可以想到Django受欢迎的三个原因,据我所知,其中只有一个在其他答案中得到了解决:

  1. 文档。它具有良好的结构,全面的功能,可以从许多技能水平上入手。

  2. 设计。管理员,错误页面和项目站点的可视化设计远远超出了大多数开源项目所能看到的设计水平。

  3. 社区支持。从World Online的团队开始,Django早期就吸引了一些有影响力的传教士。我不确定您是否可以夸大Jeff Croft的Django for Non-Developers之类博客文章的重要性(我认为那是标题)。


13

“我个人最喜欢的,并且我希望很长一段时间仍将是个人最喜欢的东西,叫做Django”-Guido Van Rossum在FLOSS每周第11集上播出,2006年8月4日播出

[点击这里](收听访谈的最后三分之一)

认为这可能有所帮助?还是至少Google为其选择AppEngine的原因?

当然,django社区(包括开发人员)在做很多事情。例如(链接中的一些分析):

改善模块化: [点击这里]

踢屁股文档请 点击这里

关于社区,还有一些让人们想做出贡献的事情,而我还没有对此发表任何评论: 单击此处

当然,所有导致Django成为异常值的原因: 单击此处

毫无疑问,Django的受欢迎程度。


1
我认为这个答案提供了其他人所没有的。由于这一评论,很多人盲目地加入了Django。
豪尔赫·巴尔加斯

当Guido这样描述时,盲目地做它没错。我做到了,从那以后再也没有回头。
起来。

3

就我而言,我买了《 TurboGears》这本书,并在其前后矛盾的解释方法上苦苦挣扎。然后我得到了Django书,瞧!我在阅读本书中的示例项目时创建了第一个有偿项目。加上在线文档,这笔交易得以达成。对我来说,这很简单:文档,文档,文档。


2

我注意到它经常被提升为Python上的Ruby on Rails等效项。它还与Google有连接(Google托管Django事件,并在其App Engine中支持它)。Google认可的Web框架必须物有所值。:)


2
当然可以,但GAE的流程要晚得多。Django已经很流行。
Sridhar Ratnakumar,2009年

1
@Sridhar,是的-我在回答中同时指出了两点:GAE在Django的发布日期上给了Django很大的帮助……但这是在稳定的增长趋势之上。
Alex Martelli,2009年

2

至少对我来说,一个重要因素是Simon Willison和Adrian Holovaty以及后来的Jeff Croft在“ Web Standards”领域已经是知名的参与者。

这不仅是质量保证,而且还使Django非常易于使用,因为它尊重HTTP,标记,甚至习惯了PHP人士使用的快速,肮脏的“打印调试”工作方式。

我可能在这里很错,没有数据可以支持,但是我觉得Django从PHP的人那里获得了更多的吸引力,而Rails从Java / .NET进行了很多转换。

正如其他人已经指出的那样,文档远高于平均水平。据我所记得,这是我见过的最好的。


0

甚至在0.96天之前,已经有多个使用Django的高容量站点(例如,lawrence.com等),这使我相信管理层可以安全使用。诸如Pylons和Turbogears之类的东西确实没有。


1
幸运的是,那些日子已经过去了,现在挂架现在有了reddit.com和sourceforge(通过turbogears)。
zzzeek

不过,Pylons尚未达到1.0,我认为(尚未检查)意味着它们缺乏Django的API稳定性承诺。
熊加米奥夫09年

-1

至于Django在一段时间内的受欢迎程度(问题标题的字面意思,如果不是您的实际问题),请查看google趋势


1
趋势链接是错误的。正如@Alex Martelli指出的那样,您需要让吉他手离开。
豪尔赫·巴尔加斯
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.