上一期提到,太阳公司一个年轻的程序员,帕特里克诺顿,给公司提出了一份言辞尖锐的备忘录,我对这份备忘录很好奇,到底写了些什么呢?这份备忘录,主要有两部分内容,一部分内容是,列出了太阳公司的缺点,另一部分内容,则是对Next公司的夸奖。
诺顿的建议有如下几条:雇佣一个艺术家,把用户界面弄的漂亮一些,现有的用户界面太丑;只选择使用一种编程工具包;将公司的注意力集中在一种视窗技术上,而不是分散兵力,多线作战;解雇现有的视窗组员工,他们太烂了!在我看来,这几条建议,简直放之四海皆准啊,现在,对大多数公司来说,依然很适合。
正是因为这份言辞尖锐的意见,导致太阳公司进行反思,从而促成了Green小组,而开发出了Java语言的雏形,虽然当时不叫Java,当时的名字叫Oka语言。后来这个项目的市场反响,并不好,太阳公司准备取消Oka项目,解散团队。为什么太阳公司会做出这种,以今天的眼光来看很愚蠢的举动呢?我认为,这要从太阳公司的DNA说起。
太阳公司这个名字,其实是斯坦福大学校园网的,首字母的缩写(Stanford Universtiy Network),太阳公司的主打产品是Unix服务器和工作站,本质上,他是一家硬件公司,太阳公司有自己的硬件Spark处理器,和Solaris操作系统,但是没有关键的应用软件,当然,也有一些影响力不大的软件,比如StarOffice办公软件,但是影响力非常有限。太阳公司卖的工作站每台几万美元,服务器每台10万美元,再加上上世纪互联网的兴起,通过卖服务器和工作站,站着就把钱给赚了。太阳公司眼中的竞争对手是,SGI,DEC还有惠普这种公司,在硬件市场,这些都是太阳公司严重的软柿子,随便捏来捏去的。
正是因为太阳公司以硬件为主的商业模式,导致了他固步自封,像Oak这种项目,市场不好,赚钱无望,想关掉也算顺理成章,反正也不指望Oak项目有多大的出息,毕竟卖硬件赚的钱花都花不完啊。就在Oak项目就要被取消,高斯林萌生退意,团队即将解散的紧要关头,太阳公司的联合创始人比尔乔伊挽救了Oak项目。比尔乔伊不仅是太阳公司的创始人,他还是一个优秀的程序员,天主教知识分子,他是BSD系统的主要设计者,BSD系统是目前苹果公司Mac OS的父亲,他还参与设计了TCP/IP,更重要的是他还是编辑器Vi的作者,以后有机会,我想单独做一次他的生平事迹。在这里,我们只说他挽救Java的故事。
当时1994年,互联网如星星之火,逐渐蔓延。1993年6月,两名伊利诺伊大学的学生,马克安德森和埃里克比那发布了第一个版本的浏览器Mosaic。为了使这个浏览器商业化,安德森注册了一家叫网景的公司,这个浏览器的发明,让每个普通人,都可以方便的使用互联网技术。这时候,比尔乔伊敏锐的观察到,Java语言可以满足互联网对安全的要求,因此他对高斯林说:游戏已经开始了。
早在十几年前,比尔乔伊在设计Unix的时候,就已经开始思索,如何在千差万别的互联网环境中,使用一种新的编程语言,可以确保互联网的安全性和可靠性。比尔乔伊回忆说:他当时也不知道怎么做,但是他一看到高斯林的东西,就知道这就是他要找的编程语言。比尔乔伊对高斯林的评价非常高,他说:詹姆斯很伟大,他在这个空白的领域写下了第一笔,虽然只完成了一部分,但是异常精彩。他独自一人工作,这是一种罕见的天赋。要将这种技术快速应用到产品中去,其他人必须要模仿他。但是高斯林是先行者,毫无疑问,他有独特的思考方式。
太阳公司的前技术主管,埃里克施密特,后来此人当了Google公司的CEO,对此的评价是:Java的天才之处,在于詹姆斯的借鉴和创新,都恰到好处。(说点题外话:网络上对Java的嘲笑,不绝于耳,很多人也质疑高斯林的成就,以前我就看过一篇文章,上面列举了Java的技术思想,早在Java出生十年前,甚至二十年前就出现了,所以,Java根本不是什么新生事物。但是我认为,所有的创新都是递增的,都是以原有的知识为基础,高斯林的过人之处在于,他将,原有的知识重新汇总,进行全新的组织,来满足网络时代对安全的要求,Java语言是一种为了实用而设计的计算机语言。)90%的程序员,都是技术水平一般的普通人,Java语言一开始,就是创造一种,“没有锋利边缘的编程语言,这样,人们就不会因为编程语言的问题,而伤害自己”。当时已经有了C语言以及C++语言,这两种语言足够强大,C 语言程序就像一群拿着刀的人,在刚刚打过蜡的地板上快速的跳舞。C++的作者也说过:C 很容易让你朝自己的脚开枪。在 C++ 中,这么做变的困难了,但是你要不注意,就会崩掉自己的整条腿。高斯林这么评价自己的Java: Java 就是去掉了枪炮,刀剑,还有黑帮的 C++。
Java是一种互联网时代的语言,他试图通过,限制程序员犯错的自由,来简化互联网编程。比尔乔伊曾经说过,互联网世界的最终目标是,努力将软件变得像机器的组成部件一样稳定。Java可以看作是装有螺丝钉,螺丝帽,螺栓等各种工具的工具箱。Java就是一个系统,他确保程序员,在使用这些工具的时候,不会做出危险的举动。当然,并非所有人都接受这种限制,那些讨厌这些限制的程序员,将Java比做“警察国家”,将高斯林称为软件法西斯主义。但高斯林回应说:Java的限制对于互联网是一种宝贵的资产,让软件变得更加稳定可靠。Java确实是折衷的结果,但是,利大于弊。
“对Java来说,规矩就是规矩,一旦适应了这一点,它将变成一种自由的语言”高斯林将对Java的批评,比作早期飞行员的抗议。飞机制造商将驾驶舱密封起来的时候,飞行员表示抗议。因为,使用螺旋桨推动飞机的时代,飞行员通过将头伸出机舱来导航,感觉风向。但是当你坐上一架2马赫的现代飞机,打开机舱把头伸出去,脑袋就被吹掉了。他说:要更进一步的解放自己,你就要放弃那些曾经看起来是自由的东西。
如果你连上了网,你就不得不处理多样性,不得不处理交互性,不得不考虑故障,对其它的部分会造成怎样的影响,也就是说不得不考虑系统的可靠性。传统的观点认为,软件要么全部成功,要么全部失效,只有两种情况,要么正常工作,要么无法工作。有没有可能创建一个健壮的系统,这个系统部分失效以后,仍然可以继续运行呢?就像一辆汽车,在收音机损坏的时候,仍然可以正常行驶,而不是尖叫着停下来。这就是设计Java语言的初衷。
扯远了,再把话题回到1994年,1994年,是Java制定标准到一年。在这一年里,Java应该有什么特征,需要抛弃那些特征,怎样改进性能,都是在这一年搞定的。会议有六七个人参加,其中争吵最为激烈的是高斯林和比尔乔伊之间,高斯林是简洁派的,比尔乔伊是功能派的。高斯林坚持认为Java应该足够的简洁,凡是有疑惑的,就删掉;比尔乔伊则认为Java要足够强大,要把大部分语言的强项都添加到Java里,就像一个威力无比的巨无霸那样。后来,大部分决定都是高斯林做出的,Java就是他的孩子。在一次采访中,关于简单性和复杂性,高斯林说:通常系统想更强大,就往往变得很复杂。
高斯林另一个精明之处在于,他让C++程序员很快就掌握了Java。在Java即将被打磨出来之前,太阳公司的另一个商业计划出炉了。在1994年9月,高斯林,比尔乔伊以及施密特共同举行的一次会议上,确定了Java的方向,高斯林说:Java是所有人都能够使用的编程语言。在会议之后,施密特起草了商业计划,提出了具体的数字:5年内,Java用户将会达到1亿。实际上,两年以后,Java的用户数量就达到了1亿。1亿这个数字相当于当时所有运行windows的计算机。之所以会这么快达成目标,一个很重要的原因是,网景公司的浏览器决定支持Java。当时网景公司的安德森,一直在考虑一个问题,如何才能把服务器上的代码,通过网络传送到数百万台计算机上呢?当时网景公司尝试了一种语言,使用Scheme语言,但是这种语言最终没有达到目的。随后该团队看到了Java,于是就认定了这种语言。网景公司和太阳公司于1995年5月23日签订了意向书。
之后,为了更好的市场推广,太阳公司决定将Oak语言重新命名,当时列出了十几个备选的名字,其中之一是Java,其它几个没入选的名字分别有Silk, Lyric等等,最后由产品经理波利思决定,她选择了Java。比尔乔伊和施密特负责太阳公司推广Java的工作,他们选择了一个激进的策略,他们计划不从Java中获利,授权条款全部都是无偿奉送,只是为了提高软件的接受度。在1996年,太阳公司召开了Java的会议,JavaOne,初次会议就有1000来人参加,众多公司包括网景,甲骨文,惠普,IBM纷纷申请Java的许可,反正也不要钱。Java就是当时最热的语言,整个顶级IT公司都在宣告,我们使用Java。在这些公司里,还包括一个公司——微软。微软在1995年发布了windows95,微软在操作系统的地位如日中天。微软公司在1996年3月也向太阳公司申请了Java许可,当时的比尔盖茨对Java的评价是:Java是很长时间以来最优秀的程序设计语言。太阳公司希望微软公司帮助自己推广Java,微软公司希望把Java搞得支离破碎,各怀鬼胎的合作下,最后不得不对簿公堂,在2004年,太阳公司胜诉,获得16以美元赔偿,但是微软却赢得了很大的市场,借鉴JSP技术的ASP技术获得了更大的市场占有率。太阳赢了官司,却丢了未来。对此,高斯林这么评价:微软花了巨大的精力,让用户在windows上看不到Java。
后来微软公司宣布了一种新的技术,可以转移Java用户,并且推出了自己的编程语言,C#, 用来代替Java。微软公司的C#语言定位和Java类似,有着和Java类似的功能。这是微软一贯的策略,首先和你拼技术,拼技术不行就拼流血,反正微软血量足,对手拼流血一般是拼不过微软的。突然想起了微软进入游戏机市场,花了大量的钱打造xbox游戏机,记者问比尔盖茨,如果xbox花费了这么多钱,仍然失败了你会怎们办?比尔盖茨轻轻一笑,说,如果这次xbox失败了,我就再投入更多的钱重新玩一局。微软靠这个方法,打赢了很多战争,包括和borland的编译器之战,以后有机会,我也说说那场战争。微软一贯的策略之一就是,引入新的技术,按照自己的方式重新定义新的技术,然后说服程序员加入自己的阵营,取得最后的胜利。
在1995年,微软开始开发自己的浏览器,和网景公司进行竞争,网景公司是太阳公司最大的合作伙伴之一,正是因为网景公司的鼎力支持,才让太阳公司的Java迅速的占领市场。微软在击败莲花公司和WordPerfect公司的时候,就是利用了自己windows的优势。这次和网景公司竞争,刚开始的时候,网景公司掉以轻心,以为顶多到时候打价格战,网景有钱,这个仗还能拼一拼。没想到微软公司直接把IE免费了,仅仅一年半以后,网景就被微软击败了。如果仔细研究IT的历史,就会发现一个很有趣的现象,微软建立自己的霸主地位以后,就再也没有出现过世界级的PC软件公司,因为只要在PC软件上还有大的机会,微软就会利用自己操作系统的优势,把所有的玩家都清除出去,这个受害者名单有一大长串,网景,WordPerfect, 莲花公司,太阳公司,RealNetwork公司,都没能幸免于难。
到了上世纪末,太阳的市场总值,一度攀升到2000亿美元的最高峰,股价高达每股247美元。公司的CEO麦克利尼也是春风得意,他说,太阳公司就是.com前面的那一点,当我向后看的时候,我欣喜的发现,我至少领先有些公司至少20年。但是,2000年网络泡沫开始破灭,大多数.com公司都关门大吉了,服务器市场突然低迷,太阳公司一年之内就从顶峰跌到了谷底。更可怕的是,以前和Java和微软的ASP竞争的劣势,开始结出苦果,Unix服务器市场,依IBM为首的Linux操作系统,开始蚕食太阳系统的Solaris系统,在windows服务器市场,由于微软明里暗里的不支持JSP,而是支持自己的ASP,因此太阳公司前有狼,后有虎,苦不堪言,2003年巨亏34亿美金,从此沦落称为一个二流的厂商,失去了挑战微软和IBM的能力,以至于最后被甲骨文收购。
还有很多值得八卦的事情,太阳公司的CEO麦克利尼是硅谷著名的喷子,口无遮拦,不止喷微软,他还喷除了自己以外的其它公司。太阳公司自己生产spark的CPU,在80年代的时候,太阳公司曾经试图进入个人电脑市场,自己提供CPU,还能自己生产操作系统,因此,和Intel曾经是竞争对手,他曾经宣称,只要是有厂商采用SPARK的CPU,太阳公司就提供最详细的资料,对于当时微软的铁杆合作伙伴Intel,他说:摧毁微软是每个人的义务。对于微软的windows NT操作系统,由于是Solaris的直接竞争产品,麦克利尼评价说:你们敢把软件运行在NT上么?你们是在玩过家家的游戏么?
“别和微软合作”一直是麦克利尼的口头禅,他说:“和微软合作有很多的条件。而不管什么公司,只要与微软合作,他们自己都会受到很大伤害,自己公司的规模就会变得越来越小。”有一次他在展示自家的服务器的时候,需要输入密码,他对台下的观众说:密码是 say no2nt,中文意思就是“对NT说不”。Dell公司也有Linux服务器,和太阳公司有竞争,在评价Dell公司的时候,麦克利尼说:Dell公司不是一个公司,仅仅是一个流通渠道。对此,另一个大炮Dell也不是省油的灯,他回应说:我想有的企业将永远不会复苏,原因是他们的业务建立在,人们不再购买的产品上。对待惠普和康柏这两个老对手的合并,他仍然是火力全开,他说“在我看来,这是两个烂公司之间的合并,他们已经不是计算机公司了。”
对IBM,依然延续其毒舌,他在接受中国记者采访时称,“我很希望2008年北京奥运会也能用我们的产品。从架构角度来说,中国有三种选择:一种是微软的封闭架构;一种是太阳公司的开放架构;最后一种是IBM的架构,其实IBM本没有什么架构可言。”再后来,太阳公司的市值越来越少,IBM曾经提出过收购,但是在经过几个月的谈判以后,太阳公司拒绝了IBM的收购,在2009年4月20日,甲骨文以74亿美元收购了太阳公司,太阳公司的历史使命结束了。
用华尔街的话说,太阳公司是赔钱赚吆喝,至于吆喝之后怎么赚钱,太阳公司直到被甲骨文收购前,都没找到办法。倒是甲骨文收购以后,找到了Java的赚钱之道,打官司找谷歌赔钱。甲骨文收购太阳公司以后,关掉了很多项目,比如关掉了太阳公司一个CPU的项目,据埃里森讲,该CPU非常慢,非常耗电,以至于为了散热,需要一个30厘米那么大的风扇才能散热。甲骨文还关闭了OpenSolaris项目。
作为太阳公司极具影响力的产品之一Java编程语言,并没有随着被甲骨文的收购而变得暗淡,被甲骨文收购以后,Java的创始人高斯林已经离开了公司,但是,由于安卓手机的流行,Java再次展现出其旺盛的生命里,在编程语言排行榜上长期占据第一位。在下一讲中,我们再来讲安卓系统让Java重新焕发青春的故事。
在下一讲中,我们再来讲安卓系统让Java重新焕发青春的故事。— 栋哥,这就没有下一讲了啊,虽说是陈年的老坑,请填了吧~~