(免责声明:I asked this question yesterday on Hacker News。虽然答案很好,但显然缺乏技术讨论,更多的是“你应该使用rails,因为这就是你所知道的。”因为Joel和Jeff明确表示他们不介意从其他网站转发问题...而且因为我真的很喜欢我在这里找到的答案......这里去了)
大家好。
我意识到这篇文章是一个臭名昭着的“对抗”问题,毫无疑问,对于较旧的帖子而言是多余的。但是,我在Rails和Django上找到的大部分信息已经过时,基于很多旧版本的框架,所以请原谅我。
首先......我是一名Rails人。三年前我来到这里,非常享受它带来的很多东西。我不仅仅是一个Ruby人......我有大约11年的总经验,包括Java,C / C ++,Perl,Tcl,(某些)Python等等。
无论如何,我有一个想法,我相信将接管世界。我已经说服了一些人,并且有朋友和家人的资金来吸引一些离岸开发人员,并尽快让他们接受测试。
然而,现在,我仍然决定使用什么技术。虽然我真的很喜欢Ruby ......我已经厌倦了魔法和滥用开放课程。当你需要快速注入一些行为时,这是非常好的,但是当你必须维护你的项目或它所依赖的任何插件时,它会变得非常痛苦。我个人更喜欢Ruby而不是Python(主要是因为块),但我羡慕Python社区中的清晰度第一的态度。鉴于这种挫败感,我正在认真考虑深入研究Django并将其用于此项目。
我在Rails方面看到的优点是:
Rails的缺点包括:
Django方面的(感知)优势:
Django的缺点:
所以,到目前为止,这是我的思考过程。我很高兴我可以快速加速Django,我的Python基础知识仍在我的记忆中。但我想得到你的意见,因为我真的很尊重我在这里读到的很多人的愿景和经验。
感谢您的帮助。我真的认为这个想法会起飞,所以做出正确的技术决定对我来说非常重要。
并说选择Rails只是因为我有经验那里听起来不对。如果是这种情况,我仍然会使用Perl或C.
谢谢!
答案 0 :(得分:8)
[从HN转发,与问题相同的链接,因为我希望听到您(您没有回复HN)和SO回复。]
我显然有偏见,因为我经营一家django开发公司。那就是说,我开始回答Django的缺点,
学习曲线: 不超过任何其他框架。此外,文档是一流的。 (文档是我在评估时卖给我的。)
较小的社区: 绝对是真的。但超出临界规模,社区规模无关紧要。 Django远远超过这个规模。 (Irc:任何给定时间~200 Devs.Google group:14000+ Users)
项目本身的开发周期较慢?: 为什么?如果你提供更多细节,我可以回答。
(联合国)离岸资源的可用性: 绝对不及Rails,但仍然没有你想象的那么糟糕。一个非常小的列表,http://uswaretech.com/blog/2009/03/web-development-companies ...
多数民众赞成说,鉴于您的信息,我的情况下我会选择Rails。即使您希望离岸工作的大部分工作,您现有的Rails经验将是一个巨大的优势,帮助您评估供应商,跟踪。
在一个半相关的说明中,Django不太成熟/较小的社区被夸大了,一些数字,
答案 1 :(得分:7)
您忘记了Rails的至少一个优势 - 通过RSpec / Cucumber增强可测试性。实际上,主要(附加)优势是敏捷测试社区对Ruby / Rails的关注。使用自然语言测试应该显着增强从测试推理和促进可理解性的能力。在某些方面,这将通过易于阅读的测试来记录您所厌恶的“魔力”。
除此之外,我建议你花费你朋友和家人的钱的新项目可能不是学习新语言/框架的理想情况。为什么要为已经冒险的企业增加额外的风险?
答案 2 :(得分:6)
我只想与你的许多陈述争论:
既然你已经知道Rails,你应该坚持下去,除非你知道它会很痛苦。另外,如果您对Rails不满意,我建议您浏览一些存在的其他Python框架的教程,如Turbogears 2,BFG和Grok。可能你更喜欢Rails / Django不那么单一或更完整的东西。
http://bfg.repoze.org/ http://grok.zope.org/ http://turbogears.org/
答案 3 :(得分:6)
我对这两个框架的比较有不同的看法。我仍然是这两个人的菜鸟,因为我是一名Java开发人员,正在寻找一些在我的业余时间更令人兴奋的事情。我一直在密切观察这两个框架,并想出了这个:
如您所知,Rails诞生于37signals制作的基于Web的应用程序,它影响了if的体系结构。虽然我还没有在实际应用程序中使用Rails,但我想我可能会将它用于我的下一个宠物项目。
Django出生于一个报纸网站,所以在某种程度上也影响了django本身的架构。我只在我的沙箱网站上使用了django,到目前为止我真的很喜欢用它构建网站。
有些人可能不同意我,因为他们可以找到使用Rails作为网站和django作为Web应用程序的解决方法。但这是我认为根据他们的架构区分这两者的原因。因此,它也将定义它们有什么用处。随意不同意我: - )
干杯。