“科技行业的骗子和炒作者的数量令人震惊🤯”——Java 之父 James Gosling
他对推动 AI 炒作的风险投资家尤其持批评态度,称“科技行业的骗子和炒作者的数量令人震惊”,风险投资公司“只关心成功退出”,而不是构建真正有用的技术。他预测,“绝大多数 AI 投资将被吸入黑洞。”
从翻垃圾箱的少年到科技先驱,詹姆斯·高斯林(James Gosling)务实的才华塑造了Java三十年历程与现代计算。
Java编程语言迎来它的30岁生日。如果没有其主要创造者詹姆斯·高斯林,这个至今仍在驱动着各种规模系统、高级、通用、内存安全、面向对象的编程语言就不会存在。
我有幸在过去的岁月里多次采访并逐渐了解这位人物——自Java凭借其“一次编写,随处运行”的理念彻底变革软件开发以来。
詹姆斯·高斯林从足智多谋的加拿大少年成长为世界级编程先驱的旅程,深刻反映了过去几十年计算的演变。他在Java上的工作创造了一个平台,赋能了无数开发者。纵观其职业生涯,高斯林始终在技术卓越与诙谐精神及清晰的道德边界之间取得平衡——这种结合帮助塑造了现代计算的面貌。
詹姆斯·高斯林:Java背后的卓越头脑
高斯林不仅仅是“Java之父”——他更是一位谦逊的天才,拥有化繁为简的非凡能力。在最近的一次对话中,高斯林分享了他穿越科技领域的精彩旅程故事,并回顾了在他与团队共同赋予Java生命30年后的演进历程。
编程之路:足智多谋的开端
高斯林的编程之路揭示了他日后成为创新者的特质。成长于“几乎身无分文”的环境,他将需求转化为创造性的灵感。“玩具就是从人们的垃圾箱里翻出旧电视机来捣鼓,”他解释道。他亲手打造的第一台电脑,实际上就是用从电话公司废弃品中抢救出来的继电器机架组装的——这一成就展现了他早期的技术天赋。
一个关键转折点出现在高斯林父亲的朋友带他参观卡尔加里大学计算机中心时。“我一下子就着迷了,”他回忆道,“屏幕、闪烁的灯、磁带——各种新奇玩意儿。”这种好奇心贯穿了他的整个职业生涯。
少年时期的高斯林就展现了他的足智多谋:他通过非传统方式自学编程——翻垃圾箱寻找带有密码的打孔卡。当许多同龄人在零售店打工时,还在上高中的高斯林就在大学物理系谋得了一个职位,开发处理卫星数据的软件。“他们付钱让我去玩乐,”他这样描述这段塑造他成长的经历。
他早期的编程经验涵盖了使用PL/1和Fortran的IBM大型机、PDP-8汇编语言以及CDC 6400代码。他以一贯低调的口吻提到,他曾“找了个暑期工写COBOL编译器”——这个任务会让许多经验丰富的程序员都望而生畏。
从学界到业界:寻找方向
高斯林对学术界的务实看法在他描述中表露无遗。他将卡内基梅隆大学著名的计算机科学博士项目形容为“本质上是一个把研究生当廉价劳动力的研究所”,这体现了他直截了当的评价。一贯务实的他,在攻读学位期间抽出时间到湾区的一家初创公司工作,之后才返回匹兹堡完成学业。
他从CMU毕业后的第一份工作在IBM研究院,多年后他对IBM的评价依然一针见血。他将该公司描述为“致力于搬起石头砸自己的脚”,以冷幽默的方式传递了深刻的洞察。这些早期经历影响了他日后在Sun Microsystems(太阳微系统公司)的工作方式,他在那里度过了职业生涯的大部分时光并取得了辉煌成就。
Sun岁月:创新与恶作剧
若问高斯林在Sun最钟爱的时光,话题总会转向那些传奇的愚人节恶作剧。他回忆这些恶作剧“工作量巨大”但“乐趣无穷”——这让我们得以一窥那种既孕育创新又激发创造力的公司文化。
这些可不是简单的恶作剧。高斯林回忆道,他们把一辆法拉利放在池塘里的平台上(“概念上最壮观”),让它看起来像是漂浮在水面上。不过那辆车是Sun联合创始人比尔·乔伊(Bill Joy)的;最初的计划是把Sun软件主管埃里克·施密特(Eric Schmidt,后来成为谷歌CEO)的法拉利放进池塘,但团队担心施密特可能会对这个玩笑“反应过激”——尽管施密特最终也被整蛊了。
另一个恶作剧是在Sun CEO斯科特·麦克尼利(Scott McNealy)的办公室里精心建造了一个单洞高尔夫球场,配有草坪、水障碍区和沙坑。这些工程挑战需要与驱动Sun技术革新相同的创造性问题解决能力。
在Sun,高斯林找到了一个罕见的环境,在这里技术卓越与充满乐趣的创造力可以并存——这种氛围清晰地塑造了他整个职业生涯中对技术和问题解决的方法。
Java:创造改变一切的遗产
如今已届而立之年的Java,是高斯林标志性的成就。当被问及创造如此具有影响力的事物有何感想时,他分享了一个谦逊的观点:“时不时地,会有人在街上拦住我说,‘哦,你是詹姆斯·高斯林吗?谢谢你给了我一份事业。我写Java代码20年了,这是一份很棒的事业。’这给了我一种难以言喻的满足感,”他说。
回顾Java的演进,高斯林提到像lambda表达式(在JDK 8中加入)这样的特性是他希望从一开始就包含的元素。然而,他解释了自己在语言设计上的审慎态度:“我从来不想加入任何不正确的东西。”像泛型和lambda这样的特性,其挑战在于确定最佳的实现方式——“前90%很容易想清楚,但最后的10%却异常艰难,”他说。
对于甲骨文(Oracle)自收购Sun以来对Java的管理,詹姆斯给出了审慎的评价:“他们做得比预期好,但我必须承认我的预期相当低。”他将Java的持续发展和创新归功于社区发挥的关键作用。
“时不时地,会有人在街上拦住我说,‘哦,你是詹姆斯·高斯林吗?谢谢你给了我一份事业。我写Java代码20年了,这是一份很棒的事业。’这给了我一种难以言喻的满足感。”
——詹姆斯·高斯林,Java之父
高斯林指出,Java已经变得非常适合云环境,他观察到“过去30年的大部分工作都是让Java在云环境中变得非常、非常稳固。”他特别强调了在处理多核处理器、内存管理,尤其是垃圾回收方面的改进,他形容最新版本中的垃圾回收“简直棒极了”。
超越Java:Sun之后的探索
在甲骨文2010年收购Sun之后,高斯林休息了一段时间,随后短暂加入了谷歌。那段经历只持续了“整整六个月”,之后他加入了Liquid Robotics,致力于自主海洋机器人的控制系统。这份工作结合了技术挑战和独特的福利:“必备技能之一就是浮潜”,“工作的一部分就是在夏威夷待上一周或一个月”。
在Liquid Robotics的工作涉及环境监测,项目包括研究北极和南极地区的海洋温度。然而,正如高斯林所指出的,“研究这些的机构都没什么钱”,这给一家风险投资支持的公司带来了挑战。随着投资者推动公司转向国防应用领域,对此方向感到不适的高斯林最终选择了离开。
他的下一步是加入亚马逊网络服务(AWS),在那里他致力于Greengrass项目和其他开发工具的工作,直到去年退休。在职业生涯的每次变动中,高斯林始终遵循的不仅是技术兴趣,还有道德考量。
开源与行业趋势:穿透炒作迷雾
关于开源的演变,高斯林观察到“许多人已经找到了如何让它为己所用”,针对不同情境出现了不同的模式。在Sun,开源成为“一部分关乎协作,一部分关乎开发者关系,一部分纯粹是营销”,它提供了一种自下而上的采用方式,与传统的自上而下的企业销售模式截然不同。
当被问及“低代码/无代码”趋势时,高斯林基于历史背景表达了怀疑态度:“几十年来人们一直在提低代码/无代码。这就是当初COBOL的卖点。”他指出,这类方法通常在狭窄的领域表现出色,但在其特定关注范围之外的复杂性面前就束手无策了。
对于人工智能(AI)和机器学习(ML),高斯林的主要问题在于术语:“我对AI和ML最大的问题就是它们的名称。”他认为“高级统计方法”会是比那些容易误导类比人类推理的术语更准确的描述。在他看来,这些技术代表了“极其复杂的锤子和螺丝刀”:是人类使用的工具,而非威胁工作岗位的自主系统。
开发者工具与偏好:拥抱进步
高斯林主要使用NetBeans集成开发环境(IDE)进行开发,称赞其开源、Apache许可证的性质以及专注的社区。他对那些固守过时工具的开发者表示沮丧:“最让我抓狂的是那些拼命抓住80年代或70年代不放的人——那些仍然想用Vi编辑器的人,而Vi在70年代算是高科技。”
虽然他承认偶尔也会使用Vi,“因为Vi无处不在”,但对于实质性编码工作,他主张使用现代化的开发环境。
JVM愿景:从学术概念到全球标准
有趣的是,最终演变为Java虚拟机(JVM)的概念源于高斯林的研究生时期。他曾探索过“架构中立分发格式”的想法,并尝试在不同机器架构之间进行跨指令翻译。
这些早期探索为JVM的开发奠定了基础,JVM自此成为一项基础性技术,不仅支撑着Java,还支撑着众多其他语言在多样化硬件平台上运行。“一次编写,随处运行”的愿景——最初曾因缺乏足够的数学理论基础而被认为不适合作为博士论文课题——最终彻底改变了全球的软件开发实践。
近期工作:在AWS弥合物联网鸿沟
在去年从AWS退休之前,高斯林致力于Greengrass项目,这是一个用于构建物联网(IoT)应用的AWS框架。这完美体现了高斯林对待技术的态度:用优雅的简洁性解决复杂、普遍的问题。
“‘我的玩具能用了’到真正可以大规模部署的东西之间,存在着大量本质上属于样板化的东西,”高斯林以他特有的化繁为简的能力解释道。Greengrass处理了所有这些繁琐的元素——空中下载(OTA)更新、远程命令与控制、遥测、网络可靠性、安全、凭证管理——让开发者能够专注于其特定应用的独特之处。
Greengrass的设备端部分是开源的,这反映了高斯林长期以来对社区贡献的赞赏。这种方式带来了好处,用户将其移植到了亚马逊未优先支持的平台,如RISC-V——这显然让他感到欣慰。
在Greengrass之后,高斯林加入了AWS另一个与软件开发工具相关的项目,但它“卷入了AI热潮引发的漩涡”。
AI怀疑论
同时,在最近一次接受The New Stack的采访中,高斯林对席卷科技行业的AI革命表达了更为怀疑的看法。“这基本上是个骗局,”他直言不讳地表示,并形容AI是“一个自带一桶有毒废料的营销术语”。尽管承认这些系统背后令人印象深刻的数学原理,高斯林仍担忧AI这个标签掩盖了它们作为高级统计技术的真实本质。
“科技行业里招摇撞骗者和炒作贩子的数量简直令人脑残。”
——詹姆斯·高斯林,Java之父
他特别批评了推动AI炒作的风险投资家,称“科技行业里招摇撞骗者和炒作贩子的数量简直令人脑残”,并指出风险投资家“只关心成功的退出”,而非构建真正有用的技术。他预测“绝大多数AI投资将被吸进一个黑洞”。
氛围编程?AI编码工具:演示惊艳,效用有限
谈到生成式AI编码助手,高斯林承认它们最初令人印象深刻,但也指出了显著的局限性。“你开始一个‘氛围编程’(vibe coding)会话,它可能真的很酷,”他说,但警告道“一旦你的项目变得稍微复杂一点,它们基本都会彻底崩溃。”
高斯林认为,根本问题在于这些工具的工作原理是抓取现有代码样本,只能复制它们见过的东西。这与专业软件开发存在根本性错位,因为“真正有趣的东西永远不会重复”,好的解决方案都被打包成库供所有人使用。
“你开始一个‘氛围编程’会话,它可能真的很酷,但一旦你的项目变得稍微复杂一点,它们基本都会彻底崩溃。”
——詹姆斯·高斯林,Java之父
高斯林认为AI在编码中最有价值的应用不是取代程序员,而是“成为没人愿意写的文档”——本质上充当一个智能搜索引擎,能够理解代码的工作原理并解释如何使用特定的API或功能。
Java的演进:语言特性与运行时改进
当被问及最近的Java发展时,高斯林肯定了一些有价值的语言增强功能:“最近类型推断方面的一系列改进确实不错。你知道,数组声明方式的演进也挺好。我认为这方面还可以更进一步。”
然而,他强调Java最令人印象深刻的近期进步在于其运行时环境和库。“如今JVM生成的代码质量非常高。现代版本JVM中的垃圾回收器简直令人惊叹。线程的性能真的很棒,”他解释道。
他特别赞扬了内存管理和性能可预测性方面的改进:“Java的存储管理效率比C语言的malloc
存储管理高效已经很久了,但现在更是达到了惊人的地步。”曾经需要“10到20秒”的垃圾回收暂停,现在通过精心调优可以缩短到毫秒级,“即使不调优,通常也远低于一秒”。JVM现在还能以令人印象深刻的效率处理“任意、超大的内存空间”。
关键基础设施的编程语言选择
当被问及重建美国联邦航空管理局(FAA)的空中交通管制系统应该使用什么编程语言时,高斯林否定了问题的前提。“这就像设计房子却从买什么牌子的锤子开始,”他说。
相反,他主张先理解问题领域——包括通信系统、国际法规、飞机追踪、防撞系统和飞行路径规划——然后再为不同组件选择合适的技术。“根据你试图实现的目标特性来做决定,”他建议道,不过他也指出Java在可靠性至关重要的大型系统中表现出色。
AI时代的编程未来
尽管AI取得了进步,高斯林坚信编程仍然是一项必备技能。“如果我今天有个年幼的孩子,我绝对会教他编程,”他坚定地表示,并解释说“即使AI接管了工作,人们也必须理解他们的系统是如何运作的。”
他驳斥了像马克·扎克伯格(Mark Zuckerberg)和马克·贝尼奥夫(Marc Benioff)这样的科技高管关于AI将减少工程师需求的言论,称其为“彻头彻尾的自私鬼扯”,认为这些言论是定位策略和变相压榨员工更多工作的威胁。
“如果我今天有个年幼的孩子,我绝对会教他编程。即使AI接管了工作,人们也必须理解他们的系统是如何运作的。”
——詹姆斯·高斯林,Java之父
Java的长寿秘诀
当被问及为何Java能延续三十年而其他语言逐渐式微时,高斯林列举了几个因素:解决了实际问题、尊重用户、保持向后兼容性、提高开发者生产力以及优先考虑可靠性。
“它从来不是为了时髦,”他解释道。“它始终是为了高效地完成任务,帮助工程师完成他们的工作。”这种专注于实用效用而非追逐潮流的做法,尤其在“软件他妈的必须每次都要正常运行”的企业环境中,使Java受益匪浅。
甲骨文的管家角色:超乎预期
此外,高斯林为甲骨文自收购Sun Microsystems以来对Java的管理打了“B+”的分数。“我那时真的很害怕他们会做什么,因为他们过去的记录就是强取豪夺(rape and pillage),”他坦言,“我对他们做得这么好感到惊讶。”
虽然他希望Java团队能获得更多的资金支持,但他赞扬甲骨文保护了团队免受公司干预——“甲骨文没有插手乱搞(hasn’t fucked with them)”——这超出了他最初对失败的预期。
“我那时真的很害怕他们会做什么,因为他们过去的记录就是强取豪夺。我对他们做得这么好感到惊讶。”
——詹姆斯·高斯林,Java之父
阅读原文:https://thenewstack.io/java-at-30-the-genius-behind-the-code-that-changed-tech/