Joel告诉你为何大公司纷纷投资开源

最近Apple免费提供Mac OS X Mavericks, Apple意欲何为?为何微软不效仿苹果?著名的开发者Joel在其博客Joel on Software讨论过大公司投资开源背后的经济学原理。相信读过他的博客后,你就能明白上面两个问题的答案。


经济学的互补原理

我在上大学的时候,选择了两门经济学的入门课程:宏观经济学和微观经济学。宏观经济学充满了站不住脚的理论,比如低就业率导致了通货膨胀之类。微观经济学很酷并且很有用。它充满了关于真正起作用的供需关系的有趣概念。例如,如果有一个竞争者降低了价格,那么你的产品需求会降低,除非你也降价。


计算机公司的情况是相似的。一直以来,关于开源软件,我注意到一些有趣的事情。大部分公司使用巨额花费开发开源软件,因为这对他们来说是一种好的商业策略,而不是因为他们突然停止信仰资本主义,爱上了*软件。市场上的每个产品都有替代品和补充品。鸡肉是牛肉的替代品。如果你是个养鸡场场主,牛肉价格贵了,人们会需要更多的鸡肉,你会卖出更多鸡。汽油和汽车是补充品。计算机硬件是计算机操作系统的补充品。保姆是一家好餐厅餐桌的补充品。在一个小城镇,当本地五星饭店有2+1情人节套餐,保姆会收双倍的小费。(实际上,9岁之前的需要看护服务)。


相应地,一个产品的补充品降价的时候,对该产品的需求就会增加。

或许你在打盹了,请允许我重复一下,因为这很重要。当一个产品的需求增加时,它的附属品的价格会下降。例如,如果去迈阿密的航班便宜了,迈阿密宾馆的需求会增加——因为有更多的人飞到迈阿密,他们需要预订一个房间。如果计算机便宜了,更多的人会买,并且他们都需要操作系统。这样对操作系统的需求就增加了,也就是说,操作系统可以加价了。


或许有人会否认这一点:啊,linux是免费的。好吧。首先,当一个经济学家考虑价格的时候,他们考虑的是总体价格,包括一些不可见的东西,比如卖掉所有东西花费的时间,重新教育每个人的开销,改变已有流程的开销,等等。


第二,那些使用免费作为论据的人,试图相信他们不必遵守经济规律。他们主张其成本为0,可以乘以任何东西。举个例子吧,Slashdot询问linux开发者Moshe Bar,将来的linux内核是否可以兼容已有的设备驱动,他说他们不需要这么做。私有软件调试每行代码需要花费50到200美元。这样的价格不适用于开源软件。Moshe同时主张,linux 内核版本让已有驱动过时是 OK

的,因为重写这些已有驱动的成本是0。完全错了。按照他的理论,花费一点编程时间使得内核兼容已有驱动,和花费大量的编程时间重写每个驱动是等价的——因为每个数字都要乘以他们的成本,而他认为成本是0。


显然这很荒谬。重写每个已有的驱动所花费的成千上万的开发者时间,这些都是成本。等到这些完成之后,linux仍然会在市场上面临障碍,因为在重写已有驱动的时候,新的硬件又生产出来了,这些新生产出的硬件linux尚未支持。为什么不把这些所谓的“零成本”用到别的地方去呢?比如改善Gnome?或者支持更多新硬件?


调试代码不是免费的,不管是专有的还是开源的。尽管你没有花钱购买,仍然存在我在上大学的时候,选择了两门经济学的入门课程:宏观经济学和微观经济学。宏观经济学充满了站不住脚的理论,像是低就业率导致了通货膨胀论调。微观资料很酷并且很有用。它充满了关于真正起作用的供需关系有趣的概念。例如,如果有一个竞争者降低了价格,你的产品需求会降低,除非你也降价。


计算机公司的情况是相似的。一直以来,关于开源软件,我注意到一些有趣的事情。大部分公司使用巨额花费开发开源软件,因为这对他们来说是一种好的商业策略,而不是因为他们突然停止信仰资本主义,爱上了*软件。市场上的每个产品都有替代品和补充品。鸡肉是牛肉的替代品。如果你是个养鸡场场主,牛肉价格贵了,人们会需要更多的鸡肉,你会卖出更多鸡。汽油和汽车是补充品。计算机硬件是计算机操作系统的补充品。保姆是一家好餐厅餐桌的补充品。在一个小城镇,当本地五星饭店有2+1情人节套餐,保姆会收双倍的小费。(实际上,9岁之前的需要看护服务)。


