为什么我们有这么多冗余软件?

时间:2009-07-18 10:20:56

标签: open-source

我有一个问题总是在开源开发中引起我的注意 为什么我们有:

  • 10种不同的浏览器
  • 20种不同的Instant Messenger
  • 6种不同的IDE用于单一语言
  • 超过15个Linux发行版
  • .....
如果我们只有1-2种商业产品的替代品,那么开源可能会成为更好的竞争对手,那就不会更好了......比如说Photoshop。 (gimp远离那个)

8 个答案:

答案 0 :(得分:12)

不,它不会。

开放式软件开发以渐进的方式运作。尽管浪费了很多精力,但仍有一些很大的好处:

  • 项目相互学习。例如,firefox的选项卡现在是每个现代Web浏览器的一部分。
  • 糟糕的软件很快消失,对社区没有任何损害。如果只有一个软件项目正在进行,并且它将失败,我们将没有其他选择。
  • 它鼓励热心开发者的创业精神和创造力。
  • 它鼓励小众软件。想想所有满足特殊需求的Linux发行版 - 很少使用语言,残障用户,异国情调的平台或专门的黑客技术。

关于它的一个很好的解读是Eric S. Raymond的The Cathedral and the Bazaar

答案 1 :(得分:8)

Diversityevolution的动力: - )

答案 2 :(得分:3)

很多原因:

  1. 与桌面环境集成(KDE应用程序与Gnome应用程序)。
  2. “我能做得更好”综合症。密切相关:“抓痒”,重新发明轮子,了解轮子是如何工作的。
  3. 政治和项目领导问题(OpenBSD与NetBSD,GLIBC与EGLIBC)。
  4. 不同的愿景:解决略有不同的问题(GLIBC与uClibc)。
  5. 不兼容的许可。

答案 3 :(得分:1)

没有一些过于激烈的OSS委员会决定开发人员应该花多少时间,每个人都可以自由地做他们喜欢的事情。

如果有一个委员会,那么许多产品的质量可能不会接近质量。

答案 4 :(得分:1)

OSS背后的想法是你可以做你想做的事 - 编写满足你需要的软件。由于每个人在IDE或浏览器中都需要其他东西 - 所以拥有多个东西是件好事。在引擎盖下它主要变回一个。

由于6个浏览器确实使用两个库来进行Web渲染,主要是来自mozilla和webkit的gecko作为替代。

一种语言的多个IDE - 但是它的语言编译器相同,是相同的库。

答案 5 :(得分:1)

重要的是要意识到开源项目很少从头开始编写,并且实际上并没有像它看起来那么多的重复工作。由于人们可以在项目中自由使用其他开源软件,因此他们可以专注于他们感兴趣的部分,并重用其他项目中的其他部分。

例如,可能有许多Web浏览器,但其中许多使用相同的布局引擎。可能有很多音乐播放器,但这些开发人员并没有编写自己的MP3编解码器。有人想要改进已经存在的东西,他们开始实施这个想法的项目,使用现有的最佳开源项目填补空白。开源软件使这成为可能。它实际上是专有软件公司,它们经常花费大部分时间重新实现竞争对手产品中的相同通用功能,因为竞争对手的产品不是开源的,代码也无法重复使用。

答案 6 :(得分:0)

我同意上述许多观点,但这一切都归结为一件事。钱

答案 7 :(得分:0)

因为它不是一家试图在各个方面主导市场的公司。每个人都在摸索自己的痒。

有人可以开始一个项目来开发他需要的工具,因为没有别的东西可以做他真正想要的东西,然后它可以成长,更多的人可以为它做出贡献。