博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
为什么Quora选择用Python语言?
阅读量:2158 次
发布时间:2019-05-01

本文共 1367 字,大约阅读时间需要 4 分钟。

来源:编程派

Quora是国外知名的问答社区,和知乎类似。它的创始人Adam D'Angelo曾是Facebook的员工。

众所周知,Facebook大量地使用了PHP,而Adam在开发Quora时,使用的却是Python。这到底是为什么呢?

有人在Quora上提出了这个问题,而那个最佳答案自然就是来自Adam本人的了,对于那些犹豫要不要使用Python建站的开发者应该有一定的参考意义。

Adam在回答中很明确地表明了不希望使用PHP,提到Facebook由于历史遗留原因而不得不使用PHP,并不是因为PHP是目前最好的选择。他从自己在Facebook供职的那段经历中,明白了一个道理:选择哪个编程语言是非常重要的,变更的成本极其高昂

Adam和另外一名创始人当时对Python语言都比较熟悉。但还是考察了C#、Java和Scala等其他语言。

C#

在Adam看来,C#当时是非常值得考虑的对象。作为编程语言来说,C#非常优秀,但是选择了C#,就意味着要被捆绑在微软的技术栈上。而他们心里更倾向于尝试新的技术方案。

另外,虽然微软的SQL服务器也很好,但是考虑到他们要集成许多开源代码,而这些代码对于.NET平台的支持较差。而且,当时大部分最有优秀的工程师都已经习惯于使用开源的产品。

除此之外,他们还不愿意冒险使用Mono(C#/.NET的开源实现),因为不知道这个项目能持续多长时间,还存在一些性能问题。

Java和Scala

由于许多原因,Java程序比相同功能的Python程序,代码写起来更加冗长、更加痛苦,而且很难与非Java的代码进行交互。另外,虽然Scala并没有Java那么差,但是也有许多Java和JVM的缺点。Scala语言当时也有点太新潮了,可能会带来一些不必要的风险,因为谁也不知道10年后对这个语言的支持会如何。

OCaml和Haskell

他们还考虑过OCaml和Haskell,但是二者都没有足够大的生态体系或是足够优秀的标准库,而且对可能要写一些代码的设计师、分析师来说太难了。

Python

Python最大的缺点是速度和类型检查(注:类型检查在python3.6就得到了解决)。经过比较和分析,两位创始人认为Python对他们而言已经足够快,而对性能有关键影响的部分都用C++写了;对于类型检查,他们最后编写了非常完善的单元测试,确保不会出现类型错误。既然除去了这2个缺点,他们就很乐意选择Python了。另外,通过过去5年的观察,他们确信Python将继续朝着对他们有利的方向发展。

Adam在回答中指出,Quora的员工目前对选择的这门编程语言还是十分满意的。虽然当初在选择时有一些倾向性,但是公司的所有早期员工对于转型到Python并没有怨言,尤其是之前的PHP程序员。最后他还提到了当时Python语言的几个好的发展趋势。

  • Python 2.6发布后,Quora使用的大部分库都对该版本兼容,因此很快就迁移到了新版本Python

  • Tornado Web开发框架正式开源,Quora则将实时更新网络服务迁移到了Tornado上

  • PyPy发展迅速,最终应该可以正式用于生产,相信以后会大幅提高性能

回答的最后,Adam表示自己对Python语言和Python生态系统的未来充满了信息。

转载地址:http://srqwb.baihongyu.com/

你可能感兴趣的文章
浅谈 GBDT
查看>>
如何选择优化器 optimizer
查看>>
一文了解强化学习
查看>>
CART 分类与回归树
查看>>
seq2seq 的 keras 实现
查看>>
seq2seq 入门
查看>>
什么是 Dropout
查看>>
用 LSTM 做时间序列预测的一个小例子
查看>>
用 LSTM 来做一个分类小问题
查看>>
详解 LSTM
查看>>
按时间轴简述九大卷积神经网络
查看>>
详解循环神经网络(Recurrent Neural Network)
查看>>
为什么要用交叉验证
查看>>
用学习曲线 learning curve 来判别过拟合问题
查看>>
用验证曲线 validation curve 选择超参数
查看>>
用 Grid Search 对 SVM 进行调参
查看>>
用 Pipeline 将训练集参数重复应用到测试集
查看>>
PCA 的数学原理和可视化效果
查看>>
机器学习中常用评估指标汇总
查看>>
什么是 ROC AUC
查看>>