这是一个(n)历史问题,而不是语言之间的比较问题:
这篇2005年的文章谈到了缺乏单一的Python中心框架.对于Ruby,这个框架显然是Rails.从历史上看,为什么这样做会发生在Ruby而不是Python?(或者它确实发生了,那个框架是Django?)
此外,假设性问题:如果Python有一个好的框架,它会更受欢迎吗?如果没有中央框架,Ruby会不那么受欢迎吗?
[请避免讨论Ruby或Python是否更好,这是太开放无法回答.]
编辑:虽然我认为这是显而易见的,但我并不是说Ruby不存在其他框架,而是说流行程度最大的是Rails.另外,我应该提一下,我并不是说Python的框架不如Rails好(或比Rails好).每个框架都有其优点和缺点,但Rails似乎正如Ben Blank在下面的评论中所说的那样,在人气方面超过了Ruby.在Python方面没有这方面的例子.为什么?这就是问题所在.
正如我所看到的,Rails将Ruby放在地图上.一个简单的事实是,在Rails之前,Ruby是一种次要的深奥语言,几乎没有采用.Ruby将其成功归功于Rails.因此,Rails在Ruby生态系统中占据中心位置.简而言之,还有其他网络框架,但要超越Rails作为领导者将是非常困难的.
另一方面,Python有一个非常不同的采用曲线.在Rails之前,Python比Ruby使用得更广泛,因此有许多竞争的Web框架,每个框架都在慢慢建立他们的选区.Django在巩固支持方面做得很好,并成为Python Web框架领域的领导者,但它永远不会仅仅因为社区的发展方式而成为One True Framework.
我不认为将Rails描述为''单一''中央'Ruby框架是正确的.
Ruby的其他框架包括Merb,Camping和Ramaze.
......哪种方式使问题无效.
真正的技术答案是Python中有三种主要的Web开发方法:一种是基于CGI的,其中应用程序的构建就像一个旧的一次性Perl应用程序,通过CGI或FastCGI运行,例如Trac ; 然后是Zope,这是一个奇怪的过度设计的框架,有自己的数据库概念,一个奇怪的错误的网络软件开发概念等(但Plone仍然很受欢迎); 然后是Django(以及Turbogears等),它由与Rails相同的工具所需的哲学引导(可以说谁先到达那里或谁做得更好).很多人可能会同意Django/Rails/CakePHP方法比旧方法更好,但是因为旧语言Python有更多的遗留框架仍在努力发展并保持相关性.这些框架将继续存在,因为已经有开发人员支持他们.例如,事后看来很多人可能会说Zope(特别是ZODB)是一个可怕的错误,但是Zope 3比Zope 2要好得多,并且已经有整个公司围绕Zope技术构建.
Rails在其极端的"约定优于配置"方法方面有点革命性,这使得它与其他任何东西区别开来并使其成为Ruby的"杀手级应用程序",导致很多人首先注意到Ruby.
所以问题是"为什么David Hansson决定用Ruby而不是Python编写Rails?"
请记住,Ruby在创建Rails之前已经存在了很长时间.据维基百科称,Ruby创建于90年代中期; Rails直到2004年才出现.Ruby只是David Hansson选择用于Rails的语言.
是的,我会说Ruby是Rails,因为Python是Django.
我同意内德.我敢打赌,超过90%的Ruby安装除了运行Rails之外别无其他用途.Rails在Ruby中占主导地位 - 没有一个应用程序支配Python,主要是因为Python社区比Ruby社区稍大.