相应地,一个产品的补充品降价的时候,对该产品的需求就会增加。

或许你在打盹了,请允许我重复一下,因为这很重要的。当一个产品的需求增加时,它的附属品的价格会下降。例如,如果去迈阿密的航班便宜了,迈阿密宾馆的需求会增加——因为有更多的人飞到迈阿密,他们需要预订一个房间。如果计算机便宜了,更多的人会买,并且他们都需要操作系统。这样对操作系统的需求就增加了,也就是说,操作系统可以加价了。


或许有人会否认这一点:啊,linux是免费的。好吧。首先,当一个经济学家考虑价格的时候,他们考虑的是总体价格,包括一些不可见的东西,比如卖掉所有东西花费的时间,重新教育每个人的开销,改变已有流程的开销,等等。


第二,那些使用免费作为论据的人,试图相信他们不必遵守经济规律。他们主张其成本为0,可以乘以任何东西。举个例子吧,Slashdot询问linux开发者Moshe Bar,将来的linux 内核是否可以兼容已有的设备驱动,他说他们不需要这么做。私有软件每行调试代码需要花费50到200美元。这样的价格不适用于开源软件。Moshe同时主张,linux 内核版本让已有驱动过时是 OK 的,因为重写这些已有驱动的成本是0。完全错了。按照他的理论,花费一点编程时间使得内核兼容已有驱动,和花费大量的编程时间重写每个驱动是等价的——因为每个数字都要乘以他们的成本,而他认为成本是0。显然这很荒谬。重写每个已有的驱动所花费的成千上万的开发者时间,这些都是成本。等到这些完成之后,linux仍然会在市场上面临障碍,因为在重写已有驱动的时候,新的硬件又生产出来了,这些新生产出的硬件linux尚未支持。为什么不把这些所谓的“零成本”用到别的地方去呢?比如改善Gnome?或者支持更多新硬件?


调试代码不是免费的,不管是专有的还是开源的。尽管你没有花钱购买,它仍然有机会成本和时间成本。为开源软件编程的有才能的志愿者是有限的。相同目标的开源项目间要为有限的编程资源相互竞争,只有最性感的项目会有比实际需要更多的志愿开发者。总之,我不怎么认同那些关于免费软件的狂野经济学,我想他们犯了除数为0的错误。


开源代码没有被排除在万有引力定律、经济学定律之外。 Eazel ArsDigita便是一个例子。这个公司以VA linux著称,在关闭之前也做过很多其它尝试。而令开源社区的大部分成员难以理解的是:一些追求股东最大利益的大公司,却投入了大量的资金用于支持开源软件,它们通常会雇佣许多程序员为开源软件工作。这需要用互补理论来解释。


我想再次强调的是:当补充品的价格下降的时候,产品需求会增长。一般而言,一个公司的战略目标是使它的补充品的价格尽可能得低。理论上,最低的可持续的价格就是“日用品价格”——当有大量的竞争者提供同质的商品的时候,日用品价格便出现了。


精明的公司会让其产品的补充品变成日用品。

如果你能做到这一点,那么你的产品需求就会增加,你可以开一个更高的价格,也可以生产更多的商品。


IBM设计PC的时候,他们使用了现成的部件,而不是定制的部件。在他们革命性的IBM-PC技术参考手册中,他们为部件接口撰写了详细的文档。为何如此?这样其它的制造商就能够加入他们。只要你的产品和接口匹配,你的产品就能在PC上使用。IBM的目标是日用品化配件市场, 也就是提供PC配件的市场。在这一点上他们很成功。很快,无数公司出现了,为PC提供内存卡、硬件驱动、图形卡、打印机,等等。公司迅速成长。便宜的附件意味着对PC更多的需求。


