Java 30 周年:改变技术的代码背后的天才

从捣蛋少年到技术先驱,James Gosling 的务实天才塑造了 Java 和现代计算的三十年。

图片来自 Unsplash+

Java 编程语言下周(5 月 23 日)将迎来 30 岁生日。如果没有它的主要创建者 James Gosling,这种今天继续为各种规模的系统提供支持高级、通用、 内存安全、 面向对象的编程语言就不会出现。

多年来,我有幸采访并了解了这个人,因为Java的前提是让程序员一次编写,随时随地运行,这彻底改变了软件开发。

James Gosling 从足智多谋的加拿大少年到世界级程序员的开拓者,为过去几十年计算的演变提供了宝贵的见解。他在 Java 方面的工作创建了一个平台,为无数开发人员提供了支持。在他的整个职业生涯中,Gosling 一直在卓越的技术、俏皮的精神和明确的道德界限之间取得平衡,这种结合帮助塑造了现代计算格局。

James Gosling:Java 背后的杰出人才

Gosling 不仅仅是“Java 之父”,他还是一位谦逊的天才,拥有简化化复杂概念的不可思议的能力。在最近的一次谈话中,Gosling 分享了他迷人的技术之旅中的故事,并回顾了他和他的团队将 Java 延续为现实 30 年后的演变。

James Gosling and DKT

编程之路:足智多谋的开端

Gosling 的编程之路揭示了他成为创新者的许多方面。在“几乎没有钱”的环境中长大,他将生活必需品转化为创作灵感。“玩具掉进人们的垃圾桶,拿出旧电视机,”他解释说。他自己制造的第一台计算机实际上是由从电话公司丢弃的中继机架制成的——这一成就展示了他早期的技术才能。

当 Gosling 父亲的朋友带他参观卡尔加里大学的计算机中心时,一个关键时刻到来了。“我只是被迷住了,”他回忆道。“屏幕、闪烁的灯光和胶带——各种各样的东西。”这种好奇心一直是他整个职业生涯的一个决定性特征。

十几岁的 Gosling 足智多谋,通过非常规的方式自学编程:翻垃圾桶寻找带有密码的穿孔卡片。虽然许多青少年都在从事零售工作,但 Gosling 在高中时就在大学物理系找到了一份工作,开发了处理卫星数据的软件。他们实际上付钱给我,让我玩得开心,”他谈到这段形成性的经历时说。

他的早期编程经验涵盖使用 PL/1 和 Fortran、PDP-8 汇编和 CDC 6400 代码的 IBM 大型机。他以典型的低调方式随意地提到他“在暑期做了一份写 COBOL 编译器的工作”——许多经验丰富的程序员会觉得这项任务令人生畏。

从学术界到工业界:找到自己的出路

Gosling 对学术界的严肃观点在他的描述中闪耀着光芒。他将卡内基梅隆大学著名的计算机科学博士课程描述为“基本上是一个以研究生为廉价劳动力的研究机构”,这体现了他直截了当的评估。他总是务实的,在学习期间抽出时间在湾区的一家初创公司工作,然后返回匹兹堡完成学位。

他离开 CMU 后的第一份工作是在 IBM 研究院,多年后他对 IBM 的评估仍然很有针对性。他将公司描述为“致力于搬起石头砸自己的脚”,以冷幽默的方式提供了洞察力。这些早期经历影响了他在 Sun Microsystems 的方法,他在 Sun Microsystems 的大部分职业生涯中都在那里蓬勃发展。

在 Sun 公司的日子:创新与恶作剧

问 Gosling 他在 Sun 最喜欢的时光,谈话不可避免地转向了传说中的愚人节恶作剧。他回忆说,这些工作是“大量的工作”,但“非常有趣”——对培养创新和创造力的公司文化的一瞥。

