Quora创始人谈:我们为什么使用Python

开发 后端 前端
不经意间在Quora看到这样一个问题:Why did Quora choose Python for its development?2名Quora的创始人给出了答案,我觉得很有参考价值,所以摘录在此。

不经意间在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这个标签可以知道很多技术内幕,真希望知乎也能增加一个;但国内的技术氛围似乎不方便透露,毕竟得考虑山寨的问题。

原文:http://www.keakon.net/2011/09/04/Quora%E4%B8%BA%E4%BD%95%E4%BD%BF%E7%94%A8Python

【编辑推荐】

  1. 对于Python Web编程的一些概念总结
  2. 五分钟理解Python元类(Metaclasses)
  3. Python入门之你必须了解的语法与类型
  4. Perl、PHP、Python、Java和Ruby的比较
  5. 浅谈PHP和Python的基础特性
责任编辑:陈贻新 来源: keakon的涂鸦馆
相关推荐

2009-05-20 13:40:22

GoogleTwitter即时搜索

2009-10-28 08:46:31

WIndows 7Ubuntu对比

2011-09-28 09:32:14

Linux

2015-05-18 14:39:23

MySQL开源OpenStack

2012-04-10 09:58:11

UbuntuLinux乌班图

2009-02-06 17:23:13

NetApp闪存固态盘

2009-09-09 17:45:25

Ruby的blocks

2009-12-04 13:10:36

傲游

2015-09-07 13:46:29

技术联合创始人

2022-05-09 10:28:42

SnapsUbuntuFlatpak

2015-09-02 09:36:21

迅雷

2014-07-14 09:51:09

创始人谷歌项目

2019-05-30 11:35:30

AI

2013-03-05 13:23:29

Linus TorvaGNOME 3

2011-03-04 09:15:18

Windows Pho李卫勇

2011-03-16 10:58:26

Twitter

2016-06-16 17:13:59

Hadoop

2010-05-04 16:22:45

Unix系统

2012-06-14 16:21:24

LinuxLinus Torva

2010-08-30 10:32:59

点赞
收藏

51CTO技术栈公众号