OwlTail

Cover image of 软件那些事儿

软件那些事儿

程序员的睡前故事

Weekly hand curated podcast episodes for learning

Popular episodes

All episodes

The best episodes ranked using user listens.

Podcast cover

7.苹果和谷歌的天王山之战-智能手机背后的故事(2)

介绍: 本期要点: - 苹果的玻璃是谁制造的? - 电容屏和电阻屏的区别是什么? - ARM,高通,三星,苹果有啥关系? - 苹果和谁合作制造的电容触控屏幕?

17mins

1 Jul 2016

Rank #1

Podcast cover

174. Red Hat(3): 卖软件就是卖品牌和服务

如果本文有错误,只会去 lmzdx.com 上修改,这里只能修改1次,并且只能是5个字。根本不够改的。每家品牌都有自己的市场定位。在Red Hat成功之前,软件这个行业已经有了巨大的统治者,比如IBM,HP,Apple还有Microsoft这些公司在当时已经是巨无霸了,尤其是对于一个当时只卖图书和软件的小门头房,要想在软件这一行中取得一席之地,那是非常的困难的。因此,如何精确的定位自己对于竞争的成功是至关重要的。好像在营销界有一本书叫《定位》,就是说的营销策略,我读过,但是自己没什么实际操作的概念,毕竟一个钢管舞演员,没有必要定位。但是,我还是看看别人的公司,然后看看别人是如何定位的。我觉得每一家公司,成功以后,至少有自觉或者不自觉的给自己定位了,否则是不可能在某个领域取得成功的。这次就以Red Hat为例,来说明一下定位的重要性。其实不止Red Hat,很多公司都有自己独特的定位。比如说,如果有一家公司定位于和假医院假药公司合作,赚病人救命的钱。这个就是定位,那么这家公司的核心业务就是为这个定位服务的。有了这个定位以后,就能解释这家公司的许多行为了,比如说,这家公司会在网上撒播假信息,然后误导你去医院,比如你脸上长了个粉刺,给你说成是皮肤癌,然后把你吓的去医院。但是,这个还形成不了直接的利益,因为就算是你害怕了,还可能去正规的医院啊。所以,为了形成闭环,还得有自己的地图和导航软件,比如说有个长了粉刺的家伙,在网上搜了一下,给吓坏了,然后去搜医院,一搜,导航软件故意给你指定一个合作的假医院,然后用户就去了。但是,还是有可以让这个人去的是真医院,比如,这个家伙出门打车,人家出租车师傅说,小伙子,你去的这个地方不是个正经医院,这下要到手的钱又打水漂了。所以,这个公司正是因为这个定位,一定要研发AI,尤其是自动驾驶的汽车,这个自动驾驶的汽车,没有司机啊,所以,只要上车,不管你说去哪儿,直接给你拉到合作方的医院,因为大家都可能是他其它产品的客户,比如他们检测到你2年前搜过肚子疼,那就是胃癌前期,如果6个月前搜过头晕,那肯定是中风前期,然后自动驾驶的汽车会在汽车进医院的时候发个信息给医院,说一下来货了,大数据分析一下,能从这个货身上刮下多少钱来。不管有病没病,至少你得手术台上让人切一切,然后这个小伙打完麻药,躺在手术台上,然后发现主刀医生是山东兰翔学厨师的前女友,举着一把刀在对他笑,这种医院,各行各业的人都能在这里发光发热。切的时候结合前女友的心情,用大数据再分析一下,要不要通知殡仪馆和火葬厂。如果病人人不够多,这家公司可能会投资餐饮行业,没病也得吃出病来。当然了,我只是为了说明定位这个例子,我觉得应该不会有这么黑心的公司,只干坏事,不做好事。Red Hat当然是另外一种类型的公司,这个公司切切实实的做了不少好事,但是在初期的时候,Bob Young还是花了不少时间来给Red Hat公司定位。因为有卖软件和图书的经验,Bob Young为了赚钱,对消费者的需求还是挺有一套的。他发现了,当时对这些软件行业的巨头最大的抱怨是买了软件不能修改,因为没有源码。如果要找突破口的话,这是一个很重要的突破口。要宣传Linux的开放源代码以及可定制性。与其它公司的UNIX和Windows这种操作系统不同,Linux是另一个维度上的软件,这个新的,叫做Red Hat的操作系统把对操作系统的控制权交给了用户,而不是一个专有版权的,只提供二进制的操作系统,这样,Red Hat就有机会获得这个市场的统治地位。Bob Young说,Linux就像是汽车一样,没有人真正的开一台品牌叫”汽车“的汽车,广义上来说,汽车不是一种品牌,而是一个行业。Linux也是,没有人用Linux,而是用的某一种品牌的Linux。比如说,我们不开汽车,我们开的是宝马,本田。而宝马和本田都是全球采购东西,自己制造的东西极少,比如从Dupont购买油漆,从Michelin购买轮胎,从TRW购买安全气囊,然后把汽车组装起来以后,把自己的标放在车上,然后给你担保,还有一个遍及全球的售后网络。Red Hat也是如此,Red Hat自己写的东西极少,从Apache获得web服务器,从GNU获得编译器,从不同的组织获得编程语言。然后Red Hat把这些软件组装起来,就像宝马和本田一样,给你一个证书,担保这些东西不会有问题。就算所有的零件都可以采购,也没人愿意自己亲手去装一台汽车。同样,就算可以到处找免费开源的代码做一个和Red Hat一模一样的操作系统,也没有多少人愿意这么做。当用户买了汽车以后,如果对原厂的配置不满意,可以自己改装一下,比如说改一下轮毂,16寸的改成19寸的,显得这车比较牛一些。当然,这个大改装在中国是不行的,如果改装太大了,自己又不认识人,年检可以就挂了。小改装没事,比如我的五陵宏光S,就在前挡风玻璃上改装了一下,贴了一张财神的画像,希望能保佑我发财。这个可以过年检。如果有客户买了Windows或者Unix,要满足自己的要求,可能不是很方便。但是你买了Linux,随便你改装,并且,你改装好了以后,还可以卖给别人。因为用户有有修改Red Hat源代码并且不通知Red Hat公司的权力。这个和汽车一样,你买了就买了,你可以改装以后,再卖给别人,没什么问题。这个是非常重要的,尤其是对一些大型的商业机构或者国家机构。Bob Young举了一个例子,Fermilab,也就是芝加哥的费米实验室要用到集群计算机,市面上所有的操作系统都不支持他们特殊的需求,就找到了Red Hat,于是联系了几次,就购买了Red Hat作为Fermilab正式的操作系统。这个当然是个大事,Red Hat有事没事就拿出来说说,Fermilab都买了,说明Red Hat还是有很大实力的。后来NASA也用了,这下让Red Hat历害了。Bob Young虽然没有写代码的经验,但是他很早就预言了UNIX会失败,Linux会成功,这两个操作系统从软件层面上,差距并不大,之所以后者会成功,是因为Linux采用了GPL(通用公共许可证),这个许可证是开源软件的灵魂,正是因为这个许可证,让Linux这样一个协作开发项目非常的有效。他说,其实Linux也好,Unix也好,都是一个人开发的,Linux是Linus开发的,Unix最初是由Ken Thompson开发的。(多说一句,顺便做一下广告,我有一个知识星球,我在里面写Unix的事情。如果大家对Unix,Linux以及Mac还有后来的iOS,Android的历史有兴趣,可以去订阅。)Bob Young说,无论Unix还是Linux,内核的部分只占很少的代码量,之所以这个能发展起来,完全是靠大家共同努力,像Linus和Ken Thompson这样的人,作用巨大,但是他们也只是启动这个项目的人,为什么Unix后来失败了呢?是因为没有选好类似GPL这样的协议。UNIX是靠大家帮助的(我在我的知识星球里有写哪些组织写了哪些代码),但是,这些后来帮过UNIX的大学和组织,突然有一天收到了一封信,说,你们要为UNIX付钱,否则不允许再使用了。这当然让这些大学感到非常失望,因为代码都是他们写的,他们参与了UNIX的成长,并且提供了大量的代码给UNIX,结果还要付钱。于是,UNIX的人心就散了。Linux和UNIX的情况差不多,Linus开发了内核,但是这个内核有大量的热心人帮忙写的。GPL可以保证所有人的修改都会被公开,正是因为有GPL,所以Linus不会像UNIX做的那样,突然写一封信说,如果你再继续用Linux,可就得收钱了。Bob Young说,他觉得这个GPL协议太好了,如果Red Hat对Linux有所创新,和我们一起用Linux的人也能用到这些创新,如果竞争对手对Linux有创新,那么Red Hat公司也能用到这些创新,这种强制性的开放源代码能让所有用Linux的公司都能第一时间用到最先进的技术。这是一个强大的力量,如果你也做开源的Linux发行版,当市场上出现了一种更先进的技术的时候,如果你不采用,那么客户就不会去选择你。比如在1997年的时候,C语言的库函数glibc要更新,Red Hat首先选择了更先进的版本,但是兼容性不如旧版本好。做出这一得起的都以后,其它的Linux发行厂商都选择了快速跟进。如果在UNIX上,那是不可思议的。所以,后来的UNIX分裂的非常严重,那都是各个厂商自己修改了以后,不公开,然后互相之间的差距也就越来越大了。当然,现在仍然有,只是越来越少的人质疑Linux开源的模式,但是早在1998年,Bob Young就预言,商业公司只要尝试过开源的好处,就不会再去选择不开源的系统了,就好像去过自由世界的人,就不会真正爱上专制一样。他还预言,以后所有的系统都会是开源的模式。我觉得真有点说不好,也许Windows以后也开源了 :)

