`
totoxian
  • 浏览: 1074669 次
  • 性别: Icon_minigender_2
  • 来自: 西安
文章分类
社区版块
存档分类
最新评论

Innovation Happens Elsewhere? - Ron Goldman有关开源模式的访谈

阅读更多
JavaLobby最近的一个议题是java.sun.com对Ron Goldman关于开源复杂性的访谈,里面有些很有趣的想法:

* The key to successful open source projects is passionately shared goals.

* There are always more smart people outside of a company than in it. Hence, "Innovation Happens Elsewhere".

* The biggest misconception managers have is that they can cut back on the number of people in their group working on a project by making open sourcing it, because the community will pick up the slack. But in fact, it's the opposite: An open-source project takes more resources than an internal proprietary one.

* Another misconception is that open source is business as usual and doesn't require fundamental change.

* Open source is not always appropriate and requires solid business reasons. If what a company is thinking of open sourcing is not something that others outside of the company care about, you won't get a community.

* Users are often a neglected resource in open source communities. Because they often are not programmers, they may not get a vote, but who is better than the end-user at evaluating the software?

Hmm....一下子还没捉摸清楚,现记录在这里,comments will follow....

Update 7-18:
加上些自己的想法:

* There are always more smart people outside of a company than in it. Hence, "Innovation Happens Elsewhere".

事实上开源软件的创新性一直是备受争议的, smart people确实是到处都有,但是人家为什么要把innovation奉献给开源可就不好说了。尤其是现在的开源软件,很多都是大公司的战略和全职团队在支撑,即使有少数怀抱自由理想的程序员们,天才如Linus也在不可避免的在某种程度上被边缘化。印象里Eclipse的一个leader曾经说过,Eclipse的实现极少得益于独立的个人捐献,社区更大的作用是在测试。因此我对"Innovation Happens Elsewhere"这种说法有一定的怀疑。作为一个例证,IBM公司从1993年到2002年10年美国专利数量共22357项,2003-2005年分别为3415, 3428, 2941项,远高于前10年的平均数,也就是说,IBM在对开源软件投入越来越大的时候,并未因此减少自身的专利数量。恰恰相反,为了支持开源软件,IBM甚至公开自己的专利给社区免费使用。抛开数字来看事实,在著名的开源软件中,Linux与Unix/Minix,Firefox与Netscape/IE, Eclipse与VisualAge for Java, 还有很多很多其他例子,前者在创新性上无疑都无法与后者相比,但是却无一例外比后者更有生命力。以上这些例子说明,开源软件与其说是"Innovation Happens Elsewhere",不如说是"Dynamics Happens Elsewhere"。确实如此,在我看来,开源软件比商业软件大多强在其用户交互性和用户服务上面。我不是开玩笑,作为一个IBM的员工,公司提供我日常工作中几乎所有用得到的正版软件,但是我还是一个开源软件的忠实用户,无论在什么平台上,firefox, thunderbird, vim, wget,Eclipse都是我离不开的工具,我们团队的大多数人甚至在Windows平台上装了UnixUtil来使用Linux下面的常用工具,为什么?因为这些软件是真正为程序员服务的,它们提供的交互性是面向最终用户的Microsoft工具以及面向企业用户的IBM工具无法相比的,获得这些软件的帮助与bug fixing的快速程度也是Microsoft甚至IBM无法相比的。我所喜爱的工具里面,只有一个不是自由/开源软件,就是TotalCommander,是一个个人维护的共享软件,拥有一个非常类似开源软件的社区。开源软件可能比商业软件出色的原因,不是创新,而是社区提供了足够多的程序员用户,"在足够多的眼球下面,任何错误都是显而易见的",同时在程序员对着程序品头论足的同时,程序本身的设计也在朝着程序员的口味转化。开源软件往往比商业软件更有生命力的原因是,如果一个公司在可预见的时间内不能从某个软件中赚到钱,它往往不会再为此投入,即使这个软件本身有非常好的潜力,而如果它是开源软件,它的生命力会长的多,试想如果Ruby是某个类似Sun的公司在经营而不是一个开源软件,它有多少可能性可以坚持到那个北欧帅哥发明Rails的那一天让它大放异彩;再试想Lua如果不是一个开源软件,它有多少可能性坚持到游戏软件进化到引擎+脚本的架构这一天让它独树一帜;试想OS2如果是个开源软件,它有多少机会可以成为一个市场大获成功的操作系统...这样的例子太多了,连Netscape/VisualAge这样的巨无霸软件被市场打倒了之后都能借Firefox/Eclipse涅磐重生,开源社区给软件注入的生命力可见一斑。还有一个原因可能更容易被大家忽视,软件公司越大,它的产品设计和实施当中非技术因素就越多,这些因素的力量可能远超一般人想象,以至于最终的产品和当初的需求以及设计理念南辕北辙,而开源软件就要纯粹的多,任何一个idea如果不能满足各方面的需要,立刻就会被veto,比如说在Apache的项目里面,任何一个committer对于任何contribution都有一票否决权,而committer权限的获得,不是因为你的公司,不是因为你的职位,甚至不仅仅因为你对这个项目的贡献,更重要的是因为与他人(也就是其他程序员)的沟通和合作,用Apache的官方定义来说,这是一个meritocracy的社区。

* Users are often a neglected resource in open source communities. Because they often are not programmers, they may not get a vote, but who is better than the end-user at evaluating the software?

我非常同意这一点,最终用户很少会参与开源软件的社区,他们在乎的只是开源软件的免费,并且绝望的希望开源软件可以变得"好用"。但是,如前所述,开源软件的生命力在于程序员组成的社区,不接受这种文化和社区就很难接受开源软件的设计, 为什么vi这么难用? 为什么Linux总是做不好桌面? 为什么我没觉得Firefox比IE好在哪里还严重的内存泄漏(抱歉,知道内存泄漏已经是高级用户了)? 经常看到用户在论坛里抱怨说,不考虑用户的软件是不可能有市场的! 天啊,他们难道没有意识到,开源软件原本就是程序员们自己动手丰衣足食的产物(还记得Linus为什么要写Linux? 他有想过要把劳苦大众从M$的帝国中解放出来么?)? 甚至在社区里提问都那样困难,你要按照规矩在bugzilla/jira提交bug report, 要填写平台/版本/模块/优先级甚至还要填写修改难度! 不仅如此,你还要详细描述你的环境,并且最好提供testcase让这个bug可以重现...如果你不照着规矩来,"高手"的回答经常千篇一律是:"谁也没有义务回答你的问题", "高手"们因此写出了种种"提问的智慧"并广泛流传,可惜的是,这种智慧只能用来自娱自乐. 因此用户基本不可能参与社区,也就不可能贡献多少merit, 所以按照开源社区的逻辑,他们就没有cracy。这的确是开源软件与用户之间的gap,而这恰恰就是商业公司可以value-add的地方,有value-add才有oppotunity,才有商业模式。但是这种模式能叫做"Innovation Happens Elsewhere"么?


* Another misconception is that open source is business as usual and doesn't require fundamental change.
恩,我同意,在程序员们的兴趣和商业利益中间寻找平衡是很需要技巧的。这一点在Harmony中间我自信已经有些体会,只是不足为外人道也...

* The biggest misconception managers have is that they can cut back on the number of people in their group working on a project by making open sourcing it, because the community will pick up the slack. But in fact, it's the opposite: An open-source project takes more resources than an internal proprietary one.

Hmmm...某种程度上说是这样的,我所在的团队在准备捐献代码(也就是没有开源)的时候和在开源社区工作以后相比,主观感觉代码生成效率降低很多,我自己现在一半多的力气就是花在社区讨论和review代码上。但是某种程度上又不是这样的,因为IBM贡献出了英国和中国两个小团队,一年时间就看到了一个API覆盖率79%的类库实现,这是不开源的时候无法想象的。
分享到:
评论

相关推荐

    创新在其他地方发生-作为业务战略的开源Innovation Happens Elsewhere - Open Source as Business Strategy

    专注于公司需要做些什么才能使开源成为其业务的一部分。 其中包括一些示例,说明诸如Sun,IBM,HP和Cisco Systems这样的公司如何成功受益于开放源代码的使用。

    shift-happens---依旧大师级

    shift-happens---依旧大师级

    everything-Happens-Here-Ver-O.1:这正在进行中,正在测试ehh的回购。 所有的POC应该合并为int

    关于[这里发生的一切]: : actionSpace的测试页: //bronzwikgk.github.io/ehh-Ver-O.1/actionSpace.html actionSpaceEditor的发布页面: ://bronzwikgk.github.io/everything-Happens-Here-Ver-O 家具测试产品为...

    happens-before俗解

    ### Happens-Before原则详解 #### 一、引言 Happens-before原则是Java并发编程中的一个重要概念,用于描述程序中的操作之间的顺序关系。它不仅有助于理解和解决并发编程中的可见性问题,还为程序员提供了关于多...

    what-happens-when-zh_CN:当XXX时,到底发生了什么

    在IT行业中,了解系统或应用运行的底层机制是至关重要的。"当XXX时,到底发生了什么"这个标题暗示我们将深入探讨一个特定的IT过程或事件。由于提供的标签为空,我们无法直接得知具体的话题,但我们可以从常见的技术...

    卡耐基梅隆大学的SSD6答案

    ##### 题目8:What happens in a C program when an addition would cause integer overflow? - (a) Execution is terminated. - (b) An exception-handler is called with the two operands as parameters. - (c) ...

    中考英语短文填空六选五做题技巧[宣贯].pptx

    仔细阅读后文,找寻与选项中的关键词相匹配的同义词或相关词。 - 当问题出现在段落中间,要关注前后文的关系,如并列、转折、因果等。正确答案的末尾可能与问题后面句子的开头有紧密联系。 - 若问题是段落间的过渡...

    思科2019校园招聘笔试一(软件类).docx

    Memory leak happens (内存泄漏发生) **知识点说明**: - `int *p = (int *)malloc(sizeof(int));`: 分配了一块内存,并将其地址赋值给指针`p`。 - `p = NULL;`: 将`p`指针设置为NULL,原分配的内存未释放。 - `...

    中考英语专项复习特殊句式.doc

    【特殊句式在中考英语中的应用】 特殊句式是中考英语考试中不可或缺的一部分,它涉及到英语语法的多样性,包括但不...掌握这些特殊句式和相关知识点对于应对中考英语至关重要,考生需要通过大量练习来巩固和熟练应用。

    浅谈Java内存模型之happens-before

    "浅谈Java内存模型之happens-before" Java内存模型是Java虚拟机中的一种机制,用于定义Java程序中线程之间的内存访问方式。在多线程环境下,线程之间的通信和数据共享是非常复杂的,需要有一些规则来保证数据的一致...

    what-happens-when-k8s:type当我键入kubectl run时会发生什么?

    当... Kubernetes版时会发生什么! 想象一下,我想将nginx部署到Kubernetes集群。 我可能会在终端中输入如下内容: kubectl run nginx --image=nginx --replicas=3 然后按回车。 几秒钟后,我应该看到三个Nginx ...

    happens:超级简单小巧的javascript事件系统

    安装 # nodenpm install happens # --save, --save-dev# bowerbower install happens # --save, --save-dev# meteormeteor add arboleya:happens应用程序接口.on(event, handler) - 监听事件.once(event, handler) -...

    湖北剩州市沙市区2020学年高一英语下学期第二次双周考试题.docx

    根据给定文件的信息,本文将对“湖北省荆州市沙市区2016-2017学年高一英语下学期第二次双周考试题”进行分析解读,从中提炼出相关的英语学习知识点。 ### 一、听力理解技巧 #### 1. 快速阅读题目与选项 在听力考试...

    锁的释放-获取建立的happens before 关系

    "锁的释放-获取建立的happens before关系"是指在并发执行的线程之间,当一个线程释放锁之后,另一个线程获取同一把锁时,它们之间存在一种特定的内存可见性保证。这种关系是由Java内存模型(Java Memory Model,JMM...

    八年级英语外研上册期末知识点复习PPT学习教案.pptx

    - `What happens to sb.? = What’s wrong with sb.? = What’s the matter with sb.?`:询问某人发生了什么问题。 10. **特殊表达** - `something new/old/interesting`: 形容词修饰不定代词时,放在不定代词...

    Java内存模型(JMM)及happens-before原理

    Java内存模型(JMM)及happens-before原理 Java内存模型(JMM)是Java虚拟机(JVM)中的一组规则,用于定义 Java 程序中的内存访问顺序。它规定了在多线程环境中,变量的写入操作对其他线程的可见性。JMM的主要目的是...

    简单易懂讲解happens-before原则

    为了解决这个问题,Java引入了"happens-before"原则,它是一种确保正确同步和数据可见性的规则。 1. **程序顺序规则**: 这个规则指出,在同一线程内,程序中表现出的顺序应该被维护,即每个操作`happens-before`...

Global site tag (gtag.js) - Google Analytics