深入探讨:微软拥抱开源背后的真正原因

译文
开源 新闻
说起微软的开源史,用好听的话形容叫“充满波折”。他们在九十年代末制定了最初的开源发展战略,后经过万圣节文件泄露事件,证明所谓“发展战略”就是破坏和攻击开源项目,尤其是通过对SCO系统的赞助打压Linux。不过比起激进的口水战,微软在实际操作上显得更为务实,至少从表面上看起来是这样。

【51CTO 4月24日外电头条】就在前不久,微软以异常低调的姿态发布了一条令人意外的消息:一家以微软全资子公司身份亮相的新企业正式亮相,并将专门负责开源项目的相关工作。微软开放技术部门新任总裁Jean Paoli在自己博客中的撰文评述则进一步令这一消息板上钉钉。不过多疑的我还是希望能跟这位微软内部人士拉拉关系,希望得到点更确凿的消息——尤其是微软决定走这步棋的原因——遗憾的是Paoli这老小子口风极严,还明确在自己的博客上表示“无可奉告”。微软这一次把原先负责过开源项目的管理人员一股脑划给了这家新公司,而据我的了解,这些搞开源的家伙们还是比较八卦的。正是在这样的背景下,我感到这种沉默背后一定隐藏着些什么。

说起微软的开源史,用好听的话形容叫“充满波折”。他们在九十年代末制定了最初的开源发展战略,后经过万圣节文件泄露事件,证明所谓“发展战略”就是破坏和攻击开源项目,尤其是通过对SCO系统的赞助打压Linux。Steve Ballmer当时对Linux有一段著名的评述,他认为Linux是“一种扩散能力极强的癌症……能够沾染到一切与之相接触的事物上”(当然他指的是开源机制本身,而不仅限于Linux)。而且据我所知,他从未公开撤回这种言论。

不过比起激进的口水战,微软在实际操作上显得更为务实,至少从表面上看起来是这样。

微软当然已经意识到,开源是软件市场中难以清除甚至不可或缺的重要组成部分;基于清醒的认识,他们没有采取盲目打压的态度,而是有目的、有组织地对开源项目进行分化,并将自己的影响力逐渐向开源领域拓展。事实上,微软是Linux系统最大的十七家赞助商之一,在非营利性基金会中主持日常事务,并为Apache软件基金会提供经济援助。除此之外,微软还会定期以赞助商身份出现在重大开源活动当中,用笑脸接待每一位开源爱好者。

开源如今已经遍布整个微软公司,尽管开源方案还没有带来任何核心级产品,但发展的基础架构事实上已经齐备。然而微软绝不甘心被自己的对手所同化,他们在幕后继续玩弄手段来破坏开源发展。就在本周,在FOIA(即信息自由法案)的理论支持下,Glyn Moody用实际情况痛斥了微软在英国对开放标准的恶意攻击。

至于这次新成立的子公司,我们不妨将其看作微软在开源实用主义方面的尝试。正如Paoli所谨慎地指出,子公司的出现完全不会影响微软项目中已存的任何承诺及立场。不过如果真像他说的这样,那新公司还有什么存在的必要?从我个人的角度,实在是没看出微软高层对开源的态度有放缓的迹象。尽管Ballmer已经不再公开对开源项目冷嘲热讽,但在实际层面上市场正在逼迫微软对开源继续痛下杀手。

由于微软不会公开跟我们这些围观群众讨论新开源子公司的存在意义,那我就谨代表自己推测一下他们的动机。可能的解释有如下四种:

  1. 本质是合并。 这家新的子公司实际上把微软内部现有的标准及开源团队加以整合,并以“提高互通性”的名义对资源进行了重组。互通性这种说法对于不了解内情的人来说可能听起来很美,但这其实就是“要么听话、要么滚蛋”或者“孤立刺头”的另一种表达方式。对于开源领域的大部分开发人员来说,这种噱头跟“贡献”或“参与”等空话的号召力在一个水平上。这家新子公司以Paoli负责的互通性小组为核心,基本可以确定为换汤不换药的老把戏。另外微软内部原先还有个叫平台战略集团的部门——专门负责与Linux项目的交互——我听说现在也已经并入云业务部门了。
  2. 创造新的职业发展道路。 Jean Paoli的确是个人物,在原版XML规范当中他还作为项目参与者留下过大名,并且一直辛勤地在规范类工作中贡献心力。在规范研发领域举足轻重的技术人员与间谍机构首脑颇有相似之处:领导者需要他们的帮助,却又不希望他们出现在公众面前。正如旧上海青帮头子杜月笙所说,夜壶有用,却永远没机会摆上台面。由于这种背景,像Paoli这样的技术人员在大多数企业中都很难找到合适的职业发展道路。不过现在好了,新子公司成为Paoli和他团队的一种变相奖励,以回馈大家对企业的忠诚与贡献。虽然要用这种方式留住员工似乎显得太过昂贵和复杂,但其真实性仍然是很可能存在的,而且忠臣良将获得嘉奖也有种浪漫主义情怀充斥其中。
  3. 开源许可的保护作用。 像GNU GPL v3这样的许可对于开源项目来说算得上是一种基础,而且这些许可也确实很好地保护了开源社区的健康发展。事实上,如果谷歌当初在Android系统中使用了GPL版本的OpenJDK,那么甲骨文公司很可能根本找不到机会将其告上法庭。然而,许可本身的保护作用主要体现在企业的参与者身份、尤其是其对专利的处理方式上。大多数现代许可都会包含缓和专利矛盾的内容,力图避免社区贡献者出于利益推动而让专利使用者身陷诉讼。此外,许可还会以明确或暗示的方式保证贡献者在使用专利时免受意外麻烦的困扰。有了这么一家独立的分支机构,微软也就有了应对矛盾的避风港。开源子公司作为开源社区的贡献者,完全可以令微软不必再为许可有效期之类的琐事而头痛;尤其是在前者的资助下,那些使用费用昂贵的专利无法对微软造成任何实质性的威胁。
  4. 专利责任的保护作用。 经过多年的反复考证,无论是在事实角度还是在法律角度,微软如今已经成为软件专利的狂热拥护者——尤其是在挖掘潜在商业价值方面(他们甚至通过技术手段将从IBM策反‘软件发明人’的行为变成光明正大的合法行为)。如今,微软正在积极游说RAND(以强制收费著称的专利使用许可),试图将这套许可变成行业标准。一旦目的达成,微软将用实际行动告诉世人,“站在巨人的肩膀上”是需要付出代价的。不过微软自己也必须小心谨慎,确保在用“专利炸弹”坑害别人的同时,不能玩火自焚被别人摆上一道。而开源子公司的出现则化解了微软的担忧,无论是赔偿专业使用费还是被指控剽窃,这家新企业都可以成为一面有力的挡箭牌。

