任何“XXX语言太慢”的观念都是以偏概全。 应用程序分很多种,CPU bound, I/O bound, Memory bound, 等等。如果你的程序属于I/O bound,即使你把整个程序换成手工优化过的C,速度不会有本质提升。 对于Dropbox来说,其业务逻辑不复杂,性能瓶颈显然在I/O. 除了我估计判重时的 SHA 运算量比较大,但 CPython 的一大优势便是很容易使用 C 写模块,找到 hot spot 后再用 C 来写也不迟。"Premature optimization is the root of all evil." 既然如此,使用一种性能稍差但易读易写、生态系统完善、跨平台、迭代迅速的语言便是顺理成章的了。 更何况,Guido, Python 的作者,已经被 Dropbox 挖走了。
参考资料: William
Ting's answer to Python (programming language): How can some really
large services (like Dropbox) afford to use Python as a primary
language, if it's one to two orders of magnitude slower than other,
compiled languages?
大型服务使用 Python 作为主要语言的,我知道比较有名的是 Dropbox,YouTube,Quora 和知乎。其实分析Dropbox和YouTube为啥使用 Python意义并不大,因为Dropbox的文件同步和 YouTube 的在线视频这种核心的功能,我相信都不是用 Python 来完成的。
引用出处: Quora Infrastructure: Why did Quora choose Python for its development?
我记得有句话是这么说的: 一只木桶盛水的多少,并不取决于桶壁上最高的那块木块,而恰恰取决于桶壁上最短的那块 还有一句话是这么说的: 一条铁链的承重量是由它最脆弱的那一环决定的