
1995 年 5 月 23 日,三十年前的加州旧金山 Sun World 大会上,Sun Microsystems 正式发布了 Java 编程语言。
Sun 将 Java 定义为一种:
简单、面向对象、分布式、解释型、健壮、安全、架构中立、可移植、高性能、多线程的动态语言。
Java 之父 James Gosling 则给出了更简洁的定义:
Java 就是除去了枪支、匕首和棍棒的 C++。
Java 最初的命名为 Oak(据称源于 Gosling 办公室窗外的橡树),其诞生可追溯至 1990 年 12 月 Sun 公司的 Green 项目。Gosling 与 Patrick Naughton、Mike Sheridan 希望创建一门面向消费级应用的编程语言,且具备架构无关性和面向对象的特性。1992 年 9 月,他们推出了名为 Star7 个人数字助理,该设备集成了电视遥控、电子节目指南等功能,可通过 5 英寸的屏幕图形界面操作。
官方吉祥物 Duke 也作为“智能代理的化身”首次亮相于 Star7 的界面。这个由 Sun 员工 Joe Palrang 设计的形象被描述为“随时提供帮助的友好伙伴”。
从 Applet 到泛型、Lambda 表达式、var
类型推断,再到记录类(records)和密封类(sealed)以及虚拟线程;从 Java EE 到 Jakarta EE;从平均三年的发布周期缩短至每半年一次——Java 在这三十年间也有低谷,比如包括被诟病“运行缓慢”甚至被开发者认为“已消亡”,但仍是有了重大的演进。
Oracle 的最新举措源自其 Java 语言架构师 Brian Goetz 在 2022 年 9 月发表的博客《铺设入门之路》。经过四轮预览,JEP 512(紧凑源文件与实例 main 方法)最终定案,该特性旨在“优化 Java 语言设计,让学生编写首个程序时无需理解面向大型程序的语言特性”。Oracle 技术顾问 Gavin Bierman 的规范文档对此有详细说明。
Oracle 通过 Java 三十岁生日的庆祝活动来纪念这一里程碑。六小时的庆典由开发者倡导官 Ana-Maria Mihalceanu、Billy Korando、Nicolai Parlog 与产品管理高级总监 Sharat Chander 共同主持,邀请多位嘉宾就广泛议题展开讨论。
Oracle 的技术领袖们分别进行了专题讨论:Java 平台组首席架构师 Mark Reinhold 探讨了 Java 的管理工作;Brian Goetz 讲解了“降低入门门槛”计划和 Lambda 表达式;Gavin Bierman 带来了 Java 语言更新报告;Java 平台组软件开发高级副总裁 Georges Saab 讨论了语言发展;技术顾问 Stuart Marks(人称“Dr. 废弃特性”)则专门讲解了 Java 集合框架。
社区倡导者和活跃人士也分别发表了见解:被称为“巴西 Java 先生”的 Bruno Souza 讨论了 Java 社区对开发者的影响;Spotify 高级后端工程师 Mohammed Aboullaite 分享了在中东和非洲的社区推广工作;Endava 首席开发顾问 Laurentiu Spilca 则介绍了通过非英语内容吸引初学者的计划。
JetBrains 的开发者倡导官 Mala Gupta 和 Marit van Dijk 提供了许多 IntelliJ IDEA 的使用技巧,比如如何使用 IntelliJ IDEA 的编程助手 Junie。
Oracle 教育的 Java 负责人 Heather Stephens 采访了伊利诺伊州 Riverside Brookfield 高中的数学与计算机科学教师 Sandy Czajka,探讨高中阶段的 Java 教学。随后,Stephens 又采访了分别来自斯坦福大学、华盛顿大学和加州大学伯克利分校的三名学生,听取他们对 Java 的看法。
Agile Developer 公司总裁 Venkat Subramanian 带来了“Java 中隐藏的创新”主题演讲,内容涉及五大方法调用操作码之一的 invokedynamic
、流式编程中的惰性求值,以及与 heredoc 相关的智能缩进等主题。
Korando 采访了 Java 之父 Gosling,后者分享了他对 Java 创建历程的回顾以及对当前发展状况的见解。
Java 能否再续三十年辉煌?如今的年轻 Java 开发者或许将见证这一预言是否成真。但凭借充满活力的 Java 社区及人们对这门语言的热爱,我们很可能会在 2055 年迎来 Java 的六十周年大庆。
评论