这些不是简单的实用笑话。Gosling 回忆说,他把法拉利放在池塘里的平台上(“概念上是最壮观的”),让它看起来像是漂浮在那里。这辆车属于 Sun 联合创始人 Bill Joy,但最初的计划是将 Sun 软件主管 Eric Schmidt 的法拉利放入池塘中,但该团队担心 Schmidt(后来成为谷歌首席执行官)可能会对这个恶作剧感到“奇怪”——尽管 Schmidt 也被恶作剧。

另一个项目是在 Sun 首席执行官 Scott McNealy 的办公室建造一个精心设计的单洞高尔夫球场,里面有草地、水障碍和沙坑。这些工程挑战需要与推动技术创新相同的创造性解决方案。

在 Sun,Gosling 发现了一个难得的环境,在这里,卓越的技术可以与有趣的创造力一起蓬勃发展——这种氛围显然塑造了他在整个职业生涯中处理技术和解决问题的方法。

Java:创造改变一切的遗产

Java 现在已经 30 岁了,是 Gosling 的标志性成就。当被问及创作出如此有影响力的作品是什么感觉时,他分享了一个谦卑的观点:“时不时地,有些人会在街上拦住我说,'哦,你是 James Gosling 吗?谢谢你给了我一份事业。我编写 Java 代码已有 20 年了,这是一份很棒的职业。这给了我一种惊人的满足感,“他说。

在回顾 Java 的演变时,Gosling 提到了 lambdas(在 JDK 8 中添加)等功能,这些元素是他希望从一开始就存在的元素。然而,他解释了他对语言设计的谨慎方法:“我从来不想加入不对的东西。泛型和 lambda 等功能面临的挑战是确定最佳实施方法 — “前 90% 很容易弄清楚,而后 10% 则非常困难,”他说。

关于自收购 Sun 以来 Oracle 对 Java 的管理,James 提供了经过衡量的评估:“他们做得比预期的要好,但我也不得不承认,我的期望值相当低。他认为社区在 Java 的持续发展和创新中发挥了至关重要的作用。

Gosling 指出,Java 已经非常适合云环境,他观察到“过去 30 年中发生的大部分事情都使 Java 真正、真正地适用于云。他强调了多核处理器处理、内存管理,尤其是垃圾回收方面的改进,他将其描述为最新版本中的“非凡”。

超越 Java:Sun 之后的冒险

在 2010 年 Oracle 收购 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 主张使用现代开发环境来进行大量的编码工作。

愿景:从学术概念到全球标准

有趣的是,后来成为 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 灾难”。

AI 怀疑论

与此同时,在最近接受 The New Stack 采访时,Gosling 对席卷科技行业的 AI 革命提出了更怀疑的看法。“这主要是一个骗局,”他直言不讳地说,并将 AI 描述为“一个带有自己的有毒废物桶的营销术语”。虽然承认这些系统背后令人印象深刻的数学运算,但 Gosling 表示担心 AI 标签掩盖了它们作为高级统计技术的真实本质。

“科技行业的骗子和炒作者的数量令人震惊。” —Java 之父 James Gosling

他对推动 AI 炒作的风险投资家尤其持批评态度,称“科技行业的骗子和炒作者的数量令人心碎”,风险投资公司“只关心成功退出”,而不是构建真正有用的技术。他预测,“绝大多数 AI 投资将被吸入黑洞。

这是一种氛围吗?AI 编码工具:令人印象深刻的演示,有限的实用性

当谈到生成式 AI 编码助手时,Gosling 承认它们最初令人印象深刻,但强调了重大局限性。“你开始参加 vibe 编码会议,它实际上可能非常酷,”他说,但警告说,“一旦你的项目变得稍微复杂一点,他们几乎总是会把脑子炸开。

根据 Gosling 的说法,根本问题是这些工具通过抓取现有代码样本来工作,并且只能复制他们以前见过的内容。这与专业软件开发产生了根本的不匹配,在专业软件开发中,“有趣的东西永远不会重复”,因为好的解决方案被打包到每个人都使用的库中。

“你开始参加 vibe 编码会议,它实际上可能很酷,但一旦你的项目变得稍微复杂一点,他们几乎总是会绞尽脑汁。” —Java 之父 James Gosling