26mins

24 Oct 2018

Rank #2

Similar Podcasts

Podcast cover

60. 死皮赖脸还是有用的

我在网易云课堂上的课《iOS从入门到放弃》上线了

19mins

21 Sep 2016

Rank #3

Podcast cover

21. "雅虎" 身与名俱裂?不废江河万古流

向雅虎这个互联网的老兵致敬!

16mins

28 Jul 2016

Rank #4

Most Popular Podcasts

Podcast cover

74.索尼和任天堂,最熟悉的陌生人

我们都知道,我们现在使用的公元纪年法,比如现在是公元2016年,之所以用公元纪年,是因为基督教的原因。在罗马教廷时期,有个神学家就建议把耶稣出生的那一年定位元年,以取代罗马教廷所采用的历法,后来这个建议被采纳了,因此现在我们都使用公元纪年,实际上是耶稣同学很牛逼。当然了,提建议的这个人虽然想法挺好,但是数学是语文老师教的,他算错了时间,按照现在比较权威的说法,耶稣实际上应该是公元前4年出生的。不管怎么说了,耶稣都没反对,我们这些凡人也就将错就错的用下去。因此就有了公元元年。在物理界,也有个公元元年。物理学的奇迹年是1905年,当时一个26岁的年轻人,白天在伯尔尼专利局无所事事,晚上和老婆也没什么话好说,因为他们之间的爱情结晶不幸夭折了,一个女儿,这件事直接导致这对年轻的夫妻之间的感情急转直下。这个年轻人叫爱因斯坦,他在1905年,写了5篇论文,按照后来一些人的说法,这5篇论文即使不能获5个诺贝尔奖,获3个应该问题不大。当然了,我懒得去纠结这个会获几个诺贝尔奖,我肯定一个都获不了。不能去争论这种皇上不急太监急的事情。就因为这5篇论文,1905年就被称为物理元年。我之所以说了这两件事情,一个是公元元年是因为耶稣,一个是物理元年是因为爱因斯坦。主要是为了引出一个话题,我自己定义了一个家用游戏机的转折年,我这种方法其实是扯虎皮拉大旗,因为贸然说一个家用游戏机转折年,很多人就觉得太突兀了,这样先扯个大旗,就显得不那么突兀。我要说的家用游戏机转折年是1993年。这一年发生了几件重要的事情,类似于《万历十五年》吧,只是对游戏机市场来说,这可不是风平浪静的一年,这一年简直可以用惊天动地来形容。首先,日本的松下公司和美国的3DO公司共同发布了一款新的游戏主机,名字叫3DO,让霸主任天堂感到无奈。随后,曾经亲密无间的一对好基友任天堂和Sony公司在这一年彻底决裂,只是因为Sony也要做自己的游戏机,任天堂感到痛苦。在北美市场,世嘉公司对任天堂发动了神风敢死队一样的自杀式袭击,世嘉公司在1993年以赔钱赚吆喝的必死心态,游戏主机成倍增加,年度利润却颗粒无收。所谓愣的怕横的,横的怕不要命的,世嘉以不要命的心态和任天堂玩,结果把任天堂的根基给动摇了,当年,任天堂首次利润为0,这个时候,任天堂举目四望,除了自己,周围全是虎视眈眈的敌人。要不是好莱坞的环球影业和任天堂合作拍摄了一部《超级马里奥兄弟》的电影,任天堂这一年都很不开心。这部电影的票房接近1亿美元,在当时已经是了不起的成就。任天堂的好运,在这一年也神奇的被用完了,随后两年的苦心研发,任天堂于1995年7月21日发售了Virtual Boy主机,这部主机是由任天堂著名的大将横井军平主持研发,并且在这部主机上推出了两部以马里奥为主角的游戏,一个是《马里奥网球》和《马里奥冲击》,但是自从1993年以后,幸运女神没有站在任天堂这边,这两部游戏以不足10万份的惨淡销量收场,这个销量,甚至不足曾经热卖的《马里奥兄弟》几周的销售量。任天堂的硬件研发能力之弱,几乎是人尽皆知的事实,在几个硬件大厂的眼里,任天堂的硬件研发能力接近于没有。任天堂当然也直到自己软件强,硬件弱的毛病,因此他每一代主机都是和其它的硬件厂商深度合作,说白了就是他当甲方提出要求,对方当乙方实现要求。比如说,日本sony的硬件研发能力超级强大,任天堂自然也就和sony走的很近,比如任天堂红白机上的音源芯片就是sony给任天堂研发的。当时,任天堂也着手和sony研发以光盘为载体来发布游戏,并且,任天堂的宫本茂同学还试着做了几款光盘版的游戏。但是,sony是世界顶级的硬件厂商,怎么可能会让老任带领着只赚点儿硬件费用呢?风水轮流转,皇上的宝座人家大sony心里也天天想着坐一坐,不能光让你任天堂一个人坐,坐久了也得起来活动一下,否则容易长痔疮。然后,消息灵通的任天堂知道了sony心里的小九九,朋友做不成了,马上撕破脸不和sony合作了,光盘方面改找飞利浦合作,芯片方面改找美国的SGI,也就是硅谷图像公司来合作。当时光盘已经是主流,一个光盘的容量是700M左右,像sony这种牛逼硬件厂商,可以把光盘做到容量达到850M。不过,任天堂不是和sony闹掰了么。任天堂选择使用MASK ROM来作为游戏载体。嗯,光盘的容量至少700M,这个MASK ROM最多只能几十M。这个决定在当时除了任天堂,都觉得是自掘坟墓。当然,任天堂这次又雄起了一把,在所有人都不看好他的时候,他又成功了。这个故事留着以后再说,因为离他再次成功还有好几年呢,故事的这个阶段,他还活在别人怀疑和自我怀疑之中。再来说说世界级的家电大厂sony公司,很可能一开始就准备扛着红旗反红旗,自从傍上了任天堂这个游戏界的大款以后,sony很多可能就是想着依靠老任反老任,只是自己的如意算盘被老任提前发现了。其实也不能说老任眼光毒到,因为当时没有进入家用游戏主机的家电巨头只有一个西门子,一个sony,其它的全都进场了。只要稍微动动脑子,也应该知道,身边的sony怎么不会动心思呢?但是任天堂在游戏主机行业,还是挺能打的,当时可以说来一个灭一个,所以,当时有个说法就是游戏市场的规律和其它市场不同,游戏市场的规律是,谁都可以做游戏主机,但是最后任天堂要赢得最后的战斗。但是,sony和其它的厂商有点不同,为啥不同呢,不同点是任天堂和sony曾经是亲密无间的朋友。所以说,背后捅刀子,一定要找最亲密的人去捅,否则不能一击毙命。为了避免有人背后捅刀子,有两种方法,一种是是个大好人,另一种是完全没有朋友。我本人大概是属于没有朋友的那一类吧,所以不怕别人背后捅我。任天堂不同,他有朋友,他最亲近的朋友之一,sony公司,或者说曾经最亲密的朋友之一。之所以是朋友,并不是说这两家公司情投意合,主要还是有共同的利益点。这个又得说一下当年游戏机的发展史,在1988年的时候,市场上破天荒的出现了一个神奇的东西,世界上第一台配备了光驱的游戏机周边产品,名字叫PC Engine CD-ROM System,以后我简称PCE。在此之前,比如任天堂发布游戏的时候使用的是ROM,第一代任天堂的大金刚游戏的ROM只有128Kbit,128Kbit是什么概念呢,根本存不下一张苍老师的写真照片。当然,如果要增加容量,实际上无限增加ROM的数量也是可以的,1个不行就2个,2个不行就4个。但是,成本将会是个大问题。然后NEC Home Electronics在1988年12月4日就发售了一款PCE周边产品,也是世界上第一台用于家用游戏机的CD-ROM驱动器。但是,价格相当的昂贵,1988年的时候,大概是日元40万日元,不知道大概相当于人民币多少钱,反正挺贵的。所以,这个CD-ROM基本上作为周边产品来发售,不会说直接给你装上一个CD-ROM驱动器,这会严重增加成本。有了CD以后,游戏的视觉效果就变得非常好了,因为有很多容量来存储动画或者图片,声音效果也有了大幅的提升。然后任天堂当时的对手世嘉公司在1991年12月12日也对旗下的MD推出了一款CD周边产品,名字叫MEGA-CD。这台机器有创新,里面还内置了CPU,这样可以用光驱内置的CPU来解码,不会太影响主机的性能。不管怎么说,不管这个CD-ROM的周边产品销量如何,据说是普遍不太好。但是,任天堂没有,贵不贵是一回事儿,有没有又是另外一回事儿。以任天堂的硬件研发能力,他自己也鼓捣不出这么个东西。于是,就找来sony看看能不能帮兄弟一把。当时sony不但给任天堂的SFC音频提供芯片,任天堂家整套的开发环境,也是sony给他搭建的,制造马里奥等游戏的硬件软件平台完全使用sony家的NEWS工作站以及一些相关的软件产品。既然以前都是好朋友,人家都有CD-ROM等相关的配套产品,我老任是搞不定了,你sony帮我搞一个出来,这就是大名鼎鼎的PSX计划。PSX计划主要就是sony帮任天堂制造光驱设备,sony也有好处,好处就是,只要是这台光驱上的游戏,不用经过任天堂同意就可以发行。前面我说了,任天堂发行游戏,不管是自己的还是别人家的,都只能通过任天堂制造卡带并且由任天堂发行。但是sony这里开了一个口子,算是网开一面吧,说反正光驱也是你制造的,以后光驱版的任天堂游戏,sony你也可以发行,毕竟是蜜月期,啥都敢许诺,只是后来,任天堂又反悔了,觉得我操,让sony捡了个大便宜,光驱是发展的趋势啊。为了一时的快感,感觉把大好江山拱手让给了sony,他又反悔了,因此对PSX这个项目不冷不热的。sony也搞的很郁闷,昨天还好好的,今天你又整这些幺蛾子…任天堂开始出去找小三了,找到的就是前面所说的飞利浦,任天堂想和飞利浦开发CD-ROM,不理sony了。sony彻底崩溃了,这翻脸比翻书还快,于是提出了严正的抗议,人家任天堂也倒是不遮遮掩掩,直接发表声明说,你们当然可以继续开发PSX这个设备,我们无法阻止sony继续开发,但是咱们当时签的合同里也没说开发完成了,我任天堂一定要采用啊,因此,你可以单方面继续开发,即使你开发完了,我老任也是不用的!就这嘴脸,反正谁说都有自己的道理,任天堂和sony都有一肚子苦水。幸好sony当时垄断了任天堂游戏机一些音频相关硬件的供应,否则任天堂比当时肯定更恶心。因此,这两家公司,也只是打打嘴仗,没有闹上法庭,反正大家也都知对方啥货色了,以前的怨气,都忍了下来。sony也是世界顶级的家电厂商,基本上啥都会造,反正现在也有一个任天堂不要的PSX项目,再研发一台游戏机,这个光驱项目就能派上用场了。任天堂的情况是有一台游戏机,但是缺一台CD-ROM的周边设备;sony的情况是,有一台还没有完工的CD-ROM设备,但是缺一台游戏主机。按照常理,一般的厂商,也就放弃PSX项目了,毕竟一个光驱外设,但是sony就是sony,非要为一台光驱设备配一台游戏机。这就类似于现在的苹果手机是可以支持宝马车的CarPlay,比如说,像土豪,有宝马车,但是缺一台苹果手机,那就买一台手机就是了,这个土豪就是当年的任天堂,还有个屌丝,卖了一个肾买了一台苹果手机,但是缺一台宝马车,这就是当年sony的情况。但是,sony竟然逆袭了!任天堂的主机就一直没有光驱外设,即使当时几乎所有的游戏机都有了光驱的外设。然后,任天堂这个家伙开始不遗余力的损CD-ROM,我们甚至可以预测到任天堂肯定不会说CD-ROM的好话,比如速度慢,光盘边缘太锋利,容易让小孩子受伤等等,反正吃不到葡萄就说葡萄酸。暂且不说任天堂说的对不对,当然,我个人认为是不对的,尤其是光盘太锋利,容易让小孩受伤这种狗屁理由都能胡诌出来,如果当年任天堂能够稳住sony,共同开发光驱,我认为索尼和任天堂之间的平衡应该可以维持一段时间,因为sony不至于为了光驱设备制造出一个游戏机,sony和任天堂共同开发的光驱设备名字叫PSX,你看,曾经,PlayStation这个名字都有一半属于任天堂的,结果,他没有把握住机会,深爱的情人最后变成了刻骨铭心的仇人,就是这个仇人把任天堂拉下了马。1993年,对家用游戏机是个变革的年份,这一年,围绕着CD-ROM,3D渲染技术以及视频播放,当时五大游戏厂商在这三个领域不停的推出产品,试图赢得用户,赢得市场。在1992年6月24日,sony和任天堂彻底闹翻以后的一次会议上,当时的sony总裁大贺典雄正式决定启动PSX计划,当他把这个计划的名字打在屏幕上的时候,台下一阵骚动,大家都在窃窃私语的议论,这个名字和任天堂共同开发的光驱设备的名字是一模一样的。这个名字是为了纪念以前和任天堂的友情,还是为了自己心中那个找任天堂复仇的念头,这个只有大贺典雄自己知道了。大贺典雄随后介绍了一个年轻人,让他负责sony的PSX计划,他缓缓的走上讲台,他的名字叫久多良木健,属于他的时代已经到来了...

