我们是多么地喜欢各种移动设备啊!记得曾经照相手机让我们记录最宝贵的时刻,而互联网及其多种通讯工具使我们能够与遥远的朋友和家人保持联络。但我们通常并不会想到实现这个互连世界背后的「程序语言」(programming languages)。
然而,值得注意的是,随着智能型手机与穿戴式装置等移动设备普及,近来有些程序语言的“人气”开始起了变化,这让我们有机会得以一窥数字世界的走向,同时也提醒自己究竟发展到什么地步了。
IEEE Spectrum在今年九月发布2019年程序语言排行榜,许多人可能会惊讶地发现Python仍保持其龙头宝座。自2017年以来,Python这种基于脚本(script-based)的语言,在IEEE Spectrum的排名中一直排名第一。
但这其实一点都不意外。IEEE采用加权标准对语言进行评分。去年,Python的得分为100,而C++的得分为99.7,Java为97.5分,C则有96.7分。然而,今年,程序语言领域出现了一些变化。Python仍以100分之姿位居榜首,但Java得分掉到96.3,排名却前进至第二。C以94.4的得分排第三名,而C++的得分与排名则双双滑落至87.5分与第四,而统计程序语言R以81.5的得分排名第五。JavaScript、C#、MATLAB、Swift和Google Go依次排名第六至第十。
2019年十大程序语言排行榜(来源:IEEE Spectrum)
值得注意的是,IEEE Spectrum的排名包括用于支持电子和电机工程之硬件和软件应用的所有程序语言。IEEE主要根据IEEE、Reddit、Stack Overflow、Twitter、Google、GitHub、CareerBuilder、Hacker News和GitHub等来源提供的11种测量指标,评选出今年度的排行榜。
IEEE并不是唯一对程序语言进行排名的组织。TIOBE也专门针对软件发布了程序语言的年度排名。在不考虑硬件的前下,TIOBE的2019年程序语言排行榜显示Java是最常用的语言,其后依序是C、Python、C++、C#、Visual Basic .NET、JavaScript、SQL、PHP和Objective-C。
TIOBE程序语言Top 10排名走势(来源:TIOBE)
在2010年,TIOBE Programming Index发布的十大程序语言排名分别是:Java、C、C++、PHP、(Visual) Basic、C#、Python、Objective-C、Perl和Ruby。而IEEE在2014年首度发表的排行榜中,也包括了C#、PHP和Ruby。
对于某些程序语言而言,例如Ruby和Ruby on Rails,执行速度和启动速度还不够快,因而无法全面支持各种商业产品。而其他有的语言,如PHP,由于安全性较差是导致Facebook等公司未能继续使用该语言的重要因素。
Python、Java、JavaScript和C则由于是通用语言而使其得以广泛使用。特别是针对Python而言,有许多专用的工具库可支持机器学习、深度学习(Theano)、人工智能(AI),以及针对微控制器(MCU)和小型计算机(如Adafruit、Arduino和Raspberry Pi)的自造者工具库。它还具有可轻松让Python程序代码与其他产品或库(如Google Tensor Flow和Microsoft Cognitive Toolkit)搭配使用的工具库。 Python有多种用途,而且是一种相当容易学习的程序语言,同时还提供当今大数据(Big Data)世界所需的安全性。
还有一些其他因素可能影响程序语言的普及。程序语言固有的安全性是其中的原因之一,另一项素是行动装置的普及。根据统计,在2018年,70%的美国人都拥有智能型手机,50%的人拥有平板计算机。在这些行动用户中,90%的连网时间都花在使用应用程序(App)而非因特网。
行动装置确实是推动程序语言普及的重要因素之一,因为某些语言更适合用于开发行动App,或者更适于搭配平板计算机和智能型手机等便携设备使用… ——这也让我们想到了另一个因素:硬件。
掌握我们日常生活各种功能的行动装置与穿戴式装正置日益普及,包括从睡眠和活动监测器到智慧手表和穿戴式装置等所有装置。随着穿戴式装置普及,以及基于桌面计算机的标准软件减少,可支持这种需求的程序语言普及性势必会再进一步地增加。
过去十年来发生了许多变化,随着我们朝着更加密切互连的未来前进,还将会看到更多的变化。目前,使用最广泛和最安全的程序语言将仍然是使用最广泛的语言,但有谁知道程序的未来将会如何发展?尤其是随着电子产品工程(例如忆阻器)的不断发展,未来的变化与发展无限!
(原文发表于ASPENCORE旗下EDN姐妹媒体EETimes,参考链接:10 Years of Programming Language Evolution,编译:Susan Hong)
责编:Demi Xia