詹姆斯·高斯林:为烤面包机而建,最终无处不在
詹姆斯·高斯林最初着手为交互式电视机顶盒和家用电器构建一种编程语言。Java最终运行了全球大多数银行背后的服务器、数十亿人兜里的Android手机,以及无数它从未被设计用于的各种企业系统——这是一个工程师将错误的问题解决得太好,以至于解决方案完全超出了其原始用途的案例。
从卡尔加里到卡内基梅隆
高斯林于1955年5月19日出生在加拿大阿尔伯塔省卡尔加里附近,在卡尔加里大学获得计算机科学学士学位,随后前往卡内基梅隆大学攻读计算机科学硕士和博士学位,并于1983年完成学业。即使在攻读博士期间,他已经在构建他人会使用的基础设施:他编写了Gosling Emacs,这是Emacs文本编辑器的一个早期且具有影响力的变体,并为十六路多处理器计算机构建了一个Unix版本,在多核硬件成为主流关注点的前几年就开始处理并行系统。
NeWS与未选择的道路
Sun Microsystems的联合创始人安迪·贝托尔斯海姆(Andy Bechtolsheim)于1984年招募了高斯林,他在那里度过了接下来的二十六年。他与大卫·罗森塔尔(David Rosenthal)共同开发的第一个主要项目之一是NeWS(网络/可扩展窗口系统)——一个用于位图工作站显示器的雄心勃勃的窗口系统。NeWS在技术上很复杂,但Sun决定不将其免费提供,这反而帮助了竞争对手X Window System胜出,这是一堂关于许可和开放性(而不仅仅是技术优势)如何决定哪些系统能够生存的形成性课程。这是十年后Java以相反模式重演的一个早期实例。
绿色项目与Java的诞生
1991年6月,高斯林与同事迈克·谢里丹(Mike Sheridan)和帕特里克·诺顿(Patrick Naughton)加入了Sun内部称为“绿色项目”(The Green Project)的团队,旨在为即将到来的消费电子浪潮设计软件——机顶盒、电视和其他Sun高管认为很快就需要相互通信的设备,这是一种超前于时代的“数字融合”愿景。由于对C++在嵌入式和网络编程方面的局限性感到沮丧,高斯林设计了一种新语言,最初以他办公室外的一棵树命名为“Oak”,后来更名为Java。他构建了其原始编译器和虚拟机,这一软件层使得编译后的Java字节码能够在完全不同的硬件上以相同方式运行——这是Java定义性承诺“一次编写,到处运行”(Write once, run anywhere)的技术基础。该团队的首次公开演示于1992年9月2日进行,展示了Star-7,这是一款加载了Java驱动的图形界面的手持式触摸屏媒体控制器——尽管它所针对的交互式电视市场从未完全实现,但该设备比智能手机早了十多年。相反,Java在爆炸式增长的万维网和企业服务器中找到了真正的受众,按大多数衡量标准,它成为了桌面计算、科学研究、企业系统以及最终Android移动生态系统中全球使用最广泛的编程语言。
Sun之后的生活
高斯林作为Sun最引人注目的技术人物留任,担任开发人员产品组副总裁兼首席技术官等职务,直到2010年甲骨文(Oracle)完成对Sun的收购。他于当年4月离开甲骨文,理由是“薪酬、地位和决策能力的降低,以及角色变更和道德挑战”——这是他与现在控制他所创造语言的公司之间的一次明确的公开决裂。他于2011年短暂加入谷歌,随后转投Liquid Robotics,这是一家制造自主海洋测量机器人的初创公司,后来被波音收购。2017年,他加入亚马逊网络服务(AWS)担任杰出工程师,一直担任该职位直到2024年退休。
甲骨文诉谷歌与复杂的忠诚
高斯林在职业生涯后期最受公开讨论的声明涉及甲骨文诉谷歌的里程碑式诉讼,该诉讼关于谷歌在Android中使用Java API结构是否构成版权侵权。尽管他自己与甲骨文的离职并不愉快,但高斯林写道:“虽然我与甲骨文有分歧,但在这种情况下他们是对的。谷歌完全欺骗了Sun”——这表现出对他所构建的语言和公司的惊人忠诚,即使在以敌对方式离开之后。尽管如此,他后来表示支持最高法院关于API不应受版权保护的最终裁决,这一细微差别捕捉到了他将个人不满与技术和法律原则分开的本能。
荣誉
高斯林于2002年获得了《经济学人》创新奖和USENIX终身成就奖(被称为“火焰奖”)。他因对Java架构和窗口系统的贡献于2004年入选美国国家工程院,并于2007年被加拿大任命为加拿大官佐勋章(Officer of the Order of Canada),这是该国第二高的平民荣誉。他于2013年成为ACM会士,2015年获得IEEE约翰·冯·诺依曼奖章,并于2019年被提名为计算机历史博物馆会士。
为什么詹姆斯被称为天才
支持高斯林天才论的最有力证据在于架构:设计了一个足够健壮的虚拟机和字节码格式,使得一个1991年为机顶盒构建的语言,仅需适度的修改,就能在十年后成为企业银行系统、Android手机和Web服务器的基石,并在Sun公司无人预见的处理器架构上未经修改地运行。这是一种具体且可证明的远见形式——构建一种足够通用的抽象级别,以至于能够超越其原始目的。然而,他自己对领导力的描述削弱了任何孤独天才的神话;他曾说,优秀工程工作的真正回报是“你永远无法理解”,工作主要是“给优秀的人钱,告诉他们做好的事情”——将Java的成功归功于绿色项目组建的团队,而不是他个人的单一洞察力。诚实的反对意见是,Java的语法大量借鉴了C和C++,其“一次编写,到处运行”的承诺在可靠运行之前经历了多年的痛苦磨练,而且高斯林是多位核心架构师之一,而非唯一作者。他的天才(如果这个词合适的话)在于系统设计和耐用性,而不是单一的独创性闪光。
遗产
在绿色项目结束几十年后,Java仍然是构建过的最重要的软件基础设施之一,它仍在培养新的程序员,并运行着高斯林最初的团队从未想过要针对的系统。很少有工程师见过一个为从未到来的市场构建的项目,最终成为了它从未打算服务的市场所不可或缺的东西。



