为什么有这么多的工具/技术可以在开源社区中完成同样的任务

时间:2009-06-04 07:46:51

标签: open-source

我最近开始学习开源技术,很快就感到沮丧,因为有成千上万的技术和工具(每个都有自己的优点和缺点)。我想知道Windows的“All in One”方法是否真的更好。

14 个答案:

答案 0 :(得分:10)

为什么有这么多公司生产汽车,面包和餐桌?将它们整合成一辆大型汽车,大型面包和全方位公司会不会更有成效?

答案 1 :(得分:5)

我认为这是一个很大的原因,因为人们希望对那些有正确想法的东西进行改进,但它没有得到很好的应用(或者他们想要的方式)。

某些软件也是大学/学院学生参与决赛的一个受欢迎的选择,他们最终会继续开发。对于之前没有完成的项目,你不能总是想出一些有用且容易的东西。

答案 2 :(得分:4)

A)冗余不是一种独家的FOSS现象。甚至垄断也有他们(不太值得注意的)竞争对手 - 虽然几乎每个人都使用Adobe Photoshop进行光栅图形,但有些人仍然使用Jasc,Corel或其他人的类似程序。

B)做同样的事情并不意味着他们以同样的方式做事。即使两个程序看起来几乎相同,它们通常在功能,界面或范例上也有所不同。合并“两全其美”通常会导致可用性噩梦和不一致的行为。

C)了解某些内容的最简单方法是自己制作。没有什么能教会你某种API或语言在其中编写软件的方式。通常这些玩具程序最终会以某种方式变得有用,其中一些最终会被广泛使用或被熟练程序员发现潜力所吸引。

D)如果程序员迁移,软件也必须。有时你会学习一门新语言,或者只选择一个更好的语言来找出你最喜欢的API或者应用程序不支持它。将它们移植到您选择的新语言中往往会导致进一步的变化,使它们与原始文本截然不同。在某些情况下,他们会被移植回原来的语言,结果让人联想起FOSS电话游戏。

E)每个人都有意见。并非每个功能请求都会产生功能,并且并非每个程序都取决于手头的独特任务。此外,有些人只是渴望完美。关于编程和FOSS的美妙之处在于,如果你认为你可以做得更好,你可以继续尝试。没有DMCA阻止你。

如果您愿意,可以将其视为一个进化过程,是的。有些程序和API发现它们的利基,有些变得愚蠢地流行,有些只是默默无闻或被可怕的404吃掉。但只要网上还有一些痕迹,有人仍然可以继续捡起它让生命重新回归 - 这就是FOSS与非FOSS的区别所在。死亡不是死路一条。

答案 3 :(得分:2)

我认为主要原因是人们往往患有NIH综合征(未在此发明)。我们大多数人都受此影响,但在受控环境中,我们对自己所做的事情有所限制。在FOSS领域,人们没有这种限制。

有无数的例子表明人们坚持做不同的事情,即使它比现有的解决方案明显更糟糕。这在FOSS中实际上是一个非常有趣的事情,我们应该互相“窃取”。比如KDE和Gnome。两个阵营都认为他们看起来与另一个阵营不同,所以有时他们会做出真正无法区分的变化。

在大多数情况下,获取现有代码库并在那里进行更改会更容易,但知道您自己完成整个系统会有一定的满足感。但是有一个好处,那就是当人们从干净的石板开始时,你会获得更多新想法。

答案 4 :(得分:2)

实际上在Windows中也有很多不同的工具可用于同一任务。只需查看可用的大量编辑器和IDE即可。

开源这么多的原因与开源模型本身有很大关系。如果我不喜欢你在开源软件中实现某些东西的方式,我可以分支出来。每次我分支时,我都会创建一个新版本的软件。 Github通过鼓励开发人员分支将其提升到一个新的水平。有时希望分支软件将具有可以集成回原始软件的创新。有时,分支软件会占用它自己的生命。

答案 5 :(得分:2)

  

我想知道“All in One”的Windows方法是否真的更好。

嗯,也许人们仍然会将视觉源安全用作“唯一的”源控制系统。

不,谢谢。

答案 6 :(得分:1)

这一切都始于“痒”。当人们没有“完全”找到他们想要的东西时,他们就会开始自己写作。即使差异很小。 NIH(Not Invented Here)综合症也起着重要作用。

