软件行业三十六计之三: 借刀杀人

前面的嘻话里我讲了一些关于开源软件的思考。有一个问题总是萦绕在脑海,也总是有人问起,好像我还没有回答好。那就是,如果开源不以赚钱为目的,为什么公司还趋之若鹜?如果赚了钱,是否还会回馈到社区助其继续成长?

以前我经常举的一个经典例子是”Visual Studio“和”Eclipse“在集成开发环境(IDE)的牛耳之争。

当年,在这个领域领先的软件公司是不愿意免费贡献源代码的。可是2001年11月左右IBM大笔一挥,推出Eclipse社团, 整合了Borland,Together Soft,以及Rational Software等等软件工具开发商的同仁一起推广。

当时大众,包括我在内,得到的印象是,IBM资助了价值4000万美元的源代码,免费提供给软件开发人员使用,以便打破微软在Visual Studio IDE方面事实上的垄断。

当时,Eclipse的名字叫得十分响亮,让人联想到日月食,以至于之后的产品系列有很多命名为太阳系的星球(Europa,Jupiter等等) (参见前面关于程序命名之烦恼的嘻话,咱们学着点!)

由于Eclipse SDK开源,衍生出来的产品也纷纷开源,而且一致地接受Eclipse Public License(EPL)而不是GNU自由软件的GPL,这是因为从商业的角度考虑,IBM的律师把软件授权书字斟句酌,保证不让相关开发商的利益受损。(关于EPL我以后还有一些故事可以讲,但在这里因为不是重点就先略过了)。

在2007年前后,响应Tao Xie(谢涛)和Ahmed Hassan等同事的号召,我们也开始研究软件资料挖掘。

因为对Eclipse相对比较了解,我专门搜集了它6年来演化的源代码,对它的体系结构和模块关系等方面的变化做了一些有益的探索(Wermelinger et al., 2008), 从技术上发现一些有意思的现象。

比如Eclipse体系结构演化从1.0开始就存在一个恒古不变的核心,以不变应万变,利用插件的可扩展性应对了不少需求的可变性,等等(Wermelinger et al., 2009; 2011)。


这里你可以清楚地看到,尽管时时增加和减少插件,Eclipse SDK原始1.0版本的30来个插件中有26个自始至终贯穿所有后续版本的SDK。

进一步分析其错误报告人之间的社交网络及其抽象概念关系,我们发现Eclipse的开发团队也分散在全球各地。

其中多伦多和苏黎世的两个IBM团队为主力,分别维护不同的核心插件(比如加拿大团队@ca.ibm.com专注于PLATFORM界面,瑞士团队@ch.ibm.com专注于Java Development Tool (JDT)界面)。

而个别有影响的成员,比如Erich Gamma@ch.ibm.com(Design Pattern一书的作者)则横跨多个插件项目,作为协调人为他们穿针引线,等等有趣的现象,参见(Wermelinger et al, 2009)。


回到前面的话题,驱动IBM干这么一件大事背后的商业动机究竟是什么呢?Rational Software的Cernosek在回顾Eclipse简短历史的文字里透露了实话(Cernosek,2005)。

原来,当年IBM意识到自己的开发工具已经落伍于竞争对手微软的Visual Studio了。与其逐渐丧失竞争优势,被对手把市场蚕食干净,不如壮士断腕,割血止损。而开源的目的,用一句话,In fact the name “Eclipse” actually means “to eclipse Visual Studio.” 翻译过来就是,Eclipse取名的来由是为了“跳过”Visual Studio,弯道超车。这里的名词Eclipse又可以作为动词用,一语双关!

IBM不愧是商业的老手!在向竞争对手进攻的时候,不忘了笼络一个社团,组织友军,借刀杀人!说句难听的话,开源社区有点被当枪使了。

还好经过多年的发展,Eclipse已经茁壮成长,脱离了纯粹的商业目的。

而微软在这个过程中也表现得很好,处变不惊。事实上,微软还专门为Eclipse开发了不少插件,来引导软件开发人员更方便地进入其阵营。Eclipse的C#语言开发工具也用不少来自于微软的贡献。

时过境迁,今天倒过来看,最后做到你中有我,我中有你,化敌为友了。

对于要不要支持开源软件开发,尤其是在公司的朋友们千万不要过于纠结于一时的利益,看问题要从长计议!

参看文献

Gary Cernosek (2005). A brief history of Eclipse. http://www.ibm.com/developerworks/rational/library/nov05/cernosek/

Michel Wermelinger, Yijun Yu, Angela Lozano, Andrea Capiluppi: Assessing architectural evolution: a case study. Empirical Software Engineering 16(5): 623-666 (2011)

Michel Wermelinger, Yijun Yu, Markus Strohmaier: Using formal concept analysis to construct and visualise hierarchies of socio-technical relations. ICSE Companion 2009: 327-330。

Michel Wermelinger, Yijun Yu: Some Issues in the 'Archaeology' of Software Evolution. GTTSE 2009: 426-445

Wermelinger, Michel; Yu, Yijun and Lozano Rodriguez, Angela (2008). Design Principles in Architectural Evolution: a Case Study. In: Proceedings of the 24th IEEE International Conference on Software Maintenance, 28 Sept - 4 Oct 2008, Beijing, China, IEEE, pp. 396–405.

Michel Wermelinger and Yijun Yu. 2008. Analyzing the evolution of eclipse plugins. In Proceedings of the 2008 international working conference on Mining software repositories (MSR '08). ACM, New York, NY, USA, 133-136.

最后忘了说,这篇小文也是我的“软件行业三十六计”系列嘻话之三:

“借刀杀人是兵法三十六計的第三計,比喻不是透過自己,而是假借別人的手去害人。

原文為:「敌已明,友未定。引友杀敌,不自出力,以《损》推演。」此计的含义是借用一方的力量来消灭另一方的力量。这个计谋經常被使用与演义,历史上有很多与这个成语相关的故事和典故。即使在今天,很多非常吸引人的,高潮迭起的电影也是贯穿着这样的情节。”

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,117评论 4 360
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,963评论 1 290
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 107,897评论 0 240
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,805评论 0 203
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,208评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,535评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,797评论 2 311
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,493评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,215评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,477评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,988评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,325评论 2 252
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,971评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,055评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,807评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,544评论 2 271
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,455评论 2 266

推荐阅读更多精彩内容