Python对于大型应用程序是否足够好?

Ili*_*iev 24 python django web-applications

从我面对Python的那一刻起,我唯一能说的就是"它真棒".我正在使用Django框架,我很惊讶事情发生的速度以及开发人员对这种语言的友好程度.但是从很多方面来说,我听说Python是一种脚本语言,对于小事物,实验等非常有用.

所以问题是可以用Python(和django)构建一个大而重的应用程序吗?由于我主要关注Web开发,此类应用程序的示例可能是Stack Overflow,Facebook,Amazon等.


PS根据许多答案,我可能需要重新解释这个问题.有几个大的应用程序使用Python(最好的例子是You Tube),所以它可以处理它们,但为什么它不像大型项目那样受欢迎(例如)Java,C++和.NET?

Lup*_*uch 44

Python很高兴能够处理大型应用程序.与其他企业流行语言相比,您获得:

  • 没有编译时间,如果您曾经在大型C++项目上工作,那么您知道这可能会花费多少时间
  • 简洁干净的语法使阅读代码更容易,在阅读其他人的代码时甚至是在很久以前写的代码时也节省了大量时间
  • 在核心级别的可移植性,如果您的应用程序在多个平台上运行很重要,那肯定会有所帮助
  • 对于大多数事情来说它足够快,而当它不是这样的时候,使用Cython和numpy等工具重写C中的热点是微不足道的.出于速度原因而主张反对动态语言的人们已经忘记了80-20规则(或者从未听说过).为性能关键型应用程序选择语言时要考虑的重要事项是IMHO在需要时可以轻松获得对C级别的访问权限,而Python非常适合

然而,它不是一种神奇的语言,你需要使用与其他语言中的大项目相同的技术:TDD(有些人可能认为它比其他语言更重要,因为缺乏类型检查,但这不是其他语言的胜利语言,单元测试在大项目中总是很重要),清洁OO设计等等......或者维护你的应用程序将成为一场噩梦.

与.NET,Java等人相比,它在企业中缺乏接受性的主要原因.可能没有成群的顾问和"认证专家"吹嘘他们的工具是地球上最好的东西.我也听说Java很容易被接受,因为它的语法类似于C++ ......考虑到C#也选择采用这种方式,这可能不是一个愚蠢的想法.


Pre*_*gha 14

谷歌倾向于使用python很多,所以我认为它准备好了很长时间.我们使用python作为产品的粘合剂,因此我们对此感到满意.

  • 它对于小事物和实验很有用,因为你会在python中用大多数其他语言写出更快的东西,而当你进行实验时,你不想浪费太多时间来花在实际的开发上.人们倾向于在python中进行开发和测试,然后在C/C++中将其写下来,如果需要速度,则将其绑定到python中. (9认同)

Rak*_*kis 8

你的问题的答案实际上归结为当你说"大申请"时你的想法.简单的答案是"是".Python是非常复杂的系统的主干,并且它非常优雅(只需看看有多大但设计精良的Twisted和Django).但是,它是一个像其他任何工具一样的工具.它包含性能权衡,可能适用于您的应用程序域,也可能不适合您的应用程序域.

如果你正在寻找一个必须在1000Hz以上运行复杂计算的高性能飞行模拟器......那么Python可能不是整个项目的正确选择.另一方面,如果单CPU性能不是主要因素,或者应用程序将分布在多个服务器上以实现可伸缩性要求,那么Python可能是一个不错的选择.

令人惊讶的是人们很容易忘记开发时间有多昂贵.Python以其令人难以置信的速度而着称,可以开发生产质量应用程序.对于几乎任何非常重要的事情,节省的开发时间将远远超过将一些额外的服务器丢入池中所带来的成本.


Dav*_*rby 7

YouTube的后端几乎全部使用Python. 以下是YouTube可扩展性团队的工程经理Cuong Do Cuong的演讲,该演讲详细介绍了他们所面临的问题以及他们如何解决这些问题.他指出,语言速度几乎不是瓶颈.

我怀疑YouTube的负载要高得多,无论你在做什么都会.


Man*_*dan 5

通常,可以。

我主要专注于Web开发,因此例如,我可以提供Stack Overflow,Facebook,Amazon等。

Reddit.com是用Python编写的。它具有庞大的用户群,并接收了大量的流量,并且看起来表现不错。Reddit虽然没有使用Django。