25mins

17 Nov 2016

Rank #5

Podcast cover

编程语言特征产生的历史和我的视频终于通过了!

RT

24mins

19 Jul 2018

Rank #6

Podcast cover

163. Microsoft Office 之 开发Word 的故事(上)

27mins

4 Aug 2018

Rank #7

Podcast cover

105. 我认为SONY是个什么样的公司?

介绍编程语言,软件和游戏背后的故事。

34mins

16 Jul 2017

Rank #8

Podcast cover

145. HP -- 硅谷诞生地 | 软件那些事儿

RT 

26mins

20 Mar 2018

Rank #9

Podcast cover

52. 微软帝国(1):乱世重臣之大卫•科特勒

微软的故事

15mins

31 Aug 2016

Rank #10

Podcast cover

94.[人工智能01]机器学习的五个流派

94.[人工智能01]机器学习的五个流派

16mins

23 Apr 2017

Rank #11

Podcast cover

154. 你知道锤子科技门票捐给的OpenBSD是一家什么公司么?

25mins

20 May 2018

Rank #12

Podcast cover

81. 钻钻牛角尖:浏览器的工作原理(1)

文 | 刘宝辰我们每天上网,用的最多的应用软件之一是浏览器,我们用浏览器看新闻,看视频,基本上,只要是现在上网,大部分人都是使用浏览器。浏览器也有很多,但是,总体上分为四个半流派,第一个是微软公司出的Intenet Explore, 这个占有率很高,尤其是中国的市场上;第二个流派是谷歌公司出的Chome浏览器;第三个流派是Mozilla公司出的Firefox流派;第四个流派是苹果公司出的Safari;第五个流派是Opera基本上就是这些吧。有同学可能问,我从来不用上面这些浏览器,我用的是360浏览器,QQ浏览器或者各种百度全家桶浏览器,其实,这些有中国特色的自主研发的软件,都是基于以上我说的那些浏览器来改版的。比如说加了一个外壳,让浏览器可以记录密码,同步书签等功能。我这次节目不做浏览器的测评,不评价哪个浏览器好用,主要是讲浏览器的一个工作原理。以前我做过一期,名字叫钻钻牛角尖,电脑开机开了啥。那一期是研究电脑开机的,结果,有人告诉我没必要这么复杂,装个360软件,就能加速电脑开机。而且我还和那个朋友争吵了一下,最后不欢而散吧。我这一期节目,没啥用处,即使研究浏览器的原理,也不会让上网速度变快。这只是一个程序员的怪癖,我就是喜欢研究这种东西。以后我还会讲各种音频格式之间的差别,各种图片格式之间的差别,各种视频格式之间的差别,还有各种自拍加的滤镜的工作原理等等,怎么说的,研究这个并没有卵用,只是我自己的业余爱好,希望不喜欢听的同学不要去留言说,你研究这个有啥用了,我也知道,真的没啥用。因为我上一次做电脑开机的那个音频,非得有人去问研究这个能让电脑变快么?如果不能,还不如装个360一键加速呢...在这个节目里,主要讲两个浏览器,一个是Firefox,一个是chrome和safari和Opera。至于为什么把chrome和safari还有Opera放在一起讲呢?那是因为这三个浏览器用的是相同的排版引擎,是苹果的WebKit,是开源的。其实这个项目最初也不是苹果原创的,而是苹果基于另一个开源项目,那个开源项目是KDE的HTML排版引擎,名字叫KHTML,还有一个KDE的另一个Javascript引擎,名字叫KJS。苹果公司开始的时候是基于这两个开源项目,做出了自己的项目,名字分别是WebCore,这个对应于KDE的KHTML,另一个项目叫JavascriptCore,这个对应于KDE的KJS这个项目。这个两个项目的目的是可以移植到OS X系统上,毕竟人家苹果是商业公司,而且苹果做的事情非常的合乎法律,给KDE的KHTML和KJS也作出了不少的技术改进,然后KDE的这两个项目,也获益匪浅吧,起码开始的时候是这样。如果用过苹果电脑的同学,尤其是早期的苹果电脑,苹果电脑上是没有一个特别靠谱的浏览器,这东西可能是不太容易做。苹果电脑上一度装微软出的InternetExplore 5浏览器,其实微软和苹果之间,有说不清道不明的爱慕关系,经常互相帮助,相爱相杀。苹果公司就基于这两个东西,然后就推出了自己的浏览器,也就是safari浏览器,,2003年发布的,safari浏览器。这个浏览器我用过,因为那时候我正在读本科,要去做实验,学校的实验室里新买了一批设备,这批设备需要处理数据的就是一台iMac,当年是新款的,那也是我第一次使用苹果电脑。刚开始感觉并不好用。现在记忆最深刻的就是这台苹果电脑,还有一台离心机,非常大的离心机,可能得有直径1米多,然后我有个同学突发奇想,把刚洗过的衬衫塞进去,想看看能不能把衣服甩干,然后甩了10来分钟,衬衫甩成了破布,已经不能穿了。实验室去了好几年,结果,就记住了这两件事情,一台苹果电脑,一个离心机,其它的都忘记了。继续来说苹果,然后苹果对webkit的改进越来越多,和开源社区也就越走越远,再后来,就彻底分手了。这个分手只是和KHTML那个项目分手了,具体的分手过程,我记得KDE的一个开发者曾经写过一个文章,来吐槽这件事情,当年在开源届也算引起过不大不小的轰动,甚至让Apple公司吓得赶紧联系KHTML的开发者,看看还能不能复婚,别那么快离婚。后来KHTML这个项目确实又从Apple中接受了不少新的特性,来改进KHTML的渲染速度。但是,我猜测的一个原因,Apple是商业公司,KDE是开源组织,商业组织是向钱看,我说的向钱看是金钱的钱,开源组织是不太注重金钱驱动的,结果呢,这些开源的项目因为不赚钱,大家紧张了一阵子,又开始跟不上苹果的节奏了,因为商业公司的项目推进能力,远远高于开源组织,结果,最后还是闹分手了。其实,开源组织有时候吧,赚不到钱,只能兼职做做,很多时候项目的质量并没有商业公司高,在后来,Apple的webkit在很多方面全面超越了KHTML。当然,KDE也知道这件事儿,从KDE4.5开始,KDE就已经使用苹果的webkit这个开源组件,当然了,开源的那个KHTML还是继续开发,也继续用在KDE上吗。苹果也在继续开发webkit,开发的成果也继续开源。可能有很多人觉得,苹果太尼玛封闭了,其实不是的,苹果是个商业公司,他肯定首先考虑的是商业利益,如果开源能获得巨大的商业利益,他肯定开源,所以,苹果开源了几个大杀器,黑科技。其中我知道的几个有前面我说的这个webki,还有一个大杀器是llvm,这个项目也极其重要,既然说到这里了,我就稍微的说一下,llvm呢,是一个开源的编译器项目,是C++写的。以前,包括现在,最重要的开源的编译器是gcc,就是理查德斯托曼做的那个gcc项目,曾经,gcc是开源届的核心地位,现在也差不多,因为几乎所有的开源软件,都需要使用gcc来编译成二进制代码,然后,这个组织脾气不太好,基本上处于那个地位,可能总是有缺点吧,而且处于核心地位,缺点也容易被放大,gcc可以说是在所有开源项目中,受到的批评最多的一个,比linux都多。但是,即使收到批评,你还不得不用它,苹果就是这样,给gcc捐献了大笔的钞票,没啥效果,因为有求于gcc的,可不止苹果一家。然后,苹果公司就搞了一个LLVM项目,来代替gcc在开源中的地位,LLVM是一个简称,全称是Low Level Vitual Machine,全称没啥人知道,我也是google一下,才敢写在这里。然后,LLVM太重要了,还获得了ACM颁发的一个大奖,来奖励Apple开源的这个LLVM项目。然后Apple率先垂范,把Gcc从默认编译器的位置拉了下来。因为Gcc这个项目组,和其它大的开源项目组,之间的龌龊事情也不少,比如FreeBSD项目也是早就看Gcc不爽了,但是,苦于自己没有编译器,只能忍气吞声,结果LLVM一出来,FreeBSD马上就把GCC给集成进来的,然后,一个以前看起来非常狂妄自大的计划被FreeBSD提上了日程,不光gcc,而是要把所有GNU组件都替换出来,然后就有了lldb, libc,compiler-rt这一系列项目,个人觉得,以FreeBSD社区那种比较高贵的气质,完全替换掉GNU项目,是有很大可能的。这一切,都是Apple花了5年时间,搞出来了一个LLVM,然后把这个编译器项目开源的原因。llvm的logo是我最喜欢的logo稍微跑了一下题,拐到编译器上了,再强行拐回来,继续说Apple这个webkit。苹果继续改进webkit,然后webkit也就越来越好用,速度越来越快,然后呢,另一家公司叫Google,也打算做个浏览器,二话不说,直接把苹果开源的这个引擎webkit拿过来就用,这是合乎法律的,因为开源么。然后一贯嘴上说不作恶的google公司实际上恶心事儿也干过不少的google和一贯表面非常高冷但是私底下对政府部门低三下四的apple公司又杠上了。chrome继承了apple公司的webkit,然后加以改进,把认为不行的代码丢了,尤其是javascript的部分,用了自己引以为豪的v8引擎,这个v8引擎的横空出世,让很多人也是惊讶的不行,然后javascript开始从前端到后段,差点儿通吃。让不少程序员惊呼,我操,js这是要上天么?然后,后来发现这种担心是多余的,因为前段进入了百花齐放的时代,每年都会出现至少365个javascript写的库,每天一个吧,然后循环往复,至今已经持续了好几年了。这个话题太容易引起争端,那个前端库更好呢?这个得看情况,因为一旦争论结束,又会出现更多新的js库,没办法,程序员就是这么搞笑,还是老老实实的用php这个世界上最好的语言靠谱。然后google的chrome是世界上占有率第一的浏览器,由于在中国某种神秘的力量,chrome的占有率很可能是倒数第一,如果你看到有人用chrome,很可能他就是个程序员。接下来,还有一个更小众的浏览器,他的名字叫Opera,据说已经被中国的360公司收购了,这家公司浏览器的引擎,也是webkit。因此,chrome/safari/opera,这三个浏览器,在渲染方面,大同小异,来自一个妈。另外一个分支就是大名鼎鼎的火狐浏览器,Firefox,这个在国内可能用的人也不多,如果你看到有人用firefox,可能,也是个程序员,如果你看到桌面上有三四个浏览器,并且同时使用,那100%是个前端程序员,尤其是你看到有人还在测试Internet Explorer 6这个浏览器,那100%是个给中国国企开发软件的前端程序员,中国国企和IE6这个浏览器,已经水乳交融,今生今世都不再分离了,即使这个浏览器已经15岁了,15岁,在IT行业,和永远一样远。但是,大型国企爱IE6,比如说,在2016年,我看到过某大型钢铁企业,赫然写着网站要支持IE6,真是让我百思不得其解的一件事情。火狐浏览器用的引擎的名字叫Gecko, 这个软件,曾经一度讨论要不要也把引擎换成webkit,最后,还是继续用这个Gecko,在英语中是壁虎的意思。好了,背景就介绍到这里,微软的不考虑了,他有自己独特的渲染引擎,但是,可以研究他家引擎源代码的,就是微软的人,网上可以找到的材料并不多。这里只讲这两个引擎,一个是webkit,用这个引擎的有三个浏览器,chrome,safari和opera;还有一个是Gecko,用这个引擎的是Firefox。·这些浏览器虽然各不相同,但是作用是类似的,就是能把你要求的东西显示出来,并且,不同的浏览器,显示的样子大同小异,稍微的有一些不同。因为不同的厂商出品的浏览器,是有一些细微的不同。之所以能显示的大同小异,是因为,这些厂商都要遵守一个协议,这些标准就是HTML和CSS,这些标准由一个公益组织来管理,这个公益组织的名字叫W3C,中文名叫万维网联盟来维护。我们上网的过程,就是把HTML和CSS的内容从网站上下载下来,然后将这些内容解析以后,显示在屏幕上。这个过程,需要用到的核心技术就是我上面所提到的两个引擎,webkit和Gecko的工作。负责显示请求的内容,把网站上下载下来的HTML和CSS,解析以后,展现出来。我对这个过程非常的好奇,好多年前,我就对浏览器是如何工作的非常的好奇,然后就研究了一下,自以为可以把自己给糊弄过去了,因此,我就说一下那两个引擎的工作原理。主要的流程是这样的,显示引擎会从网络层请求需要显示的文档,然后引擎开始工作。因为所有的网页都是HTML和CSS文档,引擎开始解析这个HTML文档,将整个文档解析成两棵树,一棵树叫内容树,这棵树上的节点是HTML的标记。还有一棵树叫呈现树,这棵树势解析样式元素,呈现树是节点的样式,比如字体的大小,颜色等等。呈现树主要是带有视觉属性比如颜色啊,尺寸啊,背景等等的一些矩形,这些矩形呢,就按照一定的顺序显示在屏幕上。当这个视觉效果显示出来以后,也就是一些矩形。再进入下一个阶段,就是将内容树的节点,计算一个坐标,每个节点都有一个独一无二的位置。有了这两个信息,再然后就是根据这两个信息,把内容绘制到屏幕上,引擎会遍历整棵树,然后将树上的每个节点,都画在屏幕上。web browser architecture为了能有更好的用户体验,引擎肯定是将内容以最快的速度画到屏幕上,而不是等所有的内容都下载完毕,才开始绘图,那样是非常影响用户体验的。所以,我们经常会碰到这种情况,某个地方的图片还没有显示出来,只显示一个空白,文字比图片更快的显示出来。这是一种特征,不是bug。引擎不是等所有的HTML文档都解析完毕以后,才开始绘制,如果那样,碰到一个网速很慢的,网页很大的,黄花菜都凉了,那样会非常的影响用户体验。正确的展示流程是,有多少显示多少,只要有内容过来,就赶紧的先给用户看一点,不必等所有内容都下载完成。那是不是webkit和Gecko是一样的呢?当然不是一样的,如果是一样的,那何必还要两个引擎呢?但是这两个引擎所采用的方法肯定不会有质的差别,如果有质的差别,两个都是开源的项目,那开发人员早就抄袭了,显然,这两个引擎所采用的方法大同小异。接下来呢,我要具体的描述这两个引擎所采用的方法。在讲技术之前,先得讲一个网页的技术,叫DOM,这个做前端的程序员肯定都是知道的,Web就是基于DOM的,比如说现在前端用的最多的一个javascript库叫jQuery,这个库本质上就是一个操作DOM的工具,这个库现在是越来越大,1.8的时候,原始大小200多K,优化以后也得100来k,其实这样挺大的,尤其是考虑到大部分人用jQuery就是实现了1-2个效果,结果让自己的网页增加了100多K,想想我这个不是前端的程序员,就很不爽,当然也有解决方案,比如zepto.js就是解决这个问题的,只增加了20多k。那唠叨了这么多,到底什么是DOM呢?这是一个英文的缩写,全称是Document Object Model。我们可以把DOM看作是节点,每个节点就是一个HTML的标签,那如何解析成树呢?这就是一个编译原理的问题了。还记得前面我讲苹果开源的那个LLVM么?那就是编译器,因为我试图把这个问题讲清楚,起码能加深我自己的印象,这次的时间又到了,下次,我要讲如何把HTML文档解析成一棵树,期间会用到编译器的知识,就是解析器和词法分析器。好了,下次再见。如果你喜欢我讲的这种钻牛角尖的内容,欢迎关注我的微信公众号——软件那些事儿——我这个公众号不扰民,每周推送一次,每次的观看量大概是300次左右。