当IBM从微软获得了PC-DOS操作系统的版权,微软非常小心,没有销售排除性授权。这样,微软就能够将同样的产品授权给康柏和其它上百个贴牌厂商。这些厂商合法的克隆IBM PC,使用IBM的文档。微软的目标是日用品化PC市场。。很快PC自身就成为了最平常的商品,不断降低的价格,不断增长的性能,激烈的竞争使得PC很难获得利润。低廉的价格,当然,带来了需求的增长。对PC的需求增长了,那么相应地,对其补充品MS-DOS的需求自然就增加了。道理是一样的,需求越大,赚得越多。这就是为什么比尔盖茨可以买下瑞士,而你不可以。


现在微软想在新游戏平台Xbox上做类似的事情,使用普通的PC硬件替代定制的部件。 理论上来说,普通的硬件一年年地变得便宜,因此Xbox的价格也能够随之下降。不幸的是似乎有种反作用力:虽然普通PC硬件的价格压得很低,但Xbox的制作成本却没有降得微软所希望的那么快。微软Xbox的另一个策略是使用DirectX,这是一个图形库,用它写的代码能在所有的显卡上运行。这一策略的目标是日用品化显卡类商品,降低它们的价格,使得游戏卖得越多,这里面有很大的利润。那么为什么世界上的显卡厂商不试图日用品化游戏呢?因为这要困难得多。如果Halo游戏卖得很疯狂,它实际上没有替代品。如果你打算去电影院看星球大战:克隆人的进攻,那你不会把Woody Allen的电影当成替代品。或许它们都是好电影,但是它们不能替代对方。所以说,你希望你是游戏发行商还是显卡产商呢?


日用品化你的补充品。

理解这种商业策略,便能解释为什么商业公司在开源项目上做出这么大的贡献。让我们看一下。


头条:IBM花费了数百万开发开源软件

迷思:他们这么做是因为Lou Gerstner读过GNU

Manifesto,并且决定他不想做一个资本家。

事实:他们这么做是因为IBM正转变为一个IT 咨询公司。IT

咨询公司是企业软件的互补品。因此IBM需要日用品化企业软件,最好的方式就是支持开源。他们的咨询在这个策略上收获颇丰。


头条:Netscape开源他们的网络浏览器

迷思:他们这么做为了从新西兰网吧里的网民那里获取免费的代码贡献。


事实:他们这么做是为了日用品化网络浏览器。 这是Netscape的一贯策略。看一下Netscape发布初版的通稿:浏览器是免费的。Netscape开源了浏览器,所以他们可以在服务器上挣钱。浏览器和服务器是典型的互补品。浏览器越便宜,你就能卖出更多的服务器。这才是1994年10月份发生的状况。(事实上,当MCI进入这一市场并且赚取大量金钱之后,Netscape才惊讶地发现他们本可以在浏览器上赚取利润的。当然,就他们的生意计划而言,他们不必如此。)


Netscape将Mozilla作为开源软件发布,是因为他们发现这是一个降低开发浏览器的成本的机会。通过削减开销,他们在日用品化的浏览器上获得利润。


后来AOL/Time Warner收购了Netscape。原本被认为是日用品化的浏览器利益点的服务器,并没有想象的那么好,于是它被抛弃了。那么为什么AOL/time warner 继续投资开源软件呢?


AOL/Time warner是一家娱乐公司。娱乐公司是承载所有类型娱乐的平台,包括网络浏览器。这个巨大的联合企业的策略和兴趣是传播娱乐内容,至于网络浏览器,那是日用品,没人可以通过它赚钱。


我的观点有些不太准,因为IE也是免费的。微软也想把网络浏览器变成日用品。这样他们就能够卖桌面和服务器操作系统。他们走得更远,提供了了一系列的组件,每个人都可以用它们来组装一个网络浏览器。Neoplanet,AOL和Juno使用这些组件建立了他们自己的网络浏览器。IE是免费的,这是否激励着Netscape让浏览器变得“更便宜”?这是一个先发制人的策略。他们需要阻止微软获得网络浏览器的垄断,即使网络浏览器是免费的,因为垄断在理论上给了微软一个机会来增加网络浏览的花费,比如说,通过提高Windows价格的方式。


