开源软件的一些思考

  • 开源太火,以至于大家都认为开源是天然正确的。对此我深表怀疑。开源并没有特别的意义,开源成为主流也并非因为什么追求,什么哲学。软件开发,本就有很多协作方式,包括开源。开源能成为主流,是因为它在竞争中获胜了。物竞天择,适者生存。
  • 开源的好处,对于那些没开源的代码,照样适用。那么为什么还有一部分代码不开源?
    答:开放的好处,适用于任何成果。比如,源代码,战斗机风洞数据,学术成果,潜艇降噪技术。开放,天然就有好处,不值得探讨。
    真正值得探讨的是,为啥有些东西不能开放。一定是开放的损失,超过了开放的收益。
    现实中,我们是先假定所有东西都可以开放的,然后再一个个筛选,哪些有损失,不能开放,剩下的就能开放了。
  • 开放,有什么损失?
    帮助(潜在)竞争对手。竞争对手可以直接用你的成果,快速提升能力,成本还低。
    增加被攻击概率。因为透露了自己的家底,如果开源代码有漏洞,使用该代码的产品很可能被攻击。
    降低收入。一个产品本来是要赚钱的,结果开源了,没人买了。
  • 开源不会带来额外竞争力。你有我有全都有,你怎么赢别人?
  • 开源商业模式,解决不了“赢别人”的问题,是伪命题。
  • 一个成功的开源软件,一定是商业成功带来的,而不是相反。
  • 只有商业运用才能带来开源软件的成功。
  • 商业成功 ≠ 开源软件发布者的商业成功
  • 一个企业使用了某开源软件,并为这一软件增加了重大特性,企业会不会把这个特性藏起来,不贡献到社区?如果大家都这么搞,即使这个软件再好,也不会发展起来。
    答:大概率会贡献到社区。因为不贡献,会有风险。如果这个软件不断发现漏洞并修改,别人也加入了一些特性,随着时间推移,当企业想同步这些修改时,发现差别太大,同步过来有巨大的风险。所以出于自身利益,企业多半会往社区贡献的。
  • 业务本身的竞争力才是最重要的,业务的成功与开源没有关系,因为我们默认所有的成果都是开源的。当前,有人不知道开源有收益,所以开源可以带来额外的竞争力。但是未来大家都会站在开源的舞台上,竞争还是回到业务本身。
  • 开源软件发布者与其他人相比,有什么优势?先发优势。发布者可以在发布开源软件前,率先使用该软件进行商业服务,提前占领市场。但是如果发布者放弃这一优势,没有提前布局商业,那就是在为别人做嫁衣,别人商业成功了也是分不到羹的。
  • 为什么会有开源?开源是天然存在的,并不是什么时候“出现”的。有软件开发就有开源,跟有人的地方就有江湖一样。软件开发,本来就有人大度,愿意把作品公布出来,有些人就不愿意。
  • 开源天然存在,但开源项目不会天然成功。很多牛人会说自己当初为什么会发布某个开源软件,其实这不重要,因为发布开源软件不算啥,做的人多如牛毛。重要的是为什么你的开源软件活了下来。
  • 当我们讨论开源时,我们说的到底是什么?开源软件,开源机构,开源发布者,使用者,贡献者?
  • 如何理解开源社区。开源社区是生产者即消费者的代表。
  • 开源的意义。我们常说的开源的意义,实际上是对于“免费使用者”的意义,完全没有参考价值。给你免费用,那当然什么都有意义。马云捐我10个亿,我也可以说有意义。那开源真实的意义是什么?没有什么特别的意义,一种协作模式而已。
  • 开源的缺陷。开源软件是共同开发共同使用,大锅饭,偷懒是常态,绝大部分人等着别人的贡献,动力不足,贡献者是极小部分。所以通常来讲,开源软件没有竞争力。
  • 开源的优势。人多。哪怕开源软件贡献者动力不足,开发质量参差不齐,但是都架不住它人多,虽然只有极少部分人贡献,但是这“极少部分”,其绝对数量仍然是商业软件开发者的十倍,百倍。我人多,你来打我呀。
  • 如何搞一个失败的开源项目。显然,开源最重要的是选择一个开发者众多的市场。比如操作系统,云平台,IDE工具。你不能选择cpu设计,发动机制造这种市场,因为你根本笼络不到十倍百倍的开发者,没人。

你可能感兴趣的:(开源软件的一些思考)