python html5 bootstrap 视频教程

德云社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 5834|回复: 0

Quora两位创始人选择Python编程语言而非PHP Java C# .NET的原因

[复制链接]

195

主题

220

帖子

1050

积分

工程师

Rank: 5Rank: 5

金钱
620
金币
6
威望
0
贡献
0
发表于 2016-3-1 01:22:44 | 显示全部楼层 |阅读模式
AI人工智能 语音助理 人工翻译 教程
Quora两位创始人选择Python编程语言而非PHP Java C# .NET的原因

Quora是一个问答SNS网站,由Facebook前雇员查理·切沃(Charlie Cheever)和亚当·安捷罗(Adam D' Angelo)于2009年6月创办。在2009年12月推出测试版,随后在2010年6月21日向公众开放。2010年3月,Quora得到基准资本公司的创业资金,估价高达8600万美元。2012年5月, Quora在B轮筹资中募集了五千万美金。


作为Quora创始人,Adam 曾在Facebook工作,大家都知道Facebook是个PHP作坊。 想知道Quora为什么选择了Python而不是PHP作为开发语言?这样的选择又面临什么样的技术挑战?


PHP显然不在考虑之列。Facebook继续使用PHP完全是因为历史原因,并不是因为PHP现在是最好的选择。这件事让我们明白两个道理,那就是:开发语言的选择极其重要,02、更换开发语言成本高昂。


很熟悉Python(尽管现在对Python的理解远比以前更加深刻)。事实上我们也曾经考虑过其他选择,比如 C#, Java和Scala。Python最主要的的问题是运行效率不高和缺乏类型检查机制。C#看起来是不错的选择。作为一门程序语言,它非常棒,但是有以下顾虑:


01、 不想依赖微软技术链。 我们乐意学习新东西,MS SQL看上去也很不错。不过我们将集成很多开源程序,而这些开源程序对.NET顶多也就是提供二手支持(如果有的话)。另外,现在最棒的程序员都习惯于使用开源资源。


02、不想冒险去使用Mono(C#/.NET的开源实现)。 Mono项目的资金支持能持续到什么时候还是个未知数,也听说过它存在一些性能问题。另外一个问题:一旦你使用C#,它便假定所有东西都是基于微软的生态系统实现。


至于Java,也有一些并非根本的因素导致我们不乐意选择它。Java程序通常比同等Python程序要长,编写起来更加麻烦。如需集成非Java实现,那就头大了。Scala尽管会好一些,但还是从Java和JVM哪里继承了很多这样那样的毛病。同时Scala也太新了些,会冒不必要风险(比如,天知道未来10年它会得到什么样的支持)


另外,我们还考察过其它两种语言:OCaml和Haskell。但二者都缺乏足够大的生态系统,标准库也不够完善。而且对于有时不得不写代码的设计师/数据分析师/非程序员来说,实在是太难于学习了。


Python性能满足了我们绝大部分需要,而涉及性能关键的代码我们都尽可能使用C++实现,运行在后端服务器。至于缺乏类型检查的不足,我们通过详尽的单元测试来弥补,这非常有效,完全达到了目的。同时,过去5年Python演进的方向也让我们对其未来的发展充满信心,这对我们的codebase非常有益。


到目前为止,我们很满意当初的选择。当时,我们或多或少存在一些个人偏见,不过值得高兴的是,所有过去使用其他语言的团队成员都非常乐于转换到Python,特别是那些PHPer。还有一些值得一提的是:


01、Python2.6发布时,我们用到的绝大部分库都保持了兼容,非常容易升级。


02、 Tornado(web framework)开源了,我们马上把实时更新部分web service迁移到Tornado实现。


03、PyPy 看上去终于具有可用性了。这将给我们带来极大的性能提升。


所有这一切,都让我们相信Python及其生态系统在向好的方向发展。Python 还有以下一些特点:


01、Python有许多很酷的框架,它们拥有很棒debugger和reloader,比如Django, Pylons等等。大多数框架都有良好的社区支持并变得越来越好。因为我们主要做的是web应用,所以这非常有吸引力。


02、Python和Javascript的数据结构匹配得非常好(Python标准库内置对json的支持),因此browser和server间序列化和交互数据简单直接。由于Quora除了页面加载外, client和server还有很多数据交互,所以这非常棒。


03、Python代码有良好的可读性,这很重要,因为我们需要和很多人一起协作。


04、Python有丰富的开源程序库,所以要集成mail server或task queue之类的到我们的codebase非常容易。


我想Ruby也是一个合理的候选,它同样具备很多Python具备的优点。只是Adam和我更熟悉Python。


版权声明:
本文由 德云社区 整理,原文来自网络。

AI人工智能 语音助理 人工翻译 教程
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|Sitemap|小黑屋|德云社区 |网站地图  

GMT+8, 2024-4-27 01:44 , Processed in 0.026386 second(s), 27 queries .

工业和信息化部: 粤ICP备14079481号-2

技术支持 乐数软件     版权所有 © 2014-2021 德云社区    

快速回复 返回顶部 返回列表