(我的观点并不算太稳固,因为很明显Netscape

在barksdale时期不清楚自己在做什么。一个更确切的解释是Netscape

高级管理在技术上很无能,他们别无选择,只能跟着开发者的计划走。开发者是黑客,不是经济学家,只会碰巧想出一个符合策略的计划。尽管他们质疑。当然他们有权获得无罪推定(我们不该怪他们)。


头条:Transmeta雇佣了Linus,让他进军linux

迷思:他们做这个不过是为了获得一些知名度。你听过关于Transmeta其它方面的东西吗?

事实:transmeta是一家CPU公司。CPU的自然补充品是操作系统。Transmeta希望操作系统能够成为日用品。


头条:Sun和惠普为Ximian开发Gnome支付报酬

迷思:Sun和惠普支持*软件,因为他们喜欢热闹的集市,不是安静的教堂。


事实:Sun和惠普是硬件公司。他们生产机箱。为了从桌面赚钱,它们需要作为桌面补充品的窗口系统内成为日用品。它们为什么不付钱Ximian开发一个私有的Windows操作系统呢?事实上它们真这么试过(Sun拥有NeWS,惠普拥有New

Wave),但是它们本质上是硬件公司,只有粗略的软件技能,它们需要窗口作系统成为便宜的日用品,而不是它们需要花钱的专有优势。所以它们雇佣了Ximian的员工来做这个事。同理,Sun购买了Star


Office,并开放源代码:这是为了日用品化软件,以便在硬件上赚更多的钱。


头条:Sun开发了Java, 新的字节码系统意味着一次编写,到处运行

字节码不是什么新主意——程序员一直努力让他们的代码可以在尽可能多的机器上运行。(同样是在日用品化补充品)。微软很早就有自己的p-code编译器和可移植窗口层,可以让Excel在Mac、windows、OS/2、Motorola、Intel、Alpha、

MIPS 、PowerPC

芯片上运行。Quark有一个在Windows上运行Machintosh代码的层。编程语言 C 也可以看成是平*立的汇编语言。对于软件开发者而言,这不是一个新概念。

如果你可以到处运行你的软件,这就使得硬件更加日用品化了。随着硬件价格的下降,市场扩张了,那么对软件的需求就越来越多(消费者也可以用硬件上省下的钱来购买昂贵的软件)。


Sun对WORA的情结就比较,怎么说呢,奇怪,因为Sun是一个硬件公司。让硬件日用品是他们最不该做的事。


Oooooooooooooooooooops!


Sun是计算机产业巨头。由于无法从愤怒、恐惧和对微软的不情愿中摆脱出来,他们基于愤怒而不是自己的利益调整了策略。Sun的两个策略是,通过宣传和开发*软件(Star

office

Linux、Apache、Gnome等等)使得软件日用品化,通过宣传Java的字节码架构和WORA,使得硬件日用品化。好,来猜一下,当音乐停止的时候,Sun在哪里坐下?如果没有硬件或者软件上的专有优势,你不得不接受日用品化的价格,这仅仅能勉强弥补位于Guadalajara的便宜工厂的成本,但是没法付起在硅谷的便利办公室的支出。


Jared说:“但是,Joel,Sun正在努力日用品化操作系统,比如Transmeta,而不是日用品化硬件”。或许吧,但事实是Java字节码对日用品化硬件也做出了相当的贡献。

从这些例子中你可以看到一件重要的事情,用日用品化硬件很容易(你写一点硬件抽象层,比如Windows

NT的

HAL,很少的代码)但是用硬件去日用品化软件非常困难。软件是不可以互相替代的,正如StarOffice的商业化团队所学到的。尽管价格为0,从微软的office切换的花费却不是0.除非切换成本为0,桌面office软件就不是真正的日用品。即使是微小的差别,软件的切换,也会让你感到切肤之痛。尽管Mozilla有我喜欢的所有特性,即使是为了避免打地鼠弹出游戏广告我也该用Mozilla。但是我还是习惯使用Alt+D回到地址栏。吐槽我吧。一个微小的差别会让产品不再日用品化。但是我还是费了很大的功夫从IBM切换到了Dell电脑,哇,系统运行很正常,就像是在老电脑上运行一样。


Amos Michelson,Creo的CEO,告诉我他要求公司的每个雇员参加一个他叫做“经济思维”的课程。这是一个很好的主意。即使是基本的微观经济学中的简单概念,也有助于理解今天发生的很多根本性的转变。

上一篇:在阿里云容器服务上通过Helm部署Ingress Controller


下一篇:通过阿里云容器服务K8S Ingress Controller实现应用服务的灰度发布