正文
原文:Sarah Jeong | 翻译:ONES Piece 翻译计划 Platycodon Xu
译者按:Waymo 和 Uber 的知识产权纠纷还在发酵,引发行业持续关注。但或许少有人知的是,审理该案的法官本人也是一位「技术宅」,写了几十年的程序,其对技术细节的熟悉程度甚至让很多科技公司的律师汗颜。在法律与科技越发紧密结合的今天,这位「极客法官」的经历不仅极富趣味,更是对两个行业从业者的一种鞭策:闭门专攻一门学科已经不够,唯有两者兼修,才能在未来的市场上立足。
2012 年 5 月 18 日,在加州北区的 William H. Alsup 法官主持的一次庭审中,甲骨文和谷歌的律师围绕着九行代码争论不休。甲骨文诉谷歌案(
Oracle v. Google
),一场关于谷歌是否抄袭了甲骨文的代码来开发安卓系统的争议,正要结束第一次陪审团审理。
争议焦点集中在一个名为
rangeCheck
的函数上。在甲骨文测试的共计 1500 万行代码中,只有这一部分是「逐字逐句」抄袭的,每个字符都分毫不差。越是尽可能鼓吹
rangeCheck
的重要性,对甲骨文就越有利。甲骨文的律师 David Boies 于是开始主张谷歌抄袭了
rangeCheck
,目的是更快将安卓推向市场。但 Alsup 法官对这个说法并不买账。
「判这个案子之前,我对 Java 一无所知,」这位法官说。「但是,我自己用很多其他语言编过程序,现在也还在编程。我写过一百多段
rangeCheck
这样的代码。这我都能做到。你也能。这太容易了。」
甲骨文的律师试图继续发言,但只是让法官变得越来越不满
这段不经意的评论像雪球一样,影响力越滚越大,以至失控。这让 Alsup 大为懊恼。它先是在律师和法律专业人士间被反复引述,然后又传到了科技媒体那里。每经过一次转述,Alsup 的技能就增长一分,直到最后他变成了「会 Java 的法官」——程序员 Alsup、黑袍加身的技术宅英雄、十倍速法官、「
法庭和 Java 双料大师
」。
Alsup 法官想让人们知道的是,他不懂 Java。
至少,他懂得不多。不过他确实会写代码。实际上,他已经用 BASIC 自娱自乐地写了几十年代码,包括一个写出来送给妻子的玩桥牌的程序,和一个自动给出桌游
《珠机妙算》(Mastermind)
解法的程序。最花心思的,要数一个带图形界面的复杂多功能程序,用来方便他广泛爱好中的另一项——火腿电台
(译注:指供业余无线电爱好者进行信息交换、技术实验、自我训练、个人娱乐、运动竞赛以及应急通信的一项使用无线电频率频谱的无线电业务)
。
他的兴趣对法官工作大有帮助。是这份兴趣,使他形成了对面前这桩价值数十亿美元的知识产权案件的看法。科技公司的财富增减,全凭他的判决。甲骨文诉谷歌案对大公司和类似的小开发商将产生深远的间接影响,更遑论其九亿美元的争议标的。在正在审理的 Waymo 诉 Uber 案中,Alphabet 公司也是请求判决 Uber 赔偿数十亿美元,总额尚未确定。这笔钱的归属攸关 Uber 在新兴的自动驾驶汽车市场的存亡。
巧得很,这些要案都归到了可能是全美唯一能理解它们技术细节的法官——一位会写代码的法官的案头。Alsup 长年的兴趣给解决甲骨文诉谷歌案的核心问题带来了启发,而他在业余时间捣鼓摄影、镜头、光线学问的经历也为他审理 Waymo 诉 Uber 案提供了信息——该案涉及到一种名为 LIDAR 的基于激光为自动驾驶汽车提供导航的技术。
科技行业长期以来都对法律无法理解自己感到沮丧,而大多数司法系统正因如此难以跟上高速发展的步伐。那种认为法律永远不能「追上」科技的观念,一部分来自技术优越论(tech exceptionalism),即一种自由倾向的精英主义,嘲讽一切采用法律或规制形式介入技术发展的行为,将其比作纺织工人对织布机的抵制(Luddism)。但这种观念也来自对法律现状真实存在的不满。专利局被看作橡皮图章,
为那些显而易见的技术颁发专利
;最高法院的大法官似乎
对编程的基本流程都感到困惑
;还有律师让技术盲组成陪审团,他们做出了侵犯
网上购物车
专利的巨额赔偿判决。
在这样的背景下,Alsup 是一个异类——在「法律无法理解快速变化的科技行业」这一广为流传的经验面前,他成了一个谜一样的例外。但 Alsup 的秘诀也很简单:他当了一辈子的极客。
Alsup 在旧金山的律师中因为总是赶早而「臭名昭著」(而且还强迫出庭律师一起赶早)。早上九点,联邦法院大多数法官的房间还是一片漆黑、大门紧闭。但当我走到 Alsup 的房间时,发现大门敞开,忙碌的景象说明里边的人已经忙活几个钟头了。
Alsup 一头白发,戴矩形边框眼镜,操着一口温和的南方口音。虽然身型与常人无异,但他那强烈的存在感却给人居高临下的印象。
Alsup 的房间体现出很多法律从业者的传统审美:整架整架的皮面书、深色木墙板、一张大得吓人的桌子上挂着亚伯拉罕·林肯的小幅黑白像。另一头是一张沙发,上面扔了几个给狗玩的玩具。他经常带着上班的那只杰克罗素㹴今天没在办公室。
法官请我在沙发上坐下,给我展示了他存在一台法院发的 2011 年款戴尔笔记本上的程序。他的台式机运行不了这些程序,他颇为恼火地告诉我,所以得留着这台戴尔。「这是最后一台支持 QuickBASIC 的机器,非常遗憾,我只懂这种语言。」
这位法官对硬件并不感冒。法院给他发什么电脑和手机,他就用什么。他用的是法院发的 iPhone,但他说,如果加州北区法院给他发一台安卓手机,那他就会用安卓。
我问他能不能把他的代码发在 GitHub 上,结果他问我什么是 GitHub。作为替代,他递给了我打印版的程序代码,整整三叠纸,边角处装订整齐。他道歉说,最上面那叠有一些依赖程序没空打印出来。在成为审理硅谷案件的法官之前,Alsup 就是个特立独行的业余爱好者;他是个极客,不过是来自另一个时代的极客。
Alsup 于 1945 年出生在密西西比州的杰克逊市,父母都是德州乡下人——母亲是护士,父亲是土木工程师,从罗斯福时代的公共事业振兴署开始参加工作。孩童时起,Alsup 就体现出他日后标志性的无拘无束的好奇心和技术天赋。他童年的大部分时间是和如今的奥本大学教授 Hubert Feild 一起度过的。两人从六岁起就成了朋友,一起堆过沙垒,埋过时间胶囊,放过用洗衣袋做的热气球,用晾衣夹发射过点燃的火柴(Alsup 的发明),还「用土块打过仗」(Feild 说,「不推荐这么玩」)。
「Bill 是个超级聪明的小孩,」Feild 说。Alsup 自从学了钢琴,因为不满意钢琴的声音,便把图钉摁进敲击琴弦的弦槌里。这番改动让琴声听起来好像是从消失已久的牛仔酒馆里传出来的。「我还留着 Bill 在他的『全新改进』版钢琴上弹经典歌曲(比如雷·查尔斯的作品)的录音,」Feild 说。
但最激发这两个男孩想象力的玩意儿还要数火腿电台。两人整小时地收听短波广播,还把一台天顶电子「跨洋」收音机(Zenith Transoceanic)的频段接到一个七寸的远距离接收天线上。他们调到遥远的电台,像莫斯科电台、基多电台、哈瓦那电台,但最多的时间还是花在收听业余操作员,也就是所谓「火腿」们的对话上。
「当我们听到来自美国各州和外国的『火腿』们的对话时,那感觉就像是在密西西比的边界外发现了『新世界』,」Feild 说。他曾亲耳听到高中就领到业余操作员执照的 Alsup 在自家卧室里和遥远的爱好者交流,有时用的还是摩斯电码。
这是大约 1963 年,年轻的 Alsup 在火腿电台前
「Bill 对我的人生影响很大,到现在还是,」Feild 说。「在过去的二十多年里,我每周六早上都用火腿电台和 Bill 聊天。」
高中毕业后,Alsup 进入了密西西比州立大学学习工程专业,立志像父亲一样成为土木工程师。但那是六十年代,民权运动正如日中天:他入校第一年就爆发了华盛顿大游行;大二那年,1964 人权法案又获得通过。随着 Alsup 对更广泛的法律问题产生兴趣,他的目标明确起来。「我想成为另一个阿提克斯·芬奇
(译注:《杀死一只知更鸟》中的律师父亲)
,」Alsup 告诉我。大学毕业后,他进入了哈佛法学院,随后成为最高法院大法官道格拉斯(William O. Douglas)的书记员。
他曾在密西西比州开业从事民权工作,但发现难以维持生计。最终,他和妻子在 1973 年迁到旧金山,多年间从事私人法律业务,同时在司法部工作。1999 年,他被比尔·克林顿总统任命为联邦法院法官。
Alsup 在加州北区律师圈中有着令人生畏的名声。他赶早的习惯是律师们的噩梦,要他们最早七点就开始提出动议;有时候,如果看到人都到齐,开庭时间可能更早。诉讼律师的时间被精确到分钟;他说什么时间,陪审团就得在那个点准时出去。
在甲骨文诉谷歌案的第二次开庭中,他拒绝律师在下午一点以后继续对施密特(Eric Schmidt)提问,即便这意味着这位 Alphabet 董事长第二天又得回到法庭。
市值 5700 亿美元的大公司
的生意要给陪审员让路,因为他们得去幼儿园接孩子,把晚饭端上桌,或者赶一趟回家的远途列车。「我知道证人很忙,」Alsup 说,「但陪审员们的时间现在更重要。」
他把自己法庭的温度维持得比法院别处冷得多;据传他把空调开大是为了让陪审员保持清醒。如果旁听席里有人咳嗽,Alsup 就会停下审理,找出是谁在咳嗽。人找出来以后,法官就掏出一颗止咳糖——这是他摆在椅子边为这种场合准备的,然后这颗让人难堪的止咳糖就从律师那一排一直传到旁听席上。如果那人还接着咳嗽,他就得离开法庭,越快、越安静,越好。
在陪审员关在合议室里听不见的时候,他对律师会很尖刻。但陪审员眼中的法官是一位爷爷般关切备至的南方绅士,他会花时间单独问候陪审员,感谢他们投入时间。
一次,甲骨文诉谷歌案中的一位陪审员在庭审中被蜜蜂蛰了,Alsup 就问她还能不能跟上庭审。听到她哼哼唧唧,法官说,「那我换种问法。你还能不能像被蜜蜂蛰之前那样清楚地理解现在的进程?」
「能,」她赶紧回答。
美国法律制度赋予律师很大程度上选择陪审员的权力。正因如此,即使是一桩发生在加州旧金山,这座科技之都的软件版权案件,陪审团里竟没有一个人有计算机行业从业经验。然而,律师决定不了自己会碰上什么法官。在科技业主导的加州北区,诉讼律师们已经明白,在 Alsup 法官面前,他们可占不到便宜。
Alsup 法官 2012 年在甲骨文诉谷歌案意见中的代码样例
甲骨文诉谷歌案是有关安卓平台的一桩涉及面宽、影响力广的诉讼;对于本案,几十亿美元的标的只是诉讼可能带来的后果中最不重要的一个。70 位著名程序员并不是无缘无故联名以「法庭之友」
(译注:amicus curiae,指特殊案件中为法院提供中立建议之人)
身份向
联邦巡回法庭
,后来又向
最高法院
提交《计算机科学概要》的。他们都是在担心甲骨文诉谷歌案对他们的职业可能造成的影响。
甲骨文在 2010 年就以多项专利权和版权主张起诉了谷歌,这些诉讼 2012 年在 Alsup 法官的审理下全部落败。但甲骨文上诉了,联邦巡回法庭改判其胜诉。当谷歌试图再次上诉时,最高法院拒绝审理这些案件,并将其发回地区法院,由 Alsup 法官重审。本案是于 2016 年重新开庭审理的。和上一次一样,陪审团判决谷歌胜诉,而上诉案也又一次有待联邦巡回法庭作出判决。在七年的官司之后,本案此时已经归结为一个问题:谷歌使用 37 行 Java API 的行为是否侵犯甲骨文的版权?
软件版权是个棘手的问题。如果争议的对象是音乐、电影、文学作品、绘画,甚至是印度瑜伽,判断是否抄袭都很容易。相反,软件版权却到很晚才以「文字作品」的形式被硬塞进原 1976 年《版权法》的 102(a) 节。
版权本意只保护独创性作品,其用途和功能则在所不问。因此,任何事物的
功能性
部分——人体模型、会计账簿、电脑程序菜单——都被排除在版权保护之外。
代码到底是有用的工具,还是一种独创性表达呢?从代码「表达含义」的层面看,它确实如艺术作品一样可以主张版权保护。想想那些嘴边挂着「优雅的代码」「差劲的代码」的程序员就能明白。但当代码被执行起来,用于操作机器人手臂拾起并拧紧螺丝时,似乎又完全是功能性的,这种东西因此也就不能以版权处理。
你没法给一个小便器申请版权,但小便器的塑像或许就可以申请。而代码,正如杜尚的著名作品一样,身兼两种属性。
「你会发现法院已经在这个问题上纠结了几十年,」康奈尔技术学院法学教授 James Grimmelmann 说,他曾经在微软当过程序员。「事实证明,要把软件切分成功能性或非功能性的部分是很难的,」他说,「这需要对软件内部的功能和含义有非常细致的理解。」
甲骨文诉谷歌案涉及的是软件的一个特定组成部分:程序编程界面(Application Programming Interface, API)。API 是一组定义完整的交互,一种快速访问服务、库和其他功能的捷径。API 一直被比作包含了单词及其定义的词典,但 Public Knowledge
(译注:华盛顿一家致力于知识产权、开放互联网等问题的非盈利公益组织)
的一位高级律师 John Bergmayer 说,
它们更类似于
代词或习语。要说出语法正确的英语,你没必要懂得习语;但正如许多以英语为第二语言的学生所知,如果不懂习语,交流就会太花时间。习语有时是一种俏皮的表达方式;但在特定的一群人中,习语用得越多,就越是完全成为一种简略的说话方式,用于省去详述所需的更多时间。类似地,API 也经常是常用或繁杂代码的凝练。
这正是甲骨文诉谷歌案的核心问题。《版权法》的
102(b) 段
将「一切操作的概念、过程、程序、机制和方法」排除于版权保护之外。API 是操作的过程、机制或方法吗?或者,它是版权所保护的独创性表达吗?
谷歌最初创造安卓时,决定让它兼容 Java 这门流行的编程语言。用上了 Java,安卓就能利用现有的开发者社区,甚至可能利用他们现成的代码。任何人都可以用 Java
写程序
,但 Java 语言的开发者 Sun 微系统公司牢牢把控着 Java 标准版(Java Standard Edition)和移动版(Java Mobile Edition),它们分别用来将 Java 代码部署在桌面电脑和手机上。
在与 Java 的授权谈判破裂后,谷歌的一群工程师另起炉灶实现了 Java SE——这意味着一个拿不到源代码的团队以逆向工程的方式获取了代码。甲骨文在 2010 年收购了 Sun,几个月后,就以安卓侵权为由起诉了谷歌。
谷歌对 Java API 的重新实现几乎完全是从头来过的。但它与 Java SE 的 API 在声明代码——用来指明代码其余组成部分名称的代码——上是相同的。不仅如此,谷歌实现方案的结构、排序和组织也与 Java SE 很类似。这就要说到那著名的九行代码
rangeCheck
了。这段代码是被
Joshua Bloch
写进安卓的;令人生疑的是,他之前在 Sun 微系统公司工作过,并且写出了 Java API 的很多部分。(Alsup 法官后来裁判称这只是个不幸的巧合。Bloch 在离开 Sun 加入谷歌后又继续为 Java 的开源实现 OpenJDK 贡献过代码,他的代码同时出现在安卓和 Java SE 中是无意之举。)
为了和 Java 兼容,对特定 API 的特定调用必须在外观上相同。例如,在一组数中找出最大值的方法被命名为一目了然的
java.lang.Math.max
。甲骨文主张谷歌本可以把名字换成
java.lang.Arith.larger
。谷歌则主张,Java API 就好比是 QWERTY 的键盘布局,键盘确实可以换一种布局方式,但制造商必须生产 QWERTY 布局的键盘,因为人们已经习惯了。
编程语言是建立在其他语言的基础之上的,这就意味着其 API 看起来也很类似。Java 的正则表达式 API 是对 Perl 5 语言的重新实现,其字符串格式 API 则是对 C 语言的重新实现。这正是程序员们对甲骨文诉谷歌案感到气愤的原因之一:阻止谷歌做一件别人都在做的事,是毫无道理的。软件开发者的共识是,甲骨文错了,API 的本意就是
拿来用的
,阻止它们用途的行为违背了其本意。
的确,连甲骨文也很难坚持自己的立场。2015 年,甲骨文的一名公司证人在证词中说 Java API 和免费使用的 Java 语言是「不可分割」的。一顿午饭过后,他汗流浃背地收回了这段话。
2012 年,当甲骨文诉谷歌案第一次开庭时,陪审团支持了谷歌的所有专利权主张,但版权问题则被分为两个部分。首先,甲骨文所主张的 API 部分能否被授予版权?如果能,谷歌的行为是否构成合理使用?前一个问题取决于 Alsup 法官,后一个问题则由陪审团判断。
对于谷歌使用 Java API 的行为是不是合理使用,陪审团犹豫不决。但这似乎并不重要,因为 Alsup 法官判定甲骨文对其宣称的代码及其实现方法的结构、排序和组织并无版权。谷歌没有侵权,因为它无权可侵。理由是,Alsup 法官总结道,API 实现代码的结构、排序和组织在本质上是功能性而不是独创性的。
在这样一个证人和律师费力解释 API,将其比作文件柜、电插座等一系列事物的案件中,Alsup 法官意见之细致和专业独树一帜。这份意见整页整页地描述了代码的运作方式,从源代码和目标代码的区别说起,再说到类、声明、头部、子程序、方法、接口、数据包,甚至还包括了代码实例。
很难想象一个没有 Alsup 这样长年编程经验的法官能给出这样一份意见。显然,在对
rangeCheck
这著名的九段代码做出判决的过程中,Alsup 的背景帮了他的忙。
「这种东西我用 QuickBASIC 写过好多遍了,」离那次庭审五年后,他说。(Alsup 法官用的是微软的 QuickBASIC,这是用于写 BASIC 语言的一个集成开发环境和编译器。)「如果你要我用 QuickBASIC 解决这个问题,我保证可以一个小时后带着一个能用的 QuickBASIC 模型来见你。」
交流过程中,Alsup 法官谈起甲骨文诉谷歌案很谨慎,因为联邦巡回法庭尚未作出第二次上诉的判决。但他似乎仍对甲骨文把抄袭
rangeCheck
代码称作「重大问题」感到恼火。他作为程序员的那一面或许多少对
rangeCheck
作者遇上的麻烦有些同情。Alsup 对此事感到十分困扰,以至于在法官意见中花了整整一节来阐述。「甲骨文过度强调了这段同时在安卓和 Java 中出现的代码。该情形完全事出无心,却被甲骨文夸大了,故本庭将在下文阐述认定的事实,以便上诉庭参考。」(这九行代码再也没有在本案中被提起。)
如 Grimmelmann 所说,Alsup 在 2013 年对甲骨文诉谷歌案的意见,是司法机关有关软件版权问题「最详尽、最困难、最细致入微的一次参与」。他在自己的知产课堂上讲解甲骨文诉谷歌案。「这是对 Java 运行方式、源代码中不同部分的框架阐述。这已经不仅仅是就案判案了。这是一篇有教学意义的文章。」
多亏 Alsup 的意见之细致,他对 Java 和软件开发的理解有很大一部分被保留在了判例法中,将被传给年轻的未来法律人。这或许是这位程序员法官所做标志性判决最深远的印记——因为判决本身已经被彻底推翻了。
Alsup 在 2013 年对甲骨文诉谷歌案的判决几乎立刻被上诉。2014 年,联邦巡回上诉法庭作出了令人震惊的相反判决,该判决引发
恼火
的版权法学者写出了
连篇累牍的法律评论文章
。上诉法庭在判决中写道,甲骨文「对谷歌抄袭的 7000 行代码有无限多种选择和排列方式。」甲骨文不一定要把那个函数称作
java.lang.Math.max
。它的名字「想有多少就能有多少」,比如
Math.maximum
或者
Arith.larger
。
这说法听起来像是对代码一无所知。(在意见的另一部分中,法庭称,「谷歌完全可以开发自己的 API 包,然后『游说』程序员接纳它们。」)
谷歌将联邦巡回法庭的判决上诉到最高法院,但最高法院拒绝审理本案。案件被发回到最初审理的地方:由旧金山的 Alsup 法官再次进行陪审团审理。2016 年 5 月 26 日,陪审团判决谷歌构成合理使用。
谷歌或许胜诉了,但案件不但仍然悬而未决——甲骨文再次上诉到联邦巡回法院——其长期现实影响也尚不可知。何时可以、何时又不可以照搬声明代码,或是 API 的结构、序列、组织?陪审团的合理使用判决并未给出任何指导方针。
无论 Alsup 基于自己长年的 BASIC 编程经验,写出了多么有洞见、清晰的意见,它们都被上诉法庭彻底推翻、消失不见了。
Sarah Jeong 摄 / The Verge
Alsup 毫不羞于谈论自己的编程技能:「我确实觉得自己是个好程序员,你看我写的程序就知道了——因为我全都是自学的——这些 QuickBASIC 程序里有些很巧思的编程手法。」他补充说,「只可惜不是 Java。」
这位法官从 1985 年得到第一台电脑起就开始编程:那是一台旧型 IBM,后来被打发到他在优胜美地的牧场里的牛棚,一个黑乎乎、灰蒙蒙的角落里。这机器用的是 5.25 英寸软盘,没有硬盘。你可以买到带一个软驱的版本,也可以买到有两个软驱的版本。他和妻子买了豪华双驱动器版。
这台电脑随附了两本书,一本讲的是 DOS 操作系统,另一本讲的是 BASIC 语言。「有一次,我看到了那本 BASIC 书,决定学习一下。」他完全靠这本书自学,在他的回忆中,这本书「相当开门见山」。
他最开始写的程序是演示性的,用来做简单的算术。接着,他越写越复杂:一个可以算 21 点,一个用来玩七张牌扑克。这些程序都存在一张 5.25 寸软盘上,但 1988 年被他两岁的儿子用订书机弄坏了。
「他可自豪了,」Alsup 伤感地说。
Alsup 的短波电台传送预测程序。Sarah Jeong 摄 / The Verge
在写过的所有程序中,他最自豪的是一个短波传送预测器。他有理由为此自豪:这是一个相当复杂的软件,有多个依赖程序和复古的图形界面,显示着一幅根据你选择的起始位置显示的
等距方位投影地图
,辅之以展示太阳移动轨迹的彩色线条,以及 Alsup 从地图册上人工采编的详尽数据库。(他对自己在业余时间输入这些数据所花的大量时间十分自豪,这横跨他被美国总统任命为终身法官前后。)
通过计算给定两点的方位,这个程序能预测将他的火腿电台信号对准世界各地传送的最佳时刻,甚至能为他从全球选择的几个关键位置生成数据表格。
即使在他刚开始编程的 1995 年,市场上已经发售了类似的程序。但他说,「我就是想看看自己能不能做到,从中获得乐趣。」
他用自己的程序校准 Yaesu Mk V Field 收音机,和世界各地的朋友聊天,包括他的朋友「小」Feild,以及结交的远在日本和新西兰的操作员朋友。他至今还每个月花两小时操作电台,大多数都是在 Sierra 山脚下。他的呼号是 N6XMW,或者按他的说法,「November Six X-Ray Mike Whiskey」。
法官花了差不多一个小时向我解释这个程序,讲到了每一种可能改变短波传送的不同输入,以及背后的原理。随着他耐心解释起太阳波动、K 指标、电离层,这次采访变成了一次即兴物理讲座。
预测电台传送除了要考虑日期和时间,还要考虑大量持续波动、根据你的位置和目的地而变的变量。
当他输入这些变量后,敲击回车,电脑就开始了运算。「看,」他说。「它在思考呢。」
的确,电脑屏幕现在几乎一片空白,上面只有几个字,「正在思考……」
在这段长长的演示中,程序的确出过一次故障:一个依赖程序出错了,不知为何不让我在位置中输入纽约。「差劲,」他对自己嘟囔着。「好吧……是我弄糟了,」他对我承认。我们决定试试另外的位置,结果程序此后运行得都很流畅。
几十年间,Alsup 几乎是完全独自在编程,用书本自学、人工采编数据库。这与当代软件开发者的典型做法截然不同,后者的工作流程和习惯往往涉及一个更大的社区。Alsup 不用谷歌搜答案,不逛 StackExchange,也不用现成的库。他的每行代码都是从头写起的。
实际上,Alsup 和当代开发者的文化和社区最近的一次接触,似乎就是因甲骨文诉谷歌案引发的。
在第二次审理的一段著名对话中,前 Sun 公司 CEO Jonathan Schwartz 试图向陪审团解释免费软件和开源软件。他先讲了 GNU,一个整合在 Linux 中的项目,可以粗略描述为一个操作系统加上相关的软件套件。
「GNU 指的是什么?」Alsup 打断他的话问道。
「GNU is Not Unix,」Schwartz 说。
「G 指的是 GNU?」
Schwartz 说是的。