最近在IT界有一个很轰动的事件,甲骨文起诉谷歌侵犯了Java的知识产权,美国法院裁定谷歌对甲骨文的37个Java API的使用为[合理使用],也就是说这一轮谷歌胜诉了,当然,这事还没玩,甲骨文表示会继续上诉。
在这里,我对谷歌和甲骨文这个旷日持久的官司兴趣并不大。自从甲骨文收购太阳公司以后,已经和谷歌打了好几场官司,官司持续了好几年,甲骨文要求的赔偿金额高达10亿美元。至于这些官司谁赢谁输,这个就让美国的法院去操心。在这里,我关心的是Java这门语言的前生今世。
Java语言的作者是詹姆斯*高斯林,他于1955年5月19日出生在加拿大,具体的地点是阿尔伯特省的卡尔加里,家里有三个孩子,他是老大,母亲是高中老师,父亲外出打工,从事过很多职业,因为卡尔加里有丰富的石油和天然气资源,因此他的父亲从事的职业多半与石油天然气有关,比如销售油田设备等等。可想而知,因为父亲东奔西走,家庭的重担多半是由他的母亲来承担,由于父亲的四处奔波,给高斯林留下了深刻的印象,高斯林本人曾说过,他不喜欢创业,一提到创业,就浑身难受。
和绝大多数天才儿童一样,高斯林年少时候就已经展露头脚,在高斯林12岁的时候,他已经可以给附近农场的邻居修理收割机,去电话公司后面的垃圾桶里找电子元件,然后用这些电子元件自己组装一台游戏机玩当时一种叫一字棋的游戏,并且凭借这台机器获得了当地的一个奖。运气很重要,高斯林的家离卡尔加里大学很近,虽然卡尔加里大学是个年轻的大学,但是他仍旧是加拿大排名靠前的大学,在卡尔加里大学,他第一次接触到计算机,对于一个聪明的孩子,一旦找到了自己热爱的东西,计算机就成了高斯林生活的全部。他记住了当时进入计算机中心的密码,每天都全身心的投入到计算机这个神奇的东西上,这个年仅12岁的孩子,已经在计算机编程方面表现出了惊人的天赋。
在15岁的时候,当时还是高中生的高斯林,已经从卡尔加里大学物理系获得了一份兼职的工作,编程来分析从卫星上传回来的数据。当时他用的电脑是一台PDP-8。(这里说几句题外话,PDP8这种电脑由DEC公司开发的一种迷你电脑,当时的迷你电脑也有一个冰箱那么大,大家如果对UNIX有所了解的话,有张著名的汤姆逊和里齐合影的照片,里面那台电脑就是PDP-7,跟冰箱差不多大小。)
由于要兼职写软件,高中时代的高斯林要经常逃课,为此学校的领导经常训斥他,不过他的科学老师和数学老师倒是很鼓励他这么做。后来他去卡尔加里大学读计算机科学专业,天才都是很有个性的,大学时代的高斯林也是经常逃课,凡是不喜欢的,他出勤率都不高,最后毕业的时候,计算机科学的系主任出面帮忙,才让高斯林顺利大学毕业。
高斯林大学毕业以后,申请了几所大学继续攻读研究生,这四所大学都是美国的大学,包括斯坦福大学,麻省理工学院,加州大学伯克利分校以及卡耐基梅隆大学,这四所学校里,只有卡耐基梅隆大学录取了他。他本科都差点毕不了业,申请研究生的时候GPA分数可能不够。但是高斯林运气很好,按照正常的录取程序,卡耐基梅隆大学也不会录取高斯林,他是在一次鸡尾酒会上被一位教授通知录取的。
卡耐基梅隆大学每年录取15名学生,这15名学生需要很知名的学校外加著名计算机教授的推荐。毕竟当时卡尔加里大学刚刚建校不久,名气并不大,所以按照正常的录取手续,基本上是不可能录取的。但是高斯林运气实在太好了,卡耐基梅隆大学每年会破例录取一名优秀学生,这个录取名额掌握在卡耐基梅隆大学系主任的手中,那一年,这名幸运的学生就是高斯林。用高斯林自己的话来说就是:中大奖了!
(再说点题外话,Java近年来受到了不少嘲笑,比如说Java繁琐,没有创新等等,潜台词是Java不应该这么流行,Java这么流行就是个错误,但是看看高斯林的运气,这个就能解释一切了,高斯林的运气就是一直这么好。)
被卡耐基梅隆大学录取以后,高斯林很快就成为了全校最优秀的程序员,他的水平已经远远超过了一年级研究生的水平。由于他技术最好,所以他还有个工作是负责将学校的系统升级为Unix。了解计算机历史的听众也许知道,Unix是贝尔实验的一个操作系统,功能很强大,当时贝尔实验室将Unix授权给很多大学使用,当时包括卡耐基梅隆大学,加州大学伯克利分校等很多学校都在使用Unix操作系统。由于都使用相同的操作系统,高斯林和后来太阳微系统公司的创始人比尔乔伊认识,并成为了好朋友。
当时卡耐基梅隆大学购买了数字设备公司生产的VAX计算机,当时该计算机上运行的是VMS操作系统,由于学校的很多项目都是运行在上一代计算机上,当时计算机科学系的教授拉吉瑞迪就询问高斯林,能否让旧软件运行在新的机器上。高斯林就找到了一个方法,这个方法是后来“Java虚拟机”的雏形,对每一种类型的计算机先编写一个虚拟机,然后让程序运行在虚拟机上,这样,这些软件就可以在不同的机器甚至不同的操作系统上运行了。
在卡耐基梅隆大学读研究生和博士期间,高斯林还完成了很多工作,比如他编写了以自己名字命名的Emacs文本编辑器,这个编辑器是第一款用C语言实现的Emacs编辑器,做了一个支持多CPU版本的Unix系统,写了自己的编译器以及电子邮件系统。
他博士毕业以后,拒绝了太阳微系统公司的邀请,加入了IBM公司。前面已经提过,高斯林的父亲有非常不成功的创业经历,导致他对创业不感冒,当时太阳微系统公司刚刚成立,虽然太阳微系统公司的创始人之一比尔乔伊是高斯林的朋友,后来的采访中,高斯林回忆说他几乎可以肯定 太阳微系统公司将在几个月内倒闭。
高斯林在IBM公司工作了一年,在这一年中,他目睹了IBM公司官僚主义对技术的压制,一年之后他便加入了太阳微系统公司。在太阳微系统公司中,他开启了一个极具创新的项目(网络可扩展窗口系统),该项目可以让网络上的任何一台计算机显示网络上其它计算机正在运行的程序。
Java项目最初起源于太阳微系统公司的危机意识。当时个人电脑蓬勃发展,太阳微系统公司虽然在工作站和服务器领域所向披靡,但是个人电脑已经被挤到了市场的角落。在1990年,公司一名叫帕特里克诺顿的程序员,当时只有25岁,在太阳微系统公司工作了三年,同时还在当时太阳微系统公司的CEO麦克利尼的冰球队打球,在一次冰球比赛的休息时间,他告诉史考特麦克里尼,他要加入乔布斯的新公司NeXT,这个公司的产品是工作站,由于乔布斯和苹果公司的是非恩怨,当时NeXT是硅谷首屈一指的大热门公司。这名叫诺顿的年轻程序员被当时太阳微系统公司的主席斯科特麦克尼利邀请写一份备忘录,希望他指出太阳微系统公司的危机。这名叫诺顿的小伙子也不谦虚,言辞尖锐的指出了公司的诸多弊病,让公司的员工认识到如果裹足不前,公司将会很快被时代所抛弃。这份意见长达十二页,里面列举了公司的很多缺点,第二天他就收到了公司高级管理人员的回应,其中高斯林的回应是:这太切中要害了,不知道从什么时候起,我们忘记了生产高质量产品的真谛。
在这种危机意识下,太阳微系统公司成立了一个小组,要创造出先进的技术,优秀的产品。该小组的成员包括高斯林以及诺顿,他在公司的诚恳请求下,留在了公司。该小组做了几个月的功课,觉得下一个大机会是消费电子产品,因为当时包括索尼,松下等公司都认为消费电子产品和计算机产品在不断的融合。为了保密,该小组成立的时候就从公司搬出去了,这个小组的工作都是保密的,甚至公司的其它员工想要来参观,都要先签署保密协议。该小组开始了一个项目,这个项目的名字叫Green,该项目的目标是为消费电子产品设计一款掌上管家。有了这个管家,可以控制电视机,摄像机以及音响来互联,有点类似于现在比较热门的物联网。在1991年8月23日的一份商业计划中,提到了这个技术,当时的名字不叫Java,还是叫Green ,该报告说Green能够使电话,游戏,手机等设备透明的交互操作。在这个报告中,有一段关于GreenTalk的描述,说这是一个“健壮的编程语言”,能够动态适应不同的机器,使软件运行在虚拟机上。多年以后,高斯林评价说“Java研发设计的大量工作都来自于那个商业计划”。
Java的想法也是慢慢形成的,在1990年项目刚开始的时候,高斯林并没有想到要创造一种新的编程语言。他回忆说:“它开始只是改进C++语言的代码。当时编写代码只是为了使掌上样机的项目成功。”随着项目的进展,高斯林才意识到开发一种新语言的必要性。他说:“要解决网络环境安全问题,新软件的设计是非常有必要的,”不是增加一些东西就可以彻底解决问题,而是要深入到最底层。1992年,高斯林用了一整年的时间来开发新语言,后来这种语言被他称为Oak语言。该语言的名称来源于办公室窗外的那棵橡树。1992年9月,该小组拿着研究成果,一台叫Star7的掌上样机,一个可以拿在手里,装着电池的小盒子,这个小盒子有显示屏,但是没有任何其它的按钮,用手触摸屏幕就可以使用,有点像现在的智能手机。打开以后能看到一个红鼻子的小人出现在屏幕上,这个小人可以带你到房子的每一个房间,只需要用手指在屏幕上操作就行,不需要其它的键盘或者鼠标。(Star7的演示视频如下)
当时太阳微系统公司的总裁麦克尼利欣喜若狂,觉得靠这个一定能赢得市场,为此专门成立了一个全资子公司First Person来营销这款产品。1992年2月,美国总统老布什发表的国情咨文中,提出了信息高速公路的概念,因此,传媒界,科技界,娱乐界都一直追捧信息高速公路的概念。当时认为电视,报纸,书籍,杂志等都将会通过屏幕展示出来,这掀起了一阵热潮。科技公司也相互竞争,希望能够为当时传媒业公司时代华纳提供机顶盒。First Person公司也致力于打动时代华纳公司,宣传太阳微系统公司是最好的机顶盒提供商,并使用Oak语言来处理所有的信息。最后,太阳微系统公司并没有获得订单,获得订单的是硅谷图形公司。
太阳微系统公司后来又谈了一些公司,包括三菱,法国电讯等等,大都是乘兴而来,败兴而归。1994年春天,First Person公司宣告破产,到1994年底的时候,Oak语言仍不能被市场所接受,公司计划取消Oak项目,并且将与此相关的程序员派往他处,此时的高斯林等人有意离开公司另寻他处。在这危机关头,公司的另一位高管出面干涉,高斯林回忆说“比尔乔伊在这件事上做了很多严肃的抗争,为了Oak这个项目的复活奔走呐喊。”这个让Java起死回生的故事留作下期再讲。
栋哥,终于有找到你了
听听你的文章,觉得很有意义
挺你!