编程语言排名一直以来都是备受争议的话题,当我们彼此之间讨论的时间不同,角度不同,结果往往就会不同。因此,我们看到很多机构或者组织每年都会发布很多编程语言排行榜,这些排行榜的算法、角度都不尽相同。
TOIBE 编程语言排行榜就是编程语言流行趋势的一个重要指标,它基于互联网有经验的开发者、课程、第三方厂商数量等数据,每个月更新排名情况。
今年是 TOIBE 编程语言排行榜发布的 20 周年, TOIBE 榜单第一次发布时,排名前三的编程分别是 Java、C 和 C++,而在今年 7 月的最新榜单中,排名前三的编程语言分别是 C、Java 和 Python。
TIOBE 编程语言排行榜虽然是比较权威和流行的榜单,但是它的排名结果主要体现了国外开发者的喜好。而目前国内整体 IT 技术发展与国外有很大不同,因此,我们需要一个真实客观反映各种编程语言在国内排名的榜单。
因此,InfoQ 特别推出【InfoQ 编程语言排行榜】,征集国内开发者、程序员对编程语言的喜爱情况。在榜单问题设置方面,我们邀请国内的技术专家与编辑同学共同拟定了八个有代表性的问题,同时精心挑选了当前最流行、最受欢迎的编程语言,诚邀您来投上宝贵一票。
近年来,Julia 编程语言掀起了一股新的热潮。
今年 7 月 9 日,由 Julia 高性能编程语言初创团队建立的 Julia Computing 公司,宣布完成由 Dorilton Ventures 领投的 2400 万美元 A 轮融资(折合人民币约 1.6 亿)。
目前 Julia 编程语言在全球用户中拥有 2900 多万次下载量,具有 3.4 万颗星,已经有数千位开源开发者为 Julia 及其 6000 多个注册软件包贡献力量。全球超过 1500 所高校已经在使用 Julia 并教授相关知识,包括麻省理工、斯坦福大学、加州大学伯克利分校等世界一流学府。目前全球已经有超过 1 万家公司使用 Julia 语言,其中包括阿斯利康、贝莱德、谷歌、英特尔、微软、Moderna、辉瑞、NASA、联邦航空管理局以及纽约联邦储备银行等重量级用户。
自 2012 年正式亮相以来,Julia 社区规模呈指数级增长。Julia 帮助科学家及工程师们解决各类大规模数据科学问题,消除了只能使用高级语言(例如 Python、Matlab 或 R 语言)进行测试与建模环节、并使用其他高性能低级语言(例如 C 或 C++)进行生产与扩展的割裂问题。
Julia 语言的缔造者们,希望它能同时满足计算机科学领域的专家,以及在实际应用方面使用过 R、Matlab、SAS 和 Python 等语言工具的开发者。因此在技术实现上包含了两个核心方面:
一是研究动态语言的哪些特征使其难以有效地进行编译,这些特征可能包括任意的非局部效应。开发者进行的一些操作可能产生了持久的正面影响,但是没有实现有效的表达。如果你对此加以限制,并且对语言的设计方式有更加巧妙的构思,就可以获得类似动态和高效的语言,但同时也可能导致传统动态语言出现性能问题。
二是“动态多分派(dynamic multiple dispatch)”,它是 Julia 语言的核心范式,允许针对特定类型的参数进行动态最优算法选择。很多年前人们就开始研究动态多分派,但是从来没有一个系统能够从头到尾真正对其进行优化。所以在 Julia 出现之前,这种编程范例的优点从未在系统中真正实现过。
与其它编程语言相比,Julia 性能优异
在经历了默默无闻的十余年耕耘积累之后,开源 Julia 终于走上了大型企业代码现代化舞台的中心。
根据 State of the Developer Ecosystem 2021 调研结果显示,过去五年,JavaScript 是最平民化的编程语言,几乎人人都可以随手写几个JavaScript语句。通过对 32000 名开发者的调研,该报告还披露了当前有 69%的人正在使用 JavaScript,39%的人将 JavaScript 作为自己主要的编程语言。
那么全球到底有多少 JavaScript 开发者呢?SlashData 预计全球开发者大约为 2430 万,而 JavaScript 在全球约有 1240 万开发者,当然其中包括 TypeScript 和 CoffeeScript 开发者,因为它们都是基于相同的 ECMAScript 标准。
开发者众多也在一定程度上决定了 JavaScript 会被世界上绝大多数的网站所使用,同时主流浏览器 Chrome、IE、Firefox、Safari、Opera 等也都支持 JavaScript。
为什么 JavaScript 会成为最平民化、流行的编程语言呢?有开发者表示,一方面是因为硬件性能的不断提升,JavaScript 引擎性能得到显著缓解,让开发者有了很大的腾挪空间;另一方面则是因为 JavaScript 学起来容易,写起来简单,不涉及太多底层细节。
目前不仅是前端开发者在使用 JavaScript,后端开发者也开始使用 JavaScript。更重要的是,当软件开发行业的规模扩张,企业会更专注于业务,不再更多地关注底层基础设施,因此需要越来越简单易用的工具,JavaScript 自然成为最合适的选择。
Go 语言是 Google 为解决内部问题而研发的语言,当时 Google 面临的问题是 C++代码量庞大、编译速度慢,程序维护难度大,更新成本高等等。因此,Go 语言的设计目标就是消除各种缓慢和笨重、改进低效和扩展性。
Go 语言也被人称为互联网时代的 C 语言。在 Go 语言设计者看来,最值得学习的编程语言是 C 语言,而 C 语言能盛行多年的原因是足够简单,在这一点上,Go 语言也足够简单。
自 Go 语言发布之后,很多公司尤其是云计算公司都开始使用 Go 语言来重构基础架构,甚至很多项目都直接采用 Go 语言来开发。
使用 Go 语言的公司包括 Facebook、Google、Apple、亚马逊云科技、腾讯、百度、京东、小米、360、美团、滴滴等,而使用 Go 语言开发的项目更是不胜枚举,例如我们所熟知的 Kubernetes、Docker、etcd 等。
在 InfoQ 此前发布的编程语言排行榜调查中,Go 语言以 19.3%的得票率成为了开发者最想学习的编程语言。那么,在这次调查中,Go 语言是否真的会成为后起之秀,让我们拭目以待。
我们为什么要关注编程语言的排行情况呢?其实并不是为了区分出编程语言的优劣好坏,不同的编程语言在不同场景下都有各自的优势。之所以关注排名,是因为排名其实在一定程度上反映出了该语言在市场上的表现,对于开发者的职业发展会有所帮助。
目前很多榜单反映的是全球开发者的编程语言应用情况,很多结论与国内开发环境、发展情况都有差距。因此,我们希望汇聚在 InfoQ 平台上的百万开发者能够通过我们设置的榜单,评选出真正符合国内开发现状的编程语言榜单。