2022年5月23日,距Java编程语言和平台的第一个公开alpha版本发布已经27周年了。岁月更迭,27岁的Java至今仍然活跃在各大主流的系统和框架中,历久弥新。 1991年,JamesGosling带领团队开始了一个叫“Oak"的项目,这就是Java的前身。Java刚开始出现的时候主要面向InteractiveTelevision领域,Sun(后来在2010年被Oracle收购)一度想用Java来打造桌面的网络操作系统,取代当时如日中天的Windows。后来,Java虽未在桌面领域取得多大建树,却出乎意料地在企业级应用领域开花结果,占据了几乎统治的地位。 1、Java的27岁生日:越老越醇,还是岁月无情? 从编程语言的角度来看,27年已经是段漫长的岁月。下面,我们将立足Java编程语言、生态系统、社区以及未来前景几个方面,聊聊这27年的发展变革——Java,究竟是越老越醇,还是岁月无情? 1995年,SunMicrosystems发布了Java的首个正式版本。JamesGosling用C/C++样式的语法设计出Java语言,希望让当时的程序员们能够轻松上手这种全新的编程选项。Java语言的核心目标,在于无需变更代码即可在各种系统上运行——也就是所谓WORA原则。WORA是“WriteOnceRunAnywhere”的缩写,代表一次编写、随处运行。凭借着强大的吸引力,各类主流平台很快开始推出面向Java语言的Runtime。 有些批评人士觉得Java这种27岁的语言已经老朽不堪,无法适应当下市场对于编程语言的要求。但如果我们认真观察,就会发现Java仍然是目前最受欢迎的编程语言之一。另外,Java与Python等高人气语言也同样不比Java年轻到哪里去——Java同样诞生于1995年,Python的最初版本甚至早在1990年就已经出现了。 2、Java生态系统 Java绝不仅仅是一种语言。多年以来,JVM(Java虚拟机)及其生态系统也得到长足发展。如今,Scala、Groovy以及最近几年刚刚亮相的Kotlin都运行在JVM之上。更重要的是,当我们站在2020年这个节点审视JVM报告,就会发现Java本身仍然是JVM上最受欢迎的编程语言。 目前,Java的最新版本是Java14,发布于2020年3月17日。新版本引入了经过增强的switch表达式、文本块、非常实用的NullPointerException以及Records等全新功能。由此看来,Java一直在不断演进,说它会很快消亡根本就是无稽之谈。实际上,Java当下的发展速度远超以往任何时候。有时候发展速度过快,甚至连Java开发者群体都感觉有点跟不上节奏。JVM2020报告显示,相当一部分用户更倾向于不升级到最新版本。而无论是否跟得上发展节奏,Java的活跃度都是毋庸置疑的。 Java生态系统所涵盖的,也不仅仅是JVM以及运行在其上的语言。随着Maven(2002年)以及Gradle(2007年)等软件包管理器的引入,在Java语言当中使用第三方库与框架变得更加轻松。ApacheCommons、EclipseCollections等知名库方案的参与,也极大丰富了Java生态阵营。像Quarkus与Spring(Boot)这样的框架确实显著降低了应用程序的开发门槛。目前,Spring已经成为Java生态系统中的核心框架之一,同时也成为承载众多应用程序的重要资产。 3、不断进取 Java及其生态系统仍在迅速发展。语言本身以及各类第三方库/框架一直在不断吸纳新的功能与修复成果。凭借背后庞大的语言技术社区、多种多样的JDK(Java开发工具套件)发行版以及精心维护下的开源库,Java生态系统正在大步向前迈进。对开发人员来说,目前最大的挑战反而是如何跟上生态的发展步伐。我们看到,很大一部分用户目前仍在使用相当陈旧的Java版本——截至2022年初,仍有64%的开发者在生产环境中使用Java8,甚至是其他早已过时的库及框架版本。 首先,陈旧的依赖项会把已知漏洞引入用户的应用环境,进而损害用户的系统。另外,用户拖得越久,升级到最新版本的难度也就越大。如果顽固不化、长期拒绝更新,那么欠下的技术债务也将随时间推移而愈发沉重。 4、结束语 最后,Java仍是一种活跃的语言,其背后的生态系统,特别是庞大的技术社区正在塑造更多可能性。尽管不乏反对之声,但可以肯定的是Java一直在迅速发展,也建议大家能够尽快对您使用的Java发行版与库进行更新。 简而言之,27岁的Java充满生机与活力。尽管Java中出现了不少问题与变化,也有不少人一直对Java语言颇有微词,但无论如何,Java生态系统仍然充满活力,而且语言本身也如同陈年佳酿一般散发出成熟的魅力。
|