ros开发语言python效率_Python 的开发效率真的比 Java高吗?
看看大佬的思考吧
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高吗?相关推荐
- python开发效率怎样_Python 的开发效率真的比 Java高吗?
真的比Java高很高. 几个例子. 爬虫领域,几年前就用Scrapy抓百度,新浪,股吧等各种东西. 五分钟写好一个小爬虫,爽到暴有没有?当年我就是靠教人写爬虫...才骗到小妹妹跟我约会的. 文本处理, ...
- python和土木工程_Python 的开发效率真的比 Java高吗?
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 作者:暗灭 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 真的比Java高很高. 几个例子. 爬虫领域,几年前就用Sc ...
- 学习开发语言 python 资料
服务器端开发越来越热.而这方便面的开发知之甚少,跟随大数据处理的潮流, 准备再学一门开发语言 python. 下面是一些python 学习的网站及资料,不错.记录一下,方便学习: 一.教程 1.pyt ...
- 大数据全栈式开发语言 – Python
前段时间,ThoughtWorks在深圳举办一次社区活动上,有一个演讲主题叫做"Fullstack JavaScript",是关于用JavaScript进行前端.服务器端,甚至数据 ...
- python开发app需要多久_python数据库开发app
数据库迁移 开发过程往往伴随着数据库的升级,有时候需要修改数据库模型,修改之后可能还要更新数据库. Flask-SQLAlchemy 只在数据库表不存在时才会根据模型创建表.因此只能先删除再更新.你是 ...
- 《Flask Web开发——基于Python的Web应用开发实践》一字一句上机实践(上)
目录 前言 第1章 安装 第2章 程序的基本结构 第3章 模板 第4章 Web表单 第5章 数据库 第6章 电子邮件 第7章 大型程序的结构 前言 学习Python也有一个半月时间了,学到现在感觉还是 ...
- 《Flask Web开发——基于Python的Web应用开发实践》一字一句上机实践(下)
目录 前言 第8章 用户认证 第9章 用户角色 第10章 用户资料 第11章 博客文章 第12章 关注者 第13章 用户评论 第14章 应用编程接口 前言 第1章-第7章学习实践记录请参见:< ...
- python语言开发效率高吗_Python 的开发效率真的比 Java高吗?
几个例子. 爬虫领域,几年前就用Scrapy抓百度,新浪,股吧等各种东西. 五分钟写好一个小爬虫,爽到暴有没有?当年我就是靠教人写爬虫...才骗到小妹妹跟我约会的. 文本处理,在服务器端处理日志,或者 ...
- 人工智能开发语言 python,python人工智能编程教程
python适合做人工智能的编程语言吗? 当然,Python是人工智能的首选语言.具体原因如下:Python在设计上坚持了清晰的风格,让Python成为了一门简单.易读.易维护的语言,让大量用户所欢迎 ...
- 人工智能开发语言 =Python
谷歌的AI击败了一位围棋大师,是一种衡量人工智能突然的快速发展的方式,也揭示了这些技术如何发展而来和将来可以如何发展. 人工智能是一种未来性的技术,目前正在致力于研究自己的一套工具.一系列的进展在过去 ...
最新文章
- Ember——在构建Ember应用程序时,我们会使用到六个主要部件:应用程序(Application)、模型(Model)、视图(View)、模板(Template)、路由(...
- 千亿美元市值的拼多多,真被高估了吗?
- Cempi实战攻略(六)——如何截获到达的短消息
- python两数相加取_Leetcode_两数相加_Python
- 数据结构和算法 —— 时间复杂度+空间复杂度
- Java JDBC篇4——数据库连接池
- apollo修改配置刷新bean_携程开源的分布式apollo技术整合springboot集成实现动态刷新配置
- Flutter学习 — 创建一个 grid List
- SONATYPE NEXUS搭建MAVEN私服
- VBoxGuestAdditions.iso下载
- 【UE4从零开始 082】全局光照
- 元宇宙8大创业方向:虚拟偶像、数字孪生…
- SAP PI SLD RZ70 系统架构目录数据提供者 HTTP(S) 配置
- spark本地项目报错:Could not locate executable null\bin\winutils.exe in the Hadoop binaries.
- 新人小白的第一次天池比赛感受
- 【产品】项目管理的五大阶段
- [JOI 2014 Final]裁剪线
- numpy.floor()函数的使用
- mac解决//go:linkname must refer to declared function or variable
- matlab联立两个方程组求解,实验二 Matlab求解数学问题(终稿)2
热门文章
- vc 2010 下打包dll 的问题
- 格式化输出的函数printf()用法
- ue4相机_UE4.24源码分析 - PlayerStart
- python抓取websocket_python--websocket数据解析
- 删除双系统linux分区,双系统时如何正确删除Linux系统
- block相对于delegate有哪些优缺点?
- CentOS下搭建测试WEB平台
- LeetCode Convert Sorted List to Binary Search Tree 解题报告
- 10.N个整数中查找是否相加为K[深度搜索]
- RESTful Request:GET/PUT/DELETE/POST/HEAD/OPTIONS