这里我要着重强调第三点和第四点。微软曾经出于这两种原因启动了Outercurve基金会,并把其当作开源项目的外包研发委托者——也就是说微软以这种方式将自己彻底置身事外,而不必再受任何法律风险及潜在麻烦的困扰。在上文汇总出的四大理由当中,后两点在我看来可能性最大。我认为就微软公司而言,什么开放式技术都是瞎扯淡,法律层面上的防火墙才是他们搞开源的真正目的。不许别人占微软便宜,只许微软占别人便宜,开源在他们眼中已经沦为一种彻头彻尾的赢利工具。Jean Paoli表示:

这种独立式企业结构能够使子公司更快、更便捷地发布并更新开源软件,进而将来自社区的资助与贡献全部纳入现有的开源工作当中。随着时间的推移,社区将与开放式规范与开源行业在交互方面达到前所未有的高度。

正如高通公司早期打造的高通创新中心,微软如今也尝试利用开放式技术建立起一套理想的防火墙,用于保护自己免受当下及未来各类开源及开放式规范的威胁。当初的Outercurve基金会为什么没能达成这一目的?这一点我不得而知,连Outercurve自己可能都说不清楚——根据行政总监Paula Hunter的说法,微软当时没有经过任何咨询或者讨论,直接一拍脑门就敲定了这一构想。

这样的保护机制为微软提供了堪称全方位的利益保障。它不仅减少了微软在开发项目时来自臃肿而保守的法律部门的阻力,更帮助企业在开源之势不可逆转的今天占得先机,进而使业务流程得以顺利实施。从这个角度来看,微软也算是为开源业界做了件好事。但与此同时,摆脱了束缚的微软必将继续对自己的专利许可展开扩张,并逐渐蚕食那些真正有志于开源创新的开发人员们的生存空间。而一旦发生纠纷,这家名为微软开放式技术的子公司将迅速跳出来,以社区赞助商的名义帮助母企业洗脱罪名。

这家子公司的出现对于开源领域来说到底是好消息还是坏消息?时间会证明一切,不过这至少代表着一种良好的趋势。大家不再以充满敌意的态度进行争论,而是以积极参与的立场解决问题。不过微软公司内部对开源问题的看法仍然存在分歧,领导层的变动也可能对未来的处理方式产生影响,这一切都可能导致绿色巨人以一种完全不同的角度看待开源。不过将来的事情谁说得准呢?也许有一天我们会看到微软通过核心产品为开源市场及社区带来补充与支持,而不仅仅是像现在这样满怀忌恨地瞪着这群初生牛犊不怕虎的晚辈。

原文:The real reason behind Microsoft's leap into open source

 

责任编辑:yangsai 来源: 51CTO.com
相关推荐

2009-12-23 16:13:00

WPF Attache

2010-03-31 14:58:03

云计算

2009-12-07 16:07:03

PHP类的继承

2010-07-21 09:38:15

PHP缓存技术

2010-11-22 14:18:32

MySQL锁机制

2009-11-20 17:17:08

Oracle函数索引

2021-05-17 05:36:02

CSS 文字动画技巧

2009-10-16 18:20:07

综合布线系统

2009-12-01 16:34:21

PHP表单

2023-10-23 12:35:36

Golang追加操作

2011-02-25 09:23:00

Java类加载器

2010-03-05 13:44:00

Python序列

2009-08-27 11:27:58

foreach语句C# foreach语

2015-09-02 08:57:56

JavaHashMap工作原理

2023-01-12 17:18:06

数据库多云

2012-02-28 14:43:43

2017-01-03 17:57:46

Android异步精髓Handler

2009-12-14 14:40:10

Ruby全局域变量

2009-10-16 09:17:39

屏蔽布线系统

2009-11-12 13:56:54

点赞
收藏

51CTO技术栈公众号