1.2.2 Java在主流编程语言中的地位

目前,在软件工业中使用较多的编程语言多达数十种,Java在这些编程语言中处于什么地位呢?我们可以通过TIOBE指数[6]粗略地评价这些编程语言的流行和受欢迎程度,具体如表1-2所示。

表1-2 TIOBE指数排名前10的编程语言

注意:每种编程语言都有自己擅长的技术领域和业务场景。以多年来稳居TIOBE指数排名在前的Java、C和C++语言为例,Java适合开发分布式环境下的企业级应用以及Android智能移动终端应用,而不适合(或不支持)开发GUI桌面、嵌入式、系统或驱动级应用——而这些恰恰是C和C++语言所擅长的领域,反之亦然。

随着语言自身和软硬件平台的不断发展,以及技术热点、政策导向和市场环境等外部因素的不断变化,每种编程语言的流行程度也在不断变化。以Python语言为例,随着近年来数据科学、机器学习以及人工智能的兴起,它在2014年后排名跃升非常明显,甚至在2018年9月首次超过C++成为第3名,具体如图1-1所示。

图1-1 2001年至今Python的TIOBE指数变化情况

如前所述,没有任何一种编程语言能适用于所有的技术领域和业务场景,更不存在所谓的“最好的编程语言”,即使是对于长期占据TIOBE指数排名第1的Java也是如此。正如TIOBE指数官网中特别提到的——TIOBE指数并不说明某种编程语言到底有多好,也不反映采用该种语言编写的代码量有多少。


[1]由于基本类型(即非对象类型)的存在,严格来说,早期的Java并不具有“一切皆对象”的特性。从JDK 5开始,Java提供了基本类型的自动封箱和拆箱机制(详见第2章),从而保证了这一特性。

[2]相对于纯解释型语言(如JavaScript、Python等),Java有编译的过程,故有些资料也将Java划归为半编译、半解释型语言。

[3]另一方面,作为一类特殊的程序,Java虚拟机本身就是以C/C++编写的。

[4]如目前被广泛使用的Struts/SpringMVC、Hibernate/MyBatis、Spring/SpringBoot等Java开源框架。

[5]通常指JCP(Java Community Process,Java社区进程),其成员包含了全世界顶级的使用Java相关技术的公司和组织,如Oracle、IBM、Intel、Twitter、阿里巴巴、西安交通大学等。

[6]TIOBE指数全称为TIOBE编程语言流行度指数。该指数基于全世界有经验的工程师、开设的课程以及第三方软件厂商的数量,并通过Google、Bing、Wikipedia和Baidu等流行的搜索引擎计算得到,且每月更新一次。