Java at 30: Interview with James Gosling
Java 30周年:对话 James Gosling,探寻技术变革背后的天才
Darryl K. Taft 于 2025年5月15日 9:00am 发布
Featured image via Unsplash+.
下周(5月23日),Java编程语言将迎来它的30岁生日。如果没有它的主要创造者James Gosling,这个高级的、通用的、内存安全的、面向对象的编程语言,今天就不会继续为各种规模的系统提供动力,
多年来,我一直有幸采访和了解这个人,自从Java“一次编写,随处运行”的前提彻底改变了软件开发以来。
James Gosling从足智多谋的加拿大青少年到开拓性的世界级程序员的旅程,为我们提供了对过去几十年计算技术演变的宝贵见解。他在Java上的工作创造了一个平台,赋予了无数开发人员力量。在他的整个职业生涯中,Gosling在技术卓越和顽皮精神以及明确的道德界限之间取得了平衡,这种结合有助于塑造现代计算格局。
James Gosling:Java背后的天才
Gosling不仅仅是“Java之父”,他还是一个谦逊的天才,具有简化复杂概念的惊人能力。在最近的一次谈话中,Gosling分享了他迷人的技术之旅中的故事,并回顾了Java在他和他的团队将其变为现实30年后的发展历程。
James Gosling 和 DKT.
编程之路:足智多谋的开端
Gosling的编程之路揭示了他将成为的创新者。他在“几乎没有钱”的环境中长大,他将必需品变成了创造性的灵感。“玩具是潜入人们的垃圾桶,拿出旧电视机,”他解释说。他自己制造的第一台计算机实际上是用从电话公司丢弃的继电器机架中抢救出来的,这一成就展示了他早期的技术能力。
一个关键的时刻是,Gosling父亲的朋友带他参观了卡尔加里大学的计算机中心。“我完全被迷住了,”他回忆道。“屏幕和闪烁的灯光和磁带——各种各样的东西。”这种好奇心贯穿了他的职业生涯。
十几岁的Gosling很机灵,通过非传统的方式自学编程:从垃圾箱里翻找带有密码的穿孔卡片。当许多青少年在零售业工作时,Gosling在高中的时候就找到了一份在大学物理系的工作,创建处理卫星数据的软件。“他们实际上付钱让我玩,”他谈到这段形成性的经历时说。
他早期的编程经历涵盖了使用PL/1的IBM大型机和Fortran、PDP-8汇编语言和CDC 6400代码。他以典型的低调方式随意提到他“做了一份暑期工作,编写了一个COBOL编译器”,这是一项许多经验丰富的程序员都会觉得令人生畏的任务。
从学术界到工业界:寻找自己的道路
Gosling对学术界的务实观点在他的描述中闪耀。他对卡内基梅隆大学著名的计算机科学博士课程的描述是“从根本上讲,是一个以研究生作为廉价劳动力的研究所”,这抓住了他直率的评估。他总是很务实,在学习期间抽出时间在湾区的一家初创公司工作,然后再回到匹兹堡完成他的学位。
他在CMU之后的第一份工作是在IBM Research,多年后他对IBM的评估仍然很尖锐。他对该公司的描述是“致力于搬起石头砸自己的脚”,这以一种冷幽默的方式传递了深刻的见解。这些早期的经验影响了他在Sun Microsystems的方法,他在那里度过了他的大部分职业生涯。
Sun的日子:创新和恶作剧
问Gosling他在Sun最喜欢的时光,谈话不可避免地会转向传说中的愚人节恶作剧。他回忆说,这些恶作剧是“大量的工作”,但“大量的乐趣”——瞥见了培养创新和创造力的公司文化。
这些不是简单的恶作剧。Gosling回忆说,他把一辆法拉利放在池塘里的一个平台上(“概念上最壮观”),让它看起来像漂浮在那里。这辆车属于Sun的联合创始人Bill Joy,然而最初的计划是将Sun软件主管Eric Schmidt的法拉利放在池塘里,但该团队担心施密特(后来成为Google的首席执行官)可能会对恶作剧感到“古怪”——尽管施密特也被恶作剧了。
另一个是在Sun首席执行官Scott McNealy的办公室里建造一个精心设计的一个洞的高尔夫球场,包括草地、水障碍和沙坑。这些工程挑战需要与推动Sun技术创新的相同的创造性问题解决能力。
在Sun,Gosling发现了一种罕见的环境,在这里,技术卓越可以与顽皮的创造力一起蓬勃发展——这种氛围显然塑造了他整个职业生涯中对技术和解决问题的方法。
Java:创造改变一切的遗产
Java现在已经30岁了,是Gosling的标志性成就。当被问及创造出如此有影响力的事情感觉如何时,他分享了一个令人谦卑的观点:“时不时地,有些人会在街上拦住我说,‘哦,你是James Gosling吗?感谢你给了我一份职业。我已经编写Java代码20年了,这是一份很棒的职业。’这给了我一种惊人的满足感,”他说。
在回顾Java的演变时,Gosling提到了lambda表达式(在JDK 8中添加)等功能,他希望这些功能从一开始就存在。但是,他解释了他对语言设计的谨慎方法:“我从来不想添加任何不正确的东西。”泛型和lambda表达式等功能的挑战在于确定最佳的实现方法——“前90%很容易弄清楚,而后10%则非常困难,”他说。
关于Oracle自收购Sun以来对Java的管理,James提出了慎重的评估:“他们做得比预期的要好,但我也必须承认,我的期望很低。”他认为社区在Java的持续发展和创新中发挥了至关重要的作用。
“时不时地,有些人会在街上拦住我说,‘哦,你是James Gosling吗?感谢你给了我一份职业。我已经编写Java代码20年了,这是一份很棒的职业。’这给了我一种惊人的满足感。” ——Java之父 James Gosling
Gosling指出,Java已经非常适合云环境,他观察到“过去30年发生的大部分事情都是使Java对云真正,真正地稳定”。他强调了多核处理器处理,内存管理,尤其是垃圾回收方面的改进,他称之为最新版本中的“非常出色”。
Java之外:Sun之后的冒险
在Oracle于2010年收购Sun之后,Gosling休息了一段时间,然后短暂加入了Google。那段时间持续了“整整六个月”,之后他搬到了Liquid Robotics,在那里他致力于自主海洋机器人的控制系统。这个职位结合了技术挑战和独特的额外津贴:“你必须具备的技能之一是浮潜”,并且“部分工作是在夏威夷度过一周或一个月”。
在Liquid Robotics的工作涉及环境监测,项目研究北极和南极地区的海洋温度。但是,正如Gosling指出的那样,“研究这些的人都没有钱”,这给一家风险投资公司带来了挑战。随着投资者推动公司转向国防应用,Gosling对这个方向感到不舒服,最终离开了。
他的下一步行动是将他带到Amazon Web Services,在那里他从事Greengrass项目和其他开发工具工作,直到去年退休。在他的整个职业生涯中,Gosling不仅始终追求技术兴趣,而且也追求道德考量。
关于开源和行业趋势:看穿炒作
关于开源的演变,Gosling观察到“很多人已经弄清楚了如何让它为他们工作”,不同的模型出现在不同的环境中。在Sun,开源变成了“一部分关于协作,一部分关于开发者关系,一部分关于市场营销”,提供了一种自下而上的采用方法,这与传统的自上而下的企业销售形成对比。
当被问及“低代码,无代码”趋势时,Gosling表达了基于历史背景的怀疑:“人们已经说了几十年了低代码,无代码。这是COBOL的宣传口号。”他指出,这种方法通常在狭窄的领域中表现出色,但在其特定关注领域之外的复杂性中挣扎。
在AI和机器学习(ML)方面,Gosling主要对术语提出异议:“我对AI和ML的最大问题只是名称。”他认为“高级统计方法”将比邀请对人类推理产生误导性类比的术语更准确。在他看来,这些技术代表“极其复杂的锤子和螺丝刀”:人类使用的工具,而不是威胁就业的自主系统。
开发者工具和偏好:拥抱进步
Gosling主要使用NetBeans IDE进行开发,赞扬其开源,Apache许可的性质和敬业的社区。他对那些坚持使用过时工具的开发者表示沮丧:“最让我恼火的是那些疯狂地抓住80年代或70年代的人——那些仍然想使用Vi的人,那在70年代是高科技。”
虽然承认他偶尔会使用Vi“因为Vi无处不在”,但Gosling提倡使用现代开发环境进行大量的编码工作。
JVM愿景:从学术概念到全球标准
有趣的是,后来成为Java虚拟机(JVM)的概念起源于Gosling的研究生学习期间。他探索了围绕“架构中立分发格式”的想法,并尝试了不同机器架构之间的交叉指令翻译。
这种早期的探索为JVM的开发提供了信息,JVM此后已成为一项基础技术,不仅使Java,而且使许多其他语言能够在不同的硬件平台上运行。最初被认为缺乏足够的数学基础来完成博士论文的一次编写,随处运行的愿景,最终改变了全球的软件开发实践。
最近的工作:弥合AWS的IoT差距
在去年从AWS退休之前,Gosling致力于Greengrass,这是一个用于构建物联网(IoT)应用程序的AWS框架。这是Gosling技术方法的一个完美例子:以优雅的简单性解决复杂的,普遍的问题。
“从‘我有可以工作的玩具’到可以实际大规模部署的东西之间的距离有很多本质上是样板代码的东西,”Gosling用他特有的能力解释说,让复杂的想法突然变得容易理解。Greengrass处理了所有这些繁琐的元素——无线更新、远程命令和控制、遥测、网络可靠性、安全性、凭据管理——让开发人员可以专注于使其特定应用程序独一无二的东西。
Greengrass的设备端部分是开源的,反映了Gosling长期以来对社区贡献的赞赏。这种方法产生了好处,用户创建了到Amazon没有优先考虑的平台(如RISC-V)的端口——这显然让他感到满意。
在Greengrass之后,Gosling加入了另一个与软件开发工具相关的AWS项目,但它“陷入了AI末日之中”。
对人工智能的怀疑
与此同时,在最近一次接受The New Stack的采访中,Gosling对席卷科技行业的AI革命持更加怀疑的观点。“这主要是一个骗局,”他直言不讳地说道,并将AI描述为“一个带有自己的一桶有毒废物的营销术语”。虽然承认这些系统背后令人印象深刻的数学,但Gosling表示担心AI标签掩盖了它们作为高级统计技术的真实本质。
“科技行业中的骗子和炒作者的数量令人心智腐烂。” ——Java之父 James Gosling
他特别批评了推动AI炒作的风险投资家,他说“科技行业中的骗子和炒作者的数量令人心智腐烂”,而且风险投资家“只关心成功的退出”,而不是构建真正有用的技术。他预测“绝大多数AI投资都将被吸入黑洞”。
是一种氛围吗?AI编码工具:令人印象深刻的演示,有限的实用性
当涉及到生成式AI编码助手时,Gosling承认了它们的最初印象深刻,但强调了重大的局限性。“你开始一个氛围编码会话,它实际上可以非常酷,”他说,但警告说“一旦你的项目变得稍微复杂一点,它们几乎总是会炸掉它们的大脑。”
根据Gosling的说法,根本问题在于这些工具通过抓取现有的代码示例来工作,并且只能复制他们以前看到的内容。这与专业的软件开发产生了根本性的不匹配,因为“有趣的东西永远不会重复”,因为好的解决方案被打包到每个人都使用的库中。
“你开始一个氛围编码会话,它实际上可以非常酷,但一旦你的项目变得稍微复杂一点,它们几乎总是会炸掉它们的大脑。” ——Java之父 James Gosling
Gosling认为,AI最有价值的编码应用不是取代程序员,而是“成为没有人愿意编写的文档”——本质上是充当智能搜索引擎,它了解代码的工作原理,并且可以解释如何使用特定的API或功能。
Java的演变:语言特性和运行时改进
当被问及最近的Java发展时,Gosling承认了一些有价值的语言增强:“一堆通过类型推断实现的东西真的很好。你知道,数组声明的演变方式非常好。我认为可以进一步推动。”
但是,他强调说,Java最近最令人印象深刻的进步是在其运行时环境和库中。“现在来自JVM的代码质量非常好。现代版本的JVM中的垃圾回收器非常出色。线程的性能非常可爱,”他解释说。
他特别赞扬了内存管理和性能可预测性的改进:“Java存储管理比malloc,比C存储管理效率高了很长时间,但现在它只是令人惊叹。”一旦需要“10或20秒”的垃圾回收暂停,现在可以通过仔细调整将其减少到几毫秒,并且“如果你不小心,它仍然远低于一秒”。JVM现在还可以以令人印象深刻的效率处理“任意,荒谬的大内存空间”。
关键基础设施的编程语言
当被问及应该使用什么编程语言来重建FAA的空中交通管制系统时,Gosling拒绝了问题的前提。“这就像设计一所房子,但首先要买什么牌子的锤子,”他说。
相反,他主张首先了解问题领域——包括通信系统、国际法规、飞机跟踪、防撞和飞行路径规划——然后再为不同的组件选择合适的技术。“根据你试图完成的事情的属性来做出决定,”他建议道,尽管他确实指出Java对于可靠性至关重要的大规模系统来说会表现出色。
AI世界的编程未来
尽管AI取得了进步,但Gosling坚信编程仍然是一项必不可少的技能。“如果我今天有一个年幼的孩子,我绝对会教他们编程,”他说,并解释说“即使AI接管了,人们也必须了解他们的系统是如何工作的。”
他驳斥了科技高管(如Mark Zuckerberg和Marc Benioff)声称AI将减少对工程师的需求是“完全自私的胡说八道”,认为这些声明是定位策略和巧妙地伪装的威胁,目的是从员工那里榨取更多的工作。
“如果我今天有一个年幼的孩子,我绝对会教他们编程。即使AI接管了,人们也必须了解他们的系统是如何工作的。” ——Java之父 James Gosling
Java长寿的秘诀
当被问及为什么Java已经持续了三十年,而其他语言已经消失时,Gosling提到了几个因素:解决实际问题、尊重用户、保持向后兼容性、提高开发人员的生产力并优先考虑可靠性。
“它从来都不是关于时尚的,”他解释说。“它始终是关于有效地完成工作,帮助工程师完成他们的工作。”这种对实用性而不是趋势的关注为Java提供了良好的服务,特别是在企业环境中,软件“每次都必须他妈的工作”。
Oracle的管理:比预期的要好
此外,Gosling对Oracle自收购Sun Microsystems以来对Java的管理给予了“B+”。“我真的很害怕他们会做什么,因为他们的往绩是强奸和掠夺,”他承认,“我只是对他们做得如此出色感到惊讶。”
虽然他希望Java团队能够获得更多的财政支持,但Gosling赞扬Oracle将该团队与企业干预隔离开来——“Oracle没有他妈的搞乱他们”——这超出了他最初的失败预期。
“我真的很害怕他们会做什么,因为他们的往绩是强奸和掠夺。我只是对他们做得如此出色感到惊讶。” ——Java之父 James Gosling
热爱螃蟹的人团结起来!
Gosling曾经告诉我,他喜欢和那些他会喜欢一起吃饭的人一起工作(事实上,他说他曾经这样选择一份工作)。我过去常常确保我参观Thanh Long,这是一家专门经营烤珍宝蟹的餐厅,每当我到旧金山旅行时。我通常在离开城镇之前,就在去机场之前参观。
一天晚上,我坐在酒吧里,品尝着美味的螃蟹(我来自马里兰州!),我的随身行李就在我旁边,James Gosling从餐厅的后面走了出来。我向他打招呼,然后转过身问一位店主家庭成员是否知道那是谁。我兴奋地说:“那是创造了世界上最流行的计算机编程语言的人!”那个人只是耸了耸肩说:“我猜他喜欢螃蟹。”这种情绪表达了“你不知道有多少科技重量级人物会来这里?!”
后来,Gosling和我一起在Thanh Long共进晚餐,这也是我们在最近的谈话中说的最后一件事:下次你来的时候,让我们在那个地方见面。所以,下次我在旧金山的时候,我会和“Java之父”一起吃面包和掰螃蟹。即使现在每只螃蟹的价格高达80美元,我们也会谈笑风生,度过美好的时光。