Quora为何使用Python
admin
2023-07-31 00:37:39
0
不经意间在Quora看到这样一个问题:Why did Quora choose Python for its development?2名Quora的创始人给出了答案,我觉得很有参考价值,所以摘录在此。首先,Adam D’Angelo曾就职于Facebook,而这家公司是大量使用PHP的。但Adam D’Angelo几乎对PHP没有好感,说Facebook使用PHP是历史遗留原因(我估计扎克伯格最初只想用PHP快速搭建一个网站吧),它存在太多缺点(原文给出了不少文章,我就不列出了)。

其次是C#,这是一门很有前途的语言,但是选择它就意味着加入了Microsoft的阵营(烧钱啊),而很多开源软件对.NET只有第2级的支持(比如更新太慢,或者性能较差之类的),甚至根本不支持。另外,他们也不能冒使用Mono的风险(性能,更新,甚至可能会被Microsoft扼杀)。

而Java和Python比起来,代码写起来太冗长和痛苦,且很难于非Java的(感觉确切来说应该是非JVM的)东西交互。Scala也有Java和JVM的很多缺点,尽管它没有Java那么糟糕。而且它有点新,可能会存在一些不必要的风险。

他们还考虑过OCaml和Haskell,也有着足够的生态体系和标准库,但是对可能要写一些代码的设计师、分析师来说太难了。

Ruby也是个选择,但他和Charlie Cheever都更懂Python一些。

Python最大的缺点是速度和类型检查。对他们而言Python已经足够快,而对性能有关键影响的部分都用C++写了;对于类型检查,他们写了足够多的单元测试来保证。
既然除去了这2个缺点,他们就很乐意选择Python了:

  • 通过对过去5年的观察,他们确信Python将继续朝着对他们有利的方向发展。
  • 有很多用Python写的库,可以很容易地与邮件服务器和任务队列等通信。他们采用了Python 2.6,这足够支持他们的库了。
  • Python有太多好框架(Django、Pylons等),且大都在不断进步。他们选择了Tornado(没给原因,但估计是对长连接的支持。)
  • PyPy可以带来显著的速度提升。
  • Python的数据结构和JavaScript(JSON)映射得很好,所以浏览器和服务器之间的通信很轻松,而Quora大量采用了这种无需载入页面的交互(还是长连接)。
  • Python的代码很易读(还应该加上表达能力强)。他们需要和很多人一起工作,这显得非常重要。

顺带一提,知乎可能也是因为这些理由选择Python和Tornado的。Quora Infrastructure这个标签可以知道很多技术内幕,真希望知乎也能增加一个;但国内的技术氛围似乎不方便透露,毕竟得考虑山寨的问题。


相关内容

热门资讯

500 行 Python 代码... 语法分析器描述了一个句子的语法结构,用来帮助其他的应用进行推理。自然语言引入了很多意外的歧义,以我们...
定时清理删除C:\Progra... C:\Program Files (x86)下面很多scoped_dir开头的文件夹 写个批处理 定...
65536是2的几次方 计算2... 65536是2的16次方:65536=2⁶ 65536是256的2次方:65536=256 6553...
Mobi、epub格式电子书如... 在wps里全局设置里有一个文件关联,打开,勾选电子书文件选项就可以了。
scoped_dir32_70... 一台虚拟机C盘总是莫名奇妙的空间用完,导致很多软件没法再运行。经过仔细检查发现是C:\Program...
小程序支付时提示:appid和... [Q]小程序支付时提示:appid和mch_id不匹配 [A]小程序和微信支付没有进行关联,访问“小...
pycparser 是一个用... `pycparser` 是一个用 Python 编写的 C 语言解析器。它可以用来解析 C 代码并构...
微信小程序使用slider实现... 众所周知哈,微信小程序里面的音频播放是没有进度条的,但最近有个项目呢,客户要求音频要有进度条控制,所...
python查找阿姆斯特朗数 题目解释 如果一个n位正整数等于其各位数字的n次方之和,则称该数为阿姆斯特朗数。 例如1^3 + 5...
Apache Doris 2.... 亲爱的社区小伙伴们,我们很高兴地向大家宣布,Apache Doris 2.0.0 版本已于...