开发者社区> 晚来风急> 正文

四款后起语言能否挑战 Python 的王者地位

简介:
+关注继续查看

image
Swift、Go、Julia与R已经成为现任便捷性与功能性王者Python的潜在竞争对手。

王权没有永恒,编程语言自然也不例外。作为当前雄踞各大语言人气榜冠军的Python,其似乎也面临着同样的挑战。不过各类后起之秀也都凭借着自身设计证明,Python所拥有的编程便捷性、强大的数学与科学运算能力以及庞大的第三方库正是一款优秀语言所必须具备的特质,而并非“加分项”。

以下是Python与这四位潜在挑战者间的比拼,Python要如何继续保持住其在编程语言中的优势?

Swift

作为苹果原本为iOS开发设计的新兴语言,Swift已经走向开源并引起了服务器端开发者们的广泛兴趣。

在Swift中编写代码相当舒适,其类似于一种脚本语言而非作为前代方案的Objective-C那种编译语言。Swift的决定性优势在于执行速度——其采用与LLVM编译器框架一致的方式进行机器码编译,因此能够多线程支持,能力上超越Python。

如果开发者认为开发速度比执行速度更重要,那么Python略有优势,不过Swift也通过Xcode IDE提供相当便捷的“Playground”模式。

相较于Python,Swift仍然比较年轻,因此我们的老牌王者在群众基础上显然更好。Swift目前尚无法运行在Windows平台上,因此在落地方面不及Python那么便利。

Go

谷歌公司打造的“直观、简洁、干净、高效”语言,目前已经得到诸多主流技术厂商的广泛支持。

与Swift类似,Go同样可编译为平台原生二进制代码,因此在某些任务中拥有优于Python的运行速度,而且无需设定目标即可完成跨平台开发。Go语言的编译速度也非常出色,从开发速度角度看,其更像是一种解释型语言而非采用编译机制。

虽然Go的历史比Swift稍长一些,但其群体基础仍然无法同Python相比。另外,Go的语法与错误处理方案对当前Python用户来说可能不太友好。因此,其并不适合已经掌握了Python的程序员朋友。而Pyinstaller等工具的出现则让Python应用的绑定工作变得非常便捷,更不用提在大多数Linux系统中,Python运行时已经被设为预置项目了。

Julia

发布于2012年的Julia专门用于技术类应用,例如数据分析与线性代数计算。

Python的一类主要用例在于数学与科学应用,这主要归功于Numpy等库与交互IPython笔记本格式。Julia瞄准了同一用户群体,但在核心速度上要超过Python。另外,其还提供愈发丰富的软件包资源,不仅能够实现数学与科学应用,同时也能像Python那样实现面向云环境下数据源的连接性。

Julia虽然发展速度很快,但Python的开发者社区也不会坐以待毙——围绕Python进行的核心语言与环境开发一直未曾停歇。而且尽管Python的运行速度不及Julia,但大家仍然可以利用合适的库来搞定合适的工作。

另外Julia的反对者也大有人在。举例来说,Julia的数组为1索引而非0索引,这一点与几乎所有现有语言都有所区别。

R

这是一个同时包含语言与开发环境的统计计算项目。

R相较于Python拥有多项优势,例如丰富的第三方软件生态系统。另外,R在设计中考虑到了统计计算需求。虽然Python也很重视数学及统计处理,但R可谓在开发当中自上而下将二者进行了贯穿。

R还吸引到了众多大牌厂商的支持。微软就进行了一系列收购旨在利用R构建自己的云数据服务。惠普方面则开发了Distributed R,能够一次性运行在多个节点之上。随着各相关技术成果的不断演进,R完全有可能在统计计算领域将Python拉下马。

不过有时候通用型语言的优势还是值得强调。R虽然针对性更强,但也更具局限性——我们很难在R应用中实现交互性。另外,Python还能够更好地与其它语言对接,使用RPy2等软件包即可同时享受Python与R带来的便利。

最后,尽管微软确实对R给予了高度关注,但别忘了软件巨头同时也向Python伸出了援助之手,并计算将其运行在Azure当中。

文章转载自 开源中国社区[http://www.oschina.net]

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
23607 0
阿里云服务器ECS登录用户名是什么?系统不同默认账号也不同
阿里云服务器Windows系统默认用户名administrator,Linux镜像服务器用户名root
16654 0
阿里云服务器安全组设置内网互通的方法
虽然0.0.0.0/0使用非常方便,但是发现很多同学使用它来做内网互通,这是有安全风险的,实例有可能会在经典网络被内网IP访问到。下面介绍一下四种安全的内网互联设置方法。 购买前请先:领取阿里云幸运券,有很多优惠,可到下文中领取。
22644 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
16682 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
20849 0
使用SSH远程登录阿里云ECS服务器
远程连接服务器以及配置环境
14811 0
腾讯云服务器 设置ngxin + fastdfs +tomcat 开机自启动
在tomcat中新建一个可以启动的 .sh 脚本文件 /usr/local/tomcat7/bin/ export JAVA_HOME=/usr/local/java/jdk7 export PATH=$JAVA_HOME/bin/:$PATH export CLASSPATH=.
14909 0
使用OpenApi弹性释放和设置云服务器ECS释放
云服务器ECS的一个重要特性就是按需创建资源。您可以在业务高峰期按需弹性的自定义规则进行资源创建,在完成业务计算的时候释放资源。本篇将提供几个Tips帮助您更加容易和自动化的完成云服务器的释放和弹性设置。
20925 0
+关注
9364
文章
243
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载