25mins

24 Dec 2016

Rank #13

Podcast cover

191. Google公司创始人小时候的故事 | 软件那些事儿

27mins

27 Feb 2019

Rank #14

Podcast cover

35. Linux传奇(2):Linus的童年

Linus的童年

14mins

11 Aug 2016

Rank #15

Podcast cover

61. facebook(1):哈佛高材生

16mins

25 Sep 2016

Rank #16

Podcast cover

118. 现代CPU之父(下)

26mins

30 Sep 2017

Rank #17

Podcast cover

复刻版2. Java语言的前生今世(2)

这一期以前没有文字,因为我把文字搞丢了,今天我在翻我电脑里的备份,然后惊奇的发现,它还藏在电脑里。然后我就重新发一下,起码有文字版了。另外我重新录了一下音,以前录音没经验,就是一个手机,导致杂音超大。后来我插上耳机后,然后用背景音乐把杂音给掩盖一下。我的录音设备就是一个手机加一个耳机,然后再使用Audacity这个软件加上背景音乐来掩盖马路上的杂音。上一期提到,太阳公司一个年轻的程序员,帕特里克诺顿,给公司提出了一份言辞尖锐的备忘录,我对这份备忘录很好奇,到底写了些什么呢?这份备忘录,主要有两部分内容,一部分内容是,列出了太阳公司的缺点,另一部分内容,则是对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重新焕发青春的故事。

30mins

15 Nov 2016

Rank #18

Podcast cover

148. 他俩是最完美的IT创业搭档 | 软件那些事儿

RT

26mins

10 Apr 2018

Rank #19

Podcast cover

152. “不尽人情”的亚马逊创始人贝佐斯 | 软件那些事儿

没有

27mins

2 May 2018

Rank #20