I have a question that always bugged me in open source development.
Why do we have :
我有一个问题总是在开源开发中给我带来麻烦。为什么我们有:
- 10 different Browsers
- 20 different Instant Messenger
- 6 different IDE's for a singe language
- more than 15 distributions of Linux
- .....
10种不同的浏览器
20种不同的Instant Messenger
6种不同的IDE用于单一语言
超过15个Linux发行版
wouldn't be nicer , when we have only 1-2 alternatives to the commercial products so open-source could be a better competitor to ... lets say Photoshop . ( gimp is far away from that )
不会更好,当我们只有1-2种商业产品的替代品,所以开源可能是一个更好的竞争对手...让我们说Photoshop。 (gimp远离那个)
8 个解决方案
#1
No, it wouldn't.
不,它不会。
Open software development works in an evolutionary way. Although a lot of effort is wasted, there are some strong benefits:
开放式软件开发以渐进的方式工作。尽管浪费了很多精力,但仍有一些很大的好处:
- Projects learn from each other. For example, firefox's tabs are now part of every modern web browser.
- Bad software fades away quite quickly, without any damage to the community. If there was only one software project going on, and it would have failed, we would have no other options.
- It encourages entrepreneurship and creativity of enthusiastic developers.
- It encourages niche software. Think of all the Linux distros which serves special needs - rarely spoken languages, users with disabilities, exotic platforms or specialized hacking techniques.
项目相互学习。例如,firefox的选项卡现在是每个现代Web浏览器的一部分。
糟糕的软件很快消失,对社区没有任何损害。如果只有一个软件项目正在进行,并且它将失败,我们将没有其他选择。
它鼓励热情的开发者的创业和创造力。
它鼓励小众软件。想想所有满足特殊需求的Linux发行版 - 很少使用语言,残障用户,异国平台或专业黑客技术。
A nice reading about it would the The Cathedral and the Bazaar by Eric S. Raymond.
关于它的一个很好的解读是埃里克·S·雷蒙德的大教堂和市集。
#3
Many reasons:
- Integration with desktop environments (KDE apps vs Gnome apps).
- "I can do better" syndrome. Closely related: "scratching an itch", reinventing a wheel to learn about how wheels work.
- Politics and project leadership issues (OpenBSD vs NetBSD, GLIBC vs EGLIBC).
- Different vision: solving slightly different problems (GLIBC vs uClibc).
- Incompatible licensing.
与桌面环境集成(KDE应用程序与Gnome应用程序)。
“我可以做得更好”综合症。密切相关:“抓痒”,重新发明*,了解*是如何工作的。
政治和项目领导问题(OpenBSD与NetBSD,GLIBC与EGLIBC)。
不同的愿景:解决略有不同的问题(GLIBC vs uClibc)。
#4
There isn't some over arching OSS committee that decides what developers should spend their time on, each person is free to do what they like.
没有一些过于激烈的OSS委员会决定开发人员应该花时间,每个人都可以*地做他们喜欢的事情。
If there was a committee, there likely wouldn't be anywhere near the quality in many of these products.
如果有一个委员会,很多这些产品的质量可能不会接近。
#5
Its the thought behind OSS that you can do what you want - write software that does what you need. Since everyone needs other things in an IDE or Browser - it is good to have more than one. Under the hood it mostly becomes back to one.
OSS背后的想法是你可以做你想做的事 - 编写满足你需要的软件。由于每个人在IDE或浏览器中都需要其他东西 - 所以拥有多个东西是件好事。在引擎盖下,它主要变回一个。
As 6 Browsers do use two libs for web rendering, mainly gecko from mozilla and webkit as alternative.
由于6个浏览器确实使用两个库来进行Web渲染,主要是来自mozilla和webkit的gecko作为替代。
More than one IDE for one language - but under the hood its the same language-compiler, the same libraries.
一种语言不止一个IDE - 但它的语言编译器相同,相同的库。
#6
It is important to realize that open source projects are rarely written from scratch, and there really isn't as much duplicated effort as it might seem. Because people are free to use other open source software in their projects, they are able to concentrate on just the parts that they are interested in, and reuse the other parts from other projects.
重要的是要意识到开源项目很少从头开始编写,并且实际上没有像它看起来那么多的重复工作。由于人们可以在项目中*使用其他开源软件,因此他们可以专注于他们感兴趣的部分,并重用其他项目中的其他部分。
For example, there may be numerous web browsers, but many of them use the same layout engine. There may be many music players, but those developers aren't writing their own MP3 codecs. Someone has an idea for an improvement over what already exists, and they start a project to implement that idea, using the best of existing open source projects to fill in the gaps. Open source software makes this possible. It is actually proprietary software companies that often spend much of their time reimplementing the same common functionality that is found in their competitor's products, since their competitor's product is not open source and the code cannot be reused.
例如,可能有许多Web浏览器,但其中许多使用相同的布局引擎。可能有很多音乐播放器,但这些开发人员并没有编写自己的MP3编解码器。有人想要改进已经存在的东西,他们开始实施这个想法的项目,使用现有的最佳开源项目填补空白。开源软件使这成为可能。它实际上是专有软件公司,它们经常花费大部分时间重新实现竞争对手产品中的相同通用功能,因为竞争对手的产品不是开源的,代码无法重复使用。
#7
I agree with many of the above points but it all boils down to one thing. Money
我同意上述许多观点,但这一切都归结为一件事。钱
#8
Because it's not a company trying to dominate the market in every aspect. Everyone scratches their own itch.
因为它不是一个试图在各个方面主导市场的公司。每个人都刮伤自己的痒。
Someone can start a project to develop a tool that he needs because nothing else quite does what he really wants, then it can grow and more people can contribute to it.
有人可以开始一个项目来开发他需要的工具,因为没有别的东西可以做他真正想要的东西,然后它可以成长,更多的人可以为之做出贡献。
#1
No, it wouldn't.
不,它不会。
Open software development works in an evolutionary way. Although a lot of effort is wasted, there are some strong benefits:
开放式软件开发以渐进的方式工作。尽管浪费了很多精力,但仍有一些很大的好处:
- Projects learn from each other. For example, firefox's tabs are now part of every modern web browser.
- Bad software fades away quite quickly, without any damage to the community. If there was only one software project going on, and it would have failed, we would have no other options.
- It encourages entrepreneurship and creativity of enthusiastic developers.
- It encourages niche software. Think of all the Linux distros which serves special needs - rarely spoken languages, users with disabilities, exotic platforms or specialized hacking techniques.
项目相互学习。例如,firefox的选项卡现在是每个现代Web浏览器的一部分。
糟糕的软件很快消失,对社区没有任何损害。如果只有一个软件项目正在进行,并且它将失败,我们将没有其他选择。
它鼓励热情的开发者的创业和创造力。
它鼓励小众软件。想想所有满足特殊需求的Linux发行版 - 很少使用语言,残障用户,异国平台或专业黑客技术。
A nice reading about it would the The Cathedral and the Bazaar by Eric S. Raymond.
关于它的一个很好的解读是埃里克·S·雷蒙德的大教堂和市集。
#2
#3
Many reasons:
- Integration with desktop environments (KDE apps vs Gnome apps).
- "I can do better" syndrome. Closely related: "scratching an itch", reinventing a wheel to learn about how wheels work.
- Politics and project leadership issues (OpenBSD vs NetBSD, GLIBC vs EGLIBC).
- Different vision: solving slightly different problems (GLIBC vs uClibc).
- Incompatible licensing.
与桌面环境集成(KDE应用程序与Gnome应用程序)。
“我可以做得更好”综合症。密切相关:“抓痒”,重新发明*,了解*是如何工作的。
政治和项目领导问题(OpenBSD与NetBSD,GLIBC与EGLIBC)。
不同的愿景:解决略有不同的问题(GLIBC vs uClibc)。
#4
There isn't some over arching OSS committee that decides what developers should spend their time on, each person is free to do what they like.
没有一些过于激烈的OSS委员会决定开发人员应该花时间,每个人都可以*地做他们喜欢的事情。
If there was a committee, there likely wouldn't be anywhere near the quality in many of these products.
如果有一个委员会,很多这些产品的质量可能不会接近。
#5
Its the thought behind OSS that you can do what you want - write software that does what you need. Since everyone needs other things in an IDE or Browser - it is good to have more than one. Under the hood it mostly becomes back to one.
OSS背后的想法是你可以做你想做的事 - 编写满足你需要的软件。由于每个人在IDE或浏览器中都需要其他东西 - 所以拥有多个东西是件好事。在引擎盖下,它主要变回一个。
As 6 Browsers do use two libs for web rendering, mainly gecko from mozilla and webkit as alternative.
由于6个浏览器确实使用两个库来进行Web渲染,主要是来自mozilla和webkit的gecko作为替代。
More than one IDE for one language - but under the hood its the same language-compiler, the same libraries.
一种语言不止一个IDE - 但它的语言编译器相同,相同的库。
#6
It is important to realize that open source projects are rarely written from scratch, and there really isn't as much duplicated effort as it might seem. Because people are free to use other open source software in their projects, they are able to concentrate on just the parts that they are interested in, and reuse the other parts from other projects.
重要的是要意识到开源项目很少从头开始编写,并且实际上没有像它看起来那么多的重复工作。由于人们可以在项目中*使用其他开源软件,因此他们可以专注于他们感兴趣的部分,并重用其他项目中的其他部分。
For example, there may be numerous web browsers, but many of them use the same layout engine. There may be many music players, but those developers aren't writing their own MP3 codecs. Someone has an idea for an improvement over what already exists, and they start a project to implement that idea, using the best of existing open source projects to fill in the gaps. Open source software makes this possible. It is actually proprietary software companies that often spend much of their time reimplementing the same common functionality that is found in their competitor's products, since their competitor's product is not open source and the code cannot be reused.
例如,可能有许多Web浏览器,但其中许多使用相同的布局引擎。可能有很多音乐播放器,但这些开发人员并没有编写自己的MP3编解码器。有人想要改进已经存在的东西,他们开始实施这个想法的项目,使用现有的最佳开源项目填补空白。开源软件使这成为可能。它实际上是专有软件公司,它们经常花费大部分时间重新实现竞争对手产品中的相同通用功能,因为竞争对手的产品不是开源的,代码无法重复使用。
#7
I agree with many of the above points but it all boils down to one thing. Money
我同意上述许多观点,但这一切都归结为一件事。钱
#8
Because it's not a company trying to dominate the market in every aspect. Everyone scratches their own itch.
因为它不是一个试图在各个方面主导市场的公司。每个人都刮伤自己的痒。
Someone can start a project to develop a tool that he needs because nothing else quite does what he really wants, then it can grow and more people can contribute to it.
有人可以开始一个项目来开发他需要的工具,因为没有别的东西可以做他真正想要的东西,然后它可以成长,更多的人可以为之做出贡献。