python html5 bootstrap 视频教程
德云社区 门户 IT 编程 编程语言 Python 查看内容

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

2016-3-1 01:53| 发布者: digitser| 查看: 1663| 评论: 0|原作者: money

摘要: Quora两位创始人选择Python编程语言而非PHP Java C# .NET的原因 Quora是一个问答SNS网站,由Facebook前雇员查理·切沃(Charlie Cheever)和亚当·安捷罗(Adam D' Angelo)于2009年6月创办。在2009年12月推出测试 ...
自动立式分页纸箱赋码系统 ── 全自动 专业 立式分页 瓦楞纸 水性油墨 贴标 喷码 检测系统
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人工智能 语音助理 人工翻译 教程

相关阅读

最新评论

相关分类

CSS3 官方中文文档编制 手册教程 人工翻译 更新日志
CSS3 官方中文文档编制 手册教程 人工翻译 更新日志 CSS3 中文文档编制采用机器辅助 + 全人工翻译,完全采用 数字翻译 的文档翻译流程进行汉化 (未采用任何第 3 方工具),[909/2022-07-31]
CSS3 官方中文文档编制 手册教程 帮助文件 人工翻译
CSS3 官方中文文档编制 手册教程 帮助文件 人工翻译 CSS3 中文文档编制采用机器辅助 + 全人工翻译,完全采用 数字翻译 的文档翻译流程进行汉化 (未采用任何第 3 方工具),[1015/2022-07-31]
SolidWorks 2020 非对称Conic Rho圆角 抽壳出现模型穿刺
SolidWorks 2020 非对称Conic Rho圆角 抽壳出现模型穿刺 标准对称圆角最常用,但有时偶尔也会用到非对称圆角。 特别是模具、五金、电子、手饰、汽车、家具、玩具、等对圆[892/2022-05-25]
NumPy 1.22 官方中文文档编制 手册帮助 更新日志
NumPy 1.22 官方中文文档编制 手册帮助 更新日志 以后不再上传 en-US 官方原版文档编制,目前上传的最新 zh-CN 人工翻译版本为 NumPy 1.22。 NumPy 1.22 中文文档编制采用[582/2022-05-22]
NumPy 1.22 官方中文文档编制 手册帮助 全人工翻译
NumPy 1.22 官方中文文档编制 手册帮助 全人工翻译 以后不再上传 en-US 官方原版文档编制,目前上传的最新 zh-CN 人工翻译版本为 NumPy 1.22。 NumPy 1.22 中文文档编制采[657/2022-05-22]
Pillow 9.1.1 官方中文文档编制 手册帮助 更新日志
Pillow 9.1.1 官方中文文档编制 手册帮助 更新日志 以后不再上传 en-US 官方原版文档编制,目前上传的最新 zh-CN 人工翻译版本为 Pillow 9.1.1。 Pillow 9.1.1 中文文档编[626/2022-05-22]
Pillow 9.1.1 官方中文文档编制 手册帮助 全人工翻译
Pillow 9.1.1 官方中文文档编制 手册帮助 全人工翻译 以后不再上传 en-US 官方原版文档编制,目前上传的最新 zh-CN 人工翻译版本为 Pillow 9.1.1。 Pillow 9.1.1 中文文档[579/2022-05-22]
PyMuPDF 1.19.6 官方中文文档编制 手册帮助 更新日志
PyMuPDF 1.19.6 官方中文文档编制 手册帮助 更新日志 以后不再上传 en-US 官方原版文档编制,目前上传的最新 zh-CN 人工翻译版本为 PyMuPDF 1.19.6。 PyMuPDF 1.19.6 中文[1161/2022-05-22]
PyMuPDF 1.19.6 官方中文文档编制 手册帮助 全人工翻译
PyMuPDF 1.19.6 官方中文文档编制 手册帮助 全人工翻译 以后不再上传 en-US 官方原版文档编制,目前上传的最新 zh-CN 人工翻译版本为 PyMuPDF 1.19.6。 PyMuPDF 1.19.6 中[994/2022-05-22]
Qt 6.3.0 官方中文文档编制 手册教程 帮助文件 人工翻译
Qt 6.3.0 官方中文文档编制 手册教程 帮助文件 人工翻译 以后不再上传 en-US 官方原版文档编制,目前上传的最新 zh-CN 人工翻译版本为 Qt 6.3.0。 Qt 6.3.0 中文文档编制[2445/2022-05-02]
Qt 6.3.0 官方中文文档编制 手册教程 人工翻译更新日志
Qt 6.3.0 官方中文文档编制 手册教程 人工翻译更新日志 以后不再上传 en-US 官方原版文档编制,目前上传的最新 zh-CN 人工翻译版本为 Qt 6.3.0。 Qt 6.3.0 中文文档编制采[2029/2022-05-02]
MAGIX Music Maker Premium - 易学易用 功能强大的可视化编曲软件
MAGIX Music Maker Premium - 易学易用 功能强大的可视化编曲软件 MAGIX Music Maker 是德国 Magix 出品的可视化编曲软件,功能强大、使用简单、容易上手。 MAGIX Music Ma[1738/2022-04-11]
MQTT - 消息队列遥测技术 M2M机器到机器 IoT物联网 通信协议
MQTT - 消息队列遥测技术 M2M机器到机器 IoT物联网 通信协议 MQTT 是 Message Queuing Telemetry Transport 的缩写,中文译为消息队列遥测传输。 MQTT 是 ISO 标准 (ISO/I[616/2022-02-24]
数字 Python IDE 2022 注册机 注册码生成器 附详细破解方法
数字 Python IDE 2022 注册机 注册码生成器 附详细破解方法 数字 Python IDE 目前还在不断研发 进步中,虽不太成熟,但其新理念很有特色 特别适于多版本 多文档 多工程并行[680/2022-02-01]
数字翻译 2022 注册机 注册码生成器 内存破解器 附详细用法
数字翻译 2022 注册机 注册码生成器 内存破解器 附详细用法 数字翻译目前还在不断研发 进步中,虽不太成熟,但其新理念很有特色 特别适于 HTML 文档本地化 (面向高精度 超[634/2022-02-01]

Archiver|Sitemap|小黑屋|德云社区   

GMT+8, 2024-4-26 15:51 , Processed in 0.030859 second(s), 27 queries .

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

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

返回顶部