天天看点

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

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

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当中。