看看大佬的思考吧

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

Adam在回答中指出,Quora的员工目前对选择的这门编程语言还是十分满意的。虽然当初在选择时有一些倾向性,但是公司的所有早期员工对于转型到Python并没有怨言,尤其是之前的PHP程序员。最后他还提到了当时Python语言的几个好的发展趋势。Python 2.6发布后,Quora使用的大部分库都对该版本兼容,因此很快就迁移到了新版本Python

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

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

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

本站文章除注明转载外,均为本站原创或编译,如需转载,请联系微信公众号“编程派”获得授权。转载时,应注明来源、作者及原文链接。

ros开发语言python效率_Python 的开发效率真的比 Java高吗?相关推荐

  1. python开发效率怎样_Python 的开发效率真的比 Java高吗?

    真的比Java高很高. 几个例子. 爬虫领域,几年前就用Scrapy抓百度,新浪,股吧等各种东西. 五分钟写好一个小爬虫,爽到暴有没有?当年我就是靠教人写爬虫...才骗到小妹妹跟我约会的. 文本处理, ...

  2. python和土木工程_Python 的开发效率真的比 Java高吗?

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 作者:暗灭 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 真的比Java高很高. 几个例子. 爬虫领域,几年前就用Sc ...

  3. 学习开发语言 python 资料

    服务器端开发越来越热.而这方便面的开发知之甚少,跟随大数据处理的潮流, 准备再学一门开发语言 python. 下面是一些python 学习的网站及资料,不错.记录一下,方便学习: 一.教程 1.pyt ...

  4. 大数据全栈式开发语言 – Python

    前段时间,ThoughtWorks在深圳举办一次社区活动上,有一个演讲主题叫做"Fullstack JavaScript",是关于用JavaScript进行前端.服务器端,甚至数据 ...

  5. python开发app需要多久_python数据库开发app

    数据库迁移 开发过程往往伴随着数据库的升级,有时候需要修改数据库模型,修改之后可能还要更新数据库. Flask-SQLAlchemy 只在数据库表不存在时才会根据模型创建表.因此只能先删除再更新.你是 ...

  6. 《Flask Web开发——基于Python的Web应用开发实践》一字一句上机实践(上)

    目录 前言 第1章 安装 第2章 程序的基本结构 第3章 模板 第4章 Web表单 第5章 数据库 第6章 电子邮件 第7章 大型程序的结构 前言 学习Python也有一个半月时间了,学到现在感觉还是 ...

  7. 《Flask Web开发——基于Python的Web应用开发实践》一字一句上机实践(下)

    目录 前言 第8章 用户认证 第9章 用户角色 第10章 用户资料 第11章 博客文章 第12章 关注者 第13章 用户评论 第14章 应用编程接口   前言 第1章-第7章学习实践记录请参见:< ...

  8. python语言开发效率高吗_Python 的开发效率真的比 Java高吗?

    几个例子. 爬虫领域,几年前就用Scrapy抓百度,新浪,股吧等各种东西. 五分钟写好一个小爬虫,爽到暴有没有?当年我就是靠教人写爬虫...才骗到小妹妹跟我约会的. 文本处理,在服务器端处理日志,或者 ...

  9. 人工智能开发语言 python,python人工智能编程教程

    python适合做人工智能的编程语言吗? 当然,Python是人工智能的首选语言.具体原因如下:Python在设计上坚持了清晰的风格,让Python成为了一门简单.易读.易维护的语言,让大量用户所欢迎 ...

  10. 人工智能开发语言 =Python

    谷歌的AI击败了一位围棋大师,是一种衡量人工智能突然的快速发展的方式,也揭示了这些技术如何发展而来和将来可以如何发展. 人工智能是一种未来性的技术,目前正在致力于研究自己的一套工具.一系列的进展在过去 ...

最新文章

  1. Ember——在构建Ember应用程序时,我们会使用到六个主要部件:应用程序(Application)、模型(Model)、视图(View)、模板(Template)、路由(...
  2. 千亿美元市值的拼多多,真被高估了吗?
  3. Cempi实战攻略(六)——如何截获到达的短消息
  4. python两数相加取_Leetcode_两数相加_Python
  5. 数据结构和算法 —— 时间复杂度+空间复杂度
  6. Java JDBC篇4——数据库连接池
  7. apollo修改配置刷新bean_携程开源的分布式apollo技术整合springboot集成实现动态刷新配置
  8. Flutter学习 — 创建一个 grid List
  9. SONATYPE NEXUS搭建MAVEN私服
  10. VBoxGuestAdditions.iso下载
  11. 【UE4从零开始 082】全局光照
  12. 元宇宙8大创业方向:虚拟偶像、数字孪生…
  13. SAP PI SLD RZ70 系统架构目录数据提供者 HTTP(S) 配置
  14. spark本地项目报错:Could not locate executable null\bin\winutils.exe in the Hadoop binaries.
  15. 新人小白的第一次天池比赛感受
  16. 【产品】项目管理的五大阶段
  17. [JOI 2014 Final]裁剪线
  18. numpy.floor()函数的使用
  19. mac解决//go:linkname must refer to declared function or variable
  20. matlab联立两个方程组求解,实验二 Matlab求解数学问题(终稿)2

热门文章

  1. vc 2010 下打包dll 的问题
  2. 格式化输出的函数printf()用法
  3. ue4相机_UE4.24源码分析 - PlayerStart
  4. python抓取websocket_python--websocket数据解析
  5. 删除双系统linux分区,双系统时如何正确删除Linux系统
  6. block相对于delegate有哪些优缺点?
  7. CentOS下搭建测试WEB平台
  8. LeetCode Convert Sorted List to Binary Search Tree 解题报告
  9. 10.N个整数中查找是否相加为K[深度搜索]
  10. RESTful Request:GET/PUT/DELETE/POST/HEAD/OPTIONS