但是如果有足够的时间,那些好的人会脱颖而出。 Tomcat成为servlet容器,Apache for webserver,Eclipse for IDE,MySQL for database等的领导者。

开源就是自由。我们必须忍受这个充足的问题。

答案 7 :(得分:1)

从我的角度来看,它是开源生态系统演变的重要组成部分。

如果人们不喜欢某人在代码/编程语言/项目领导/焦点方面做类似的项目,他们往往会开始自己的项目。当他们做得好的时候,该项目将会发展,直到它取代其前任。如果它做得不好,它将不会“活”很长时间,或者继续成为只有少数用户的小型爱好项目。

那是进化。

正如其他一些人所说,在Windows上也是重复的解决方案,如IDE,Office套件,ERP程序,甚至游戏。

用户必须做出的选择对于没有受过教育的用户来说可能很难,但这就是为什么有PC杂志或专业人士(想想)知道什么软件对于哪个目的有用。

答案 8 :(得分:0)

他们都有自己的优势。您喜欢定期使用哪一个纯粹是对您有用的问题。

答案 9 :(得分:0)

由于您没有准确指定哪种程序,我想您会谈论软件开发工具。

首先,我想在Windows there are许多程序中指出do same thing

其次,我们不是生活在理想世界,工具A对某些情况有好处,但对其他情况不好,工具B非常适合工具A不好用的情况,以及工具C要求你花时间参与其他工具,库,源代码等的内部工作,但它几乎可以处理任何比工具A或B更好的情况。

作为一个工具开发者/贡献者的观点,如果我不喜欢我最喜欢的项目是如何开发的,我确实有一些贡献(比如修复错误),但项目维护者因任何原因拒绝({{ 3}}),我可以分离项目并做我想做的事情。最后,如果我的贡献对很多人有用,我的项目可能会比原来的更有用。

答案 10 :(得分:0)

在开源世界和非自由世界中,数十个,数百个或数千个人或群体开始解决某些问题。他们中的许多人不得不提前放弃。在商业软件的世界里,它们只是消失了,几乎没有留下痕迹。在开源世界中,它们只是sourceforge上的另一个废弃项目。

对于许多任务,只有极少数解决方案存在。在某些情况下,不止一种解决方案存在,但仅仅因为每种解决方案都提供了其他解决方案所缺乏的解显然,相互冲突的目标(例如资源使用与眼睛花钱)使得存在不同解决方案的可能性更大,每个解决方案都强调一个目标。

答案 11 :(得分:0)

有许多工具,因为人们会创建不同的解决方案和方案。但话说回来,我只使用SubVersion进行版本控制,到目前为止还没有去其他地方。有很多工具,但你不需要全部工具。所需要的是根据类型,特征,可用性,流行度,支持,连续性,什么与什么一起工作等对工具进行良好分类。然后你只需选择你需要的东西。我同意在开源世界中有工作要做,但是例如SubVersion很容易安装和使用。

当然,Windows世界是开源的替代品。但它并不一定更好,如果你需要的组件实际上是开源的,你想要开放世界,想要节省许可证费用等等。

答案 12 :(得分:0)

基本上,它是NIH Syndrome和开源作为学习工具的理解的组合,而不是用于创建产品的方法。

我认为NIH在开源方面并不一定是坏事,主要是因为很大比例的开源项目从未脱离“业余爱好”阶段。

答案 13 :(得分:0)

我在围栏的两侧构建了复杂的系统,包括FOSS和Windows平台。虽然我喜欢基于Linux的系统的自由度和灵活性(根据许可证成本做出架构决策而不是你真正需要的东西),但我可以绝对肯定地说我在Windows上用更少的人来完成更多工作。

使用FOSS,如果你有一个复杂的系统并聘请一名新的程序员,你通常需要几个星期的时间来解决这个难题的所有不同部分 - 语言,编译器,工具等。

我在过去几年中聘请的每个Windows程序员都在启动后的一天内检查代码,有时是在几个小时内。这是同质平台的好处。我保证会得到一个已经了解我们整个筹码的人。

你真的必须对FOSS进行成本效益分析,看看你是否确实在节省资金。如果你可以在一年内减少一个人,开发人员花费你多少钱与你的许可证费用相比?