对数学和科学计算拥有强大的处理能力、编程方便、第三方库庞大——凭着这3大优势,Python雄踞“最热门的编程语言榜”榜首,并且一直深受IT人士们的喜爱。然而,长江后浪推前浪,市面上越来越多拥有多方优势的编程语言问世,Python会否地位不保?跟随大圣众包威客平台(www.dashengzb.cn)的脚步,一起来看看编程语言间是怎样斗法的!
一、Python简介
自2004年以后,Python已经成为最受欢迎的程序设计语言之一,它的使用率亦呈线性增长。
由于Python语言的简洁、易读以及可扩展性,在国外用Python做科学计算的研究机构日益增多,一些知名大学已经采用Python讲授程序设计课程。众多开源的科学计算软件包都提供了Python的调用接口,例如著名的计算机视觉库OpenCV、三维可视化库VTK、医学图像处理库ITK。而Python专用的科学计算扩展库就更多了,如NumPy、SciPy和matplotlib,它们分别为Python提供了快速数组处理、数值运算以及绘图功能。因此,Python语言及其众多的扩展库所构成的开发环境,十分适合工程技术、科研人员处理实验数据、制作图表,甚至开发科学计算应用程序。
二、Python VS 其他编程语言
1.Python VS Julia:Python胜
2012年发布的这颗新星,其显著特点也是快速,而且它还有一个正在不断扩展的包,包括基于科学和数学计算的应用。没错,Julia作为面向技术应用的一门编程语言,它主攻数据分析和线性代数。
Python与Julia相比较,在进步性上说,老牌一点的Python从未放弃过进步的机会,仍在马不停蹄地优化语言的核心和开发环境,所以,尽管Julia有和Python拥有类似的库和共同的目标用户,但在这一点方面,不能说老牌的语言必输。再说老掉牙问题——速度,Python的速度并非一定不及Julia(或者其他Python的竞争者),只要针对不同的工作选择恰当的库,速度还是在相差无几的。从习惯性上说,Julia的数组下标是从1开始的,而不是0,这难免让用户很不习惯,转而投向Python的怀抱。
2.Python VS Go:Go输
你知道从Docker及其相关项目到InfluxDB数据库、Ethereum坏链系统和Canonical的Snappy包管理工具,都是用什么语言编写而成的吗?幕后功臣便是鼎鼎大名的Go。作为一款表现力强、简洁、干净、高效的语言,Go也会编译成平台相关的机器码,所以它和Swift一样,都有一个优势——快速!有人曾经评论Go更像一门解释性的语言,因为它的代码编译速度非常快,开发速度也十分快,所以它也是威胁Python地位的语言之一。
Python与Go相比较,二者各有优劣。在速度方面,Go稍胜一筹,除了在多任务方面表现快速,Go还可以在运行时不生成额外的目标,不像Python。在平台兼容性上说,Python作为一款成熟的语言,在用户和库的数量方面还是占有很大优势的。最重要的是,在语法和错误处理方式上,Go彻底输给Python,让人遗憾。
3.Python VS Swift:不相伯仲
作为苹果公司的一种编程语言,Swift主要用于原生的iOS开发。因其拥有的特殊优势,现已开源,并有向服务器端发展的倾向。之所以说Swift是具备真正的多线程的,是因为它的机器码是由LLVM编译框架编译而成的,这样必然决定着它的速度非一般快!很多IT人士说过,使用Swift编程,会获得一种如春风拂面般的舒畅感。另外,相较于编译型语言,Swift实操起来的体验更像是一种脚本语言。
Python与Swift相比较,Python还是稍为领先。在平台兼容性上说,Python有大量的用户基础、大量的库、成熟的多平台支持;而Swift到现在都还不能支持Windows(如果不算上第三方库的话)。在工具依赖性上说,Python更为独立,而Swift仍与苹果工具链藕断丝连。在速度上说,如果说开发速度要比执行速度重要的话,Python也是优势突出,不过Swift也有XCode IDE的“Playground”模式,使得两者不相伯仲。
4.Python VS R:高手过招
无人不知的R,还要拿出来说?是的,毕竟R也是好用到让Python害怕的语言。专为统计学设计的R,无论是就开发环境还是语言本身来说,都很老了,但仍难掩其优势,例如,丰富的第三方库,等等。
Python与R相比较,从专业性上说,R遥遥领先。我们都知道,R是专门为统计学而生的,并且始终专注于此,虽然Python也可以做数学和统计学方面的计算,但是在这方面完全被R语言碾压。然而,优点与缺点往往相同,Python作为一个多用途的语言也有它的好处,它不像R语言那般只局限在统计学计算方面。而且,由于开发环境的限制,构建R语言应用也很麻烦,但使用Python创建应用就很简单。既然如此,为何说R威胁Python地位?因为,R作为一项成熟的语言,已经引起了很多大公司的注意,例如微软和Hewlett-Packard。尤其是Hewlett-Packard开发的分布式的R语言计算产品,可以同时跨多个节点运行,在将来,分分钟可以把Python完全挤出这个领域。
到底Python有没有失宠,相信你已经有了答案。那么,你心中最佳的编程语言,又是哪一个呢?
原文地址:http://www.dashengzb.cn/articles/a-143.html
(更多大数据与商业智能领域干货、兼职机会及行业资源分享等请关注大圣众包平台,或添加大圣花花个人微信号(dashenghuaer),拉你入bigdata&BI交流群330648564。)