Gosling 认为 AI 最有价值的编码应用程序不是取代程序员,而是“成为没有人愿意编写的文档”——本质上是一个智能搜索引擎,它了解代码的工作原理,并可以解释如何使用特定的 API 或功能。

Java 的演变:语言特性和运行时改进

当被问及最近的 Java 开发时,Gosling 承认了一些有价值的语言增强:“类型推断带来的很多东西都非常好。你知道,数组声明的演变方式非常好。我认为这可以进一步推动。

然而,他强调 Java 最近最令人印象深刻的进步是其运行时环境和库。“现在 JVM 的代码质量真的很好。现代版本的 JVM 中的垃圾回收器简直令人惊叹。线程的性能真的很可爱,“他解释说。

他特别赞扬了内存管理和性能可预测性方面的改进:“Java 存储管理一直比 malloc 更高效,比 C 存储管理更高效,但现在它简直令人惊叹。曾经需要“10 或 20 秒”的垃圾回收暂停现在可以通过仔细调整减少到毫秒,并且“如果你不小心,它仍然远低于一秒”。JVM 现在还可以以令人印象深刻的效率处理“任意、荒谬的大内存空间”。

关键基础设施的编程语言

当被问及应该使用什么编程语言来重建 FAA 的空中交通管制系统时,Gosling 拒绝了这个问题的前提。“这就像设计一座房子,但从我们要买什么牌子开始,”他说。

相反,他主张在为不同组件选择合适的技术之前,先了解问题域,包括通信系统、国际法规、飞机跟踪、碰撞避免和飞行路径规划。“根据你要完成的任务的属性来做决定,”他建议道,尽管他确实指出,Java 在可靠性至关重要的大型系统中表现得非常出色 。

AI 世界中编程的未来

尽管 AI 取得了进步,但 Gosling 坚信编程仍然是一项必不可少的技能 。“如果我今天有一个小孩子,我绝对会教他们编程,”他说,并解释说,“即使人工智能接管了,人们也必须了解他们的系统是如何工作的。

他驳斥了马克·扎克伯格(Mark Zuckerberg)和马克·贝尼奥夫(Marc Benioff)等科技高管关于人工智能将减少对工程师的需求的说法,称其为“完全自私自利的胡说八道”,将此类声明视为定位策略和隐晦的威胁,以剥夺员工更多的工作。

“如果我今天有一个小孩子,我绝对会教他们编程。即使 AI 接管了工作,人们也必须了解他们的系统是如何工作的。 —Java 之父 James Gosling

Java 的长寿秘诀

当被问及为什么 Java 已经存在了三十年,而其他语言却已经衰落时,Gosling 列举了几个因素:解决实际问题、尊重用户、保持向后兼容性、提高开发人员的生产力和优先考虑可靠性。

“这从来都不是为了时尚,”他解释说。“它始终是关于有效地完成工作,帮助工程师完成他们的工作。”这种对实用性而不是时尚性的关注对 Java 很有帮助,尤其是在软件“必须他妈的每一次都工作”的企业环境中。

Oracle 的管理能力:好于预期

此外,Gosling 还授予 Oracle “B+”的评级,以表彰其自收购 Sun Microsystems 以来对 Java 的管理。“我真的很害怕他们会做什么,因为他们的记录是强奸和抢劫,”他承认,“我只是对他们的表现感到惊讶。

虽然他希望 Java 团队得到更多的财务支持,但 Gosling 称赞 Oracle 使团队免受公司干预——“Oracle 没有搞砸他们”——这超出了他最初对失败的预期。

“我真的很害怕他们会做什么,因为他们的记录是强奸和抢劫。我只是对他们做得这么好感到惊讶。 —Java 之父 James Gosling

展开阅读全文

更新时间:2025-05-22

标签:科技   天才   周年   代码   技术   工作   环境   方法   职业生涯   软件   系统   项目   公司

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020- All Rights Reserved. Powered By 61893.com 闽ICP备11008920号
闽公网安备35020302035593号

Top