Is Python good for highload web projects?
我决定开始自己的网络项目。这应该是一个高负载的项目,我不能决定应该使用哪种技术。我擅长ASP.NET MVC,但我更喜欢像Python这样的语言,而不是C_。我读了很多关于python和django/pylons/etc的文章,但没有找到任何关于python的高负载项目的好例子。
所以,问题是:python适合于高负载项目吗?速度够快吗?如果是的话,像django/pylons/etc这样的Python框架是否适合这样做?或者ASP.NET MVC将是更好的选择?
PS,我对爪哇、Ruby和PHP不感兴趣:所以,我只在Python + Django/PalpNe/ETC和ASP.NET MVC之间选择。
是的,python会的,有几个高负载的网站使用python。问题通常是IO,而不是处理能力。
这也取决于"高负荷"对你意味着什么。为了安全。使用一个Web框架,你可以选择你的部分(即不是Zope、Plone或Django),这样你可以用一个快速的模板引擎替换一个缓慢的模板引擎,用一个快速的模板引擎替换一个缓慢的ORM,用一个快速的模板引擎替换一个缓慢的数据库,等等。如果我是你,我会使用金字塔。
也就是说,有一个以上所有的网站,可以称为"高负荷"以及。这只是更棘手的问题。
这不是一个平台有多"快"的情况,更是一个平台扩展的情况。如果选择x而不是y意味着需要10%,20%,50%以上的服务器资源,那就是"好的"。如果这意味着你需要O(n^2)而不是O(n),那就不好了。
当然,django和asp.net mvc上都建立了"大容量"站点。
最后,我认为你对数据库平台的选择,以及你的数据库设计将比你对Web应用平台的选择更重要。
请记住,对于绝大多数Web应用程序,开发和维护成本远远超过托管成本。服务器很便宜。开发人员很昂贵。谁来维护这个项目?他们有什么专长?
举个例子:friendfeed使用了用python编写的tornado。我看够高了。
你的问题的答案很明显:这要看情况而定!;-)在你的描述中,有很多因素是缺失的。
仅举一个例子:例如,我假设您的应用程序将使用一个数据库。您将使用哪种数据库?SQL?NoSQL?如果是SQL,那么我认为与MySQL&Co相比,SQL Server更优越,以防您想花费金钱购买许可证和所需的硬件。在这种情况下,我会选择ASP.NET,因为那里的支持更好。
您应该首先更好地理解您真正想要做的事情,然后选择正确的工具。
Python是个不错的选择。我是一名初级程序员,我们做的所有项目都是和Django一起完成的。你不知道任何与Django合作的项目的原因是它看起来很平常,很难说清楚。查看:http://www.djangosites.org/(此处不显示更大的项目)。另一方面,在Linux中,python更加用户友好(我使用Ubuntu)。所以,如果你赢了粉丝,这意味着花更多的时间解决问题,但这是可能的。我已经看过了。我必须说我对ASP.NET不太了解,所以我很难比较它。祝你好运。