Java 30 年:一门为失败的小工具设计的语言如何成为全球强势语言

Java 从来都不是最性感的语言,但几十年来,它一直是现代技术的中流砥柱,在未来的岁月里,它还将与我们同在。

有些编程语言,如 Rust、Go 或 TypeScript,很酷。而包括 Cobol 和 Java 在内的其他编程语言则被视为枯燥乏味。然而,尽管在 5 月 23 日年满 30 岁的 Java 可能不是最令人兴奋的语言,但它仍然是当今最重要的语言之一。

Java 于 1995 年 5 月 23 日由 Sun Microsystems 首次发布,从一个消费电子产品的小众项目发展成为企业、云计算和网络开发领域的全球巨头,这是一个关于远见卓识和适应性的故事。

虽然 Java 刚刚年满 30 周岁,但它的历史却更为悠久。Java 的起源可以追溯到 1991 年,当时 Sun 的工程师 James Gosling、Mike Sheridan 和 Patrick Naughton 正着手为交互式电视和嵌入式设备创建一种语言。这就是所谓的 “绿色项目”。其目标与其说是创建一种新语言,不如说是构建一种我们称之为物联网控制器的东西。另一位早期的 Java 开发者蒂姆-林德霍尔姆(Tim Lindholm)将其描述为 “一种大型 PDA 和超级遥控器之间的交叉”。元素周期表

这款名为 Star7 的设备是基于 SPARC 处理器的手持无线个人数字助理,配有 5 英寸彩色液晶显示屏。可惜的是,由于它在当时过于先进和昂贵,这个小玩意儿没能找到市场。

而语言则是另一番景象。这个版本的 Java 最初被称为 “Oak”,使用 C++ 风格的语法,但正如高斯林在谈到 Oak/Java 时所说,它是 “没有刀枪的 C++”。为什么不直接使用 C++ 呢?正如林德霍姆所说,他们的目标是制作可以安全地 “在互联网上移动 ”的应用程序,而这种语言并不容易实现,至少很难让它们在不同的架构上运行。此外,我们还认为 C++ 的编程难度很大,我们希望接触到的技术水平较低的程序员在使用它时会遇到困难。

Gosling 对 Java 的设想包括自动内存管理(垃圾回收),这可以减少 C++ 手动内存管理中常见的错误和安全漏洞。他还提出,Java 虚拟机(JVM)支持 Java 的 “一次编写,随处运行 ”理念,这使得 Java 具有高度的可移植性和平台独立性,而 C++ 代码则必须为每个平台单独编译。

所有这些优点都很好,但一种为失败的消费电子项目而设计的语言还能有什么用呢?幸运的是,就在 1993 年万维网出现在公众面前时,高斯林和他的团队完成了 Java 的开发。事实证明,Java 在正确的时间提供了正确的语言。

这种语言的决定性特征–平台独立性–改变了游戏规则。与其他需要为不同操作系统重写代码的语言不同,Java 程序被编译成字节码,可在任何装有 JVM 的设备上运行。这种 “一次编写,随处运行 ”的理念使 Java 迅速成为网络小程序的首选语言,后来又成为企业应用程序的首选语言。

为了突出 Java 的实用性,1995 年,Gosling 推出了一款名为 WebRunner 的浏览器。这个网络浏览器原型从未在商业上取得成功,但它展示了网络浏览器如何呈现混合了 Java Applet 的 HTML 内容。

从此,事情发生了翻天覆地的变化。首先,WebRunner 变成了 HotJava,然后 Java 的主页 java.sun.com 正式向公众开放。由于商标问题,Sun 无法使用 Oak 这个名字。经过漫漫长夜和反复争论,团队决定用他们的首选饮品–咖啡–作为语言名称的灵感来源。

Java 发展迅速。1997 年,Java 开发包 1.1 发布,这是 Java 第一次重大变革。该版本引入了 JavaBeans,使开发人员可以更轻松地进行面向对象编程。它还增加了 Java 数据库连接(JDBC)。这个标准的 Java 应用程序编程接口 (API) 使 Java 程序能够与数据库协同工作。

1998 年,Java 经历了一次变革,增加了 Swing 库,改进了 Java 的图形用户界面 (GUI) 功能、Java 插件和 Java 集合框架。最明显的变化可能是 Java 分成了三个版本: J2SE(标准版)用于通用桌面应用程序;J2EE(企业版)用于服务器端应用程序;J2ME(微型版)用于移动设备和嵌入式系统。如今,这三个版本都还健在。

尽管在未来几年中,Java 语言仍会有许多改进,但最重要的变化可能是 2006 年 Sun 将 Java 开源。Java 的参考实现是 Open Java Development Kit (OpenJDK),它根据 GNU 通用公共许可证 (GPL) 第 2 版免费开源,并带有 Classpath Exception。

这一例外允许您将 Java 系统库与您的代码进行链接,而无需考虑代码的许可证,并可根据您选择的条款发布生成的可执行文件。在某些情况下,这种例外会让 Java 的使用变得有点棘手。谷歌就曾因在 Android 中使用 Java 而与 Java 目前的所有者甲骨文公司(Oracle)大打出手。

Java 对开源软件的重要性也常常被忽视。软件构成分析(SCA)工具公司Sonatype的创始人布莱恩-福克斯(Brian Fox)告诉《The New Stack》,Java ARchive(JAR)文件使代码模块变得易于使用,而Apache Maven的出现则使Java依赖关系管理成为可能。

这些概念使得从代码开始构建开源项目变得更加容易。福克斯说:”我清楚地记得,在那个阶段之前,我第一次真正能够构建一个开源项目。你可以看着代码说,’我想这样改’,但你可能要花上一周的时间才能弄明白如何构建某个东西。在 Linus Torvalds 创建 Git 之前,可以说 JAR 和 Maven 代码包方法是构建开源程序的最大改进。

甲骨文收购 Sun 后,公司关闭了许多 Sun 项目,但继续支持 Java。通过 Java Community Process (JCP),Java 社区仍有发言权,但甲骨文说了算。

在接下来的三十年中,Java 随着技术环境的变化而不断发展。Java 从早期的动态网页内容,发展到现在主导企业软件、移动应用,以及最近的云原生开发和大数据解决方案。Java 语言强大的生态系统,包括 Spring Boot、Jakarta EE 和 Hibernate 等框架,使其成为追求可靠性、可扩展性和安全性的企业不可或缺的工具。

与 Cobol 和 Fortran 等其他仍在使用但几乎总是在遗留项目中使用的旧语言不同,Java 在保持向后兼容性的同时不断发展,以满足新的需求。

尽管 Kotlin 和 Scala 等更新的语言正在崛起,Java 仍然是全球使用最广泛的编程语言之一。根据 ZDNET 编程语言流行指数,Java 与 Python 和 JavaScript 并列为三大最流行语言。不需要天才也能知道其中的原因。Java 的通用性、对云原生架构的支持以及处理人工智能和大数据需求的能力,确保了该语言将继续塑造软件开发的未来。

Java 还会成为性感、热门的语言吗?也许不会。它的速度有点慢,内存管理可能很麻烦,而且其冗长的语法和复杂的语法让一些程序员苦恼不已。尽管如此,Java 仍然是一门重要的语言,而且在未来几十年内都将如此。

你也许感兴趣的:

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注