为什么要开发免费的开源程序?[关闭]


36

为什么有人会利用自己的时间免费开发无偿的开源项目?


10
哦,真的,我们必须一次又一次地讨论这个话题吗?甚至MS现在都创建了一些OpenSource程序。
user281377 2010年

18
@ammoQ:尽管您是对的,但这并不是特别有用。
back2dos 2010年

5
好吧...我不是免费编写代码,但我每周花37.8个小时坐在办公桌前编写根据GPL发布的软件。有时会创建软件来满足业务或运营需求。该软件本身对消费者没有商业价值,同时仍然为业务部门提供价值。不使用公司其他产品的人不会对不会获得任何好处的开源应用程序不感兴趣-即使他们这样做,谁在乎呢?
TZHX

25
您不言而喻的基本假设是,人类行为的唯一有效动机是利润动机,它是无人性的,冒犯性的,最重要的是,显然是虚假的。有关该主题的一些实际研究,请参见youtube.com/watch?v=u6XAPnuFjJc
梅森惠勒2010年

16
人们为什么坐在StackExchange上并在没有得到报酬的情况下帮助人们?
kba

Answers:


58

对于小型项目,原因可能是“爱好”,“获得一些经验”,“成名”,“欢乐”等,但这不是大型开源项目(例如Mozilla,OpenOffice,Linux)的工作方式。

Sun为什么要购买StarDivision并使StarSuite成为开源程序(称为OpenOffice.org)?Mozilla为什么要创建一流的浏览器并将其作为开放源代码发布?为什么会有人创建Linux,编写驱动程序之类的东西并免费提供给所有人?微软为什么要为Linux创建开源驱动程序,以便可以在MS的虚拟化中更好地运行?

因为这对他们有一定的商业意义。他们以这种方式或至少计划赚钱。

在某些情况下,MS产品(如Windows,Office,Internet Explorer)的主导地位是创建竞争产品的原因,因此,MS很难利用其台式机优势来征服其他领域,例如服务器,互联网服务,太。这在某种程度上解释了OpenOffice.org和Mozilla。

在其他情况下,开源软件旨在推动硬件,其他软件或服务的销售。开源驱动程序显然有助于向Linux用户出售硬件组件。RedHat出售对其Linux发行版的支持,他们出售Linux是正版RedHat的事实。其他产品(例如Oracle)经认证可在Redhat上使用,但不能在CentOS上使用,即使它可能运行正常。服务器硬件已通过Redhat认证,即使其他Linux发行版也可以正常运行。大钱客户不关心价格,他们想要证书。

某些公司(例如Google)赞助了许多开源项目,因为这有助于他们的业务。他们不是为利他主义而这样做。他们想要一个免费的互联网,一个普及的互联网,一个广泛的互联网,人们可以在其中使用Google的服务,从而使Google创收。


5
对Google想要“免费互联网”持某种怀疑态度。他们想要一个广泛使用的互联网,这将为他们带来更多机会并最终从中获利。免费是值得商de的。+1都一样,是个不错的答案。
乔恩·霍普金斯

13
乔恩(Jon):免费,如“不受单个供应商控制”(可以说除了它们之外)一样
user281377 2010年


back2dos:感谢您的链接;我以前读过它,但是不记得在哪里和什么时候。
user281377 2010年

Google赞助了像Chrome这样的开源项目,因为它为他们提供了相对便宜的新产品,在功能和性能方面与市场领导者竞争,但他们可以通过足够的控制机制对其进行扩充,从而为他们带来大量收入-默认搜索提供商浮现在脑海。听起来有点愤世嫉俗,但是为什么要在已经有其他基于Webkit的浏览器(en.wikipedia.org/wiki/…)发布Chrome的情况下呢?
JBR威尔金森2011年

26

为什么一切都必须与金钱有关?您认为维基百科如何运作?没有人付钱将内容放到Wikipedia上,但这可以说是最好的百科全书。

编辑:

让我们谈钱。

像任何项目一样,开源项目都是不必要的。您有一个问题X,并且编写了库Y或应用程序Z来解决它,因为

  • 没有工具可以解决该问题或
  • 他们不够好,或者
  • 他们不值得花这笔钱(编写自己的工具可能会“花费更多”,但最终,您确实拥有了所需的东西,并且可以根据需要进行修改,因此,成本可以快速摊销)。

因此,现在您花了几个晚上和周末(和/或带薪时间)编写下一个热点,直到到达婴儿开始走路的位置。您现在必须在以下两者之间进行选择:

  • 商业发行:这涉及市场营销,法律事务,客户支持,自己进行所有修复,获得大量令人难以置信的愚蠢功能请求以及不到无用的反馈。最终,一旦所有寄生虫都吃尽了蛋糕,您将得到剩下的钱。可能没人会喜欢您的产品,因为它的价格太高了。
  • 开源分发:涉及……嗯……将代码推送到公共存储库,并在相关邮件列表上发布一两个公告。您会得到承认甚至成名。您将获得一个用户基础,该用户基础提供建设性的反馈,有用的错误报告,甚至可能提供补丁程序。您会收到一些捐款,或者被邀请参加一些会议,或者获得报酬以实施功能a或b。您创造了很多价值,尽管没有人为之付出任何代价。下次您或您的公司需要某些东西时,机会很大,您将得到它,并且将免费获得它。

开源是可行的,因为它是一个社区。因为是相互的。您无法通过编写开源代码来赚钱。您可以通过使用开源代码来赚钱。那么为什么要编写开源代码呢?回馈。


4
“为什么一切都必须与金钱有关?” 当然不是,但是programmimg是人们通常希望得到的报酬。(即使您喜欢它,我也是一名程序员,并且喜欢编程,但仍然拒绝免费)
Diego

@迭戈:编译百科全书也是人们通常会得到报酬的事情。顺便说一句:更新了我的帖子。
back2dos 2010年

12
@迭戈:原谅我的天真,但是如果你不会仅仅为了爱而爱它,你怎么能说你爱它呢?
马特·艾伦

6
@马特:爱永远不会是爱,那是一种误解。
user281377 2010年

1
当我想做某事时,我会独自为爱而做,对我自己来说是一些“编程挑战”。不只是“常规的无聊软件”。
迭戈

24

对某些人来说这是一种爱好;信不信由你。

吉列乐于为您提供免费的剃须刀并向您出售刀片。

有些人以其他方式赚钱,并希望回馈社区。我敢肯定,Linus Torvalds在没有实际出售代码的情况下就从Linux上赚了很多钱,并且可能把钱拒之门外。

并非所有开源软件都旨在或设计用于任何用户都只能下载,安装和使用,因此您可能最终会花费更多时间,具体取决于技能水平,并且大多数人都珍视他们的时间。


3
您的意思是免费剃须手柄。剃刀刀片。
乔Z.

它称为诱饵和钩子商业模型。关于打印机和墨盒,en.wikipedia.org / wiki / Razor_and_blades_business_model
Sorter

在我所在的地区,您甚至需要为手柄付费:)
Nik

@JoeZ。-我长大了,整个事情都变得像剃刀一样。直到现在为止,从未见过不知道我在说什么的人。也许您将手柄,刀片架和刀片/剃刀本身称为剃须刀?
JeffO

11

货币补偿并不是唯一可能的补偿。名望(尽管大多是有限的圈子)是另一回事。炫耀您所做的工作的快乐又是另一种乐趣。

我,我之所以这样做,主要是因为我有写软件的冲动,如果碰巧可以帮助别人,每个人都会赢。


4
它可以帮助您找到工作。
2011年

5

这个问题不是特定于开源的,因为您可以免费编写代码,并且永远不会将其发布给公众(尽管由于共享代码的所有已知好处,这种情况很少见)。

真正的问题是,为什么要免费做任何事情?答案是,因为它使您感到高兴

就个人而言,我喜欢学习,比起我的有薪工作,我学到更多的工作在开源上。因为学习提高了我的技能,它也帮助我获得了更高薪水的工作。


4

开发开源应用程序有多个原因。通常,需求越基础,就越适合于开源。例如,ASP.NET MVC,Ruby on Rails,Django,PHP和其他Web框架都是开源的。没错,即使Microsoft也有一个相当知名的开源项目。需要一个组织良好的Web框架,使您可以专注于构建Web应用程序,这比正在构建的特定Web应用程序要大。

许多人(包括我自己在内)为开源做出了贡献,因为我们在日常工作中使用了这些框架。从某种意义上说,这是自我保护。如果我不必仅仅因为我在一家新公司就不得不重新发明轮子,那我为什么要这么做?

至于通过开源赚钱,这是一个棘手的话题。大多数开放源代码许可都允许您出售软件。特定许可证控制您是否需要共享所做的修改(在大多数情况下不需要共享BSD / ASL样式许可证,而GPL样式许可证则需要),还是提供原始项目的归属。

我最常看到的案例是:

  • 销售支持。MySQL,Spring和其他一些人都遵循此模型,并很好地使用了它。
  • 销售方便。RedHat,SuSE和其他Linux发行版将一组应用程序打包在一起,以方便用户使用。
  • 卖电器。简而言之,这就是Google,Nokia,Linksys等公司赚钱的方式,可以将专有和开源产品包装在一起,并确保其安全。这可能是最有利可图的选择。
  • 出售T恤/杯子/等 没有带来很多,但总比没有好。

最重要的是,源代码可能是开放的,但总有一些人需要的不仅仅是原始代码。我敢肯定,有更多的方法可以利用开源来赚钱,您只需要有创造力即可。


2

原因多种多样。

有些人因为编写它而获得报酬,因为他们的雇主认为它值得(并且有很多潜在的原因)。有些人基于F / OSS成立公司,因为他们可以从中赚钱。

有些人使用F / OSS并希望回馈。

有些人将其视为声誉游戏,例如学术研究或在此处回答问题。

有些人出于自己的目的需要某种软件,而只是发布它是因为他们想要使用它,而如果其他人也可以使用它,他们有时会得到有用的建议。


1

除了金钱,当然还有名望-然后他们正在通过自己构建和构造事物来学习事物的工作原理。在您正常的工作生活之外获得宝贵的可销售的经验。我认为Ayende就是一个很好的例子。

顺便说一句- 总的来说,我已经找到了一些与我合作过的最好,最直观的项目和框架,这些都是开放源码的-我认为真正有热情的人可以花时间将空闲时间从从头开始或只是维护它会产生更好的产品,而不是仅是9-5的人。


1

这不仅是为了赚钱,而且更多时候是为了存钱。优秀的OSS库和工具的庞大库使之成为自然选择。

在相同的情况下(GPL和朋友),这也意味着您也有义务使生成的代码也成为OSS。在其他情况下,这只是个人选择,但您仍然可以获得其他奖励(主要是获得一些认可,有时有出售支持的机会,有时(对我而言)是向潜在雇主展示的良好参考)


1

您可以根据限制性的免费许可证(例如GNU AGPL)将其释放,然后对异常收费。


那是一个可怕的想法。

@WTP。这是MySQL和x264等的业务模型(据我所知,它们都不使用GNU AGPL)。
TRiG 2011年

1

我不止一次地为一个开源项目贡献了一个补丁,仅仅是因为我想确保将来的版本中包含该功能/修复程序。

似乎没有人愿意将某些东西作为开放源代码发布,只是因为它提供了其他人使用它并保持最新状态的可能性。

我和一个写过(IIRC)验证CUSIPs的代码的人一起工作。他在网上发布了它。多年后,他为另一个系统下载了CUSIP库。他惊讶地发现自己提到了几年前编写的代码。


0

您可以支持它来赚钱。如果您有一个深受社区考虑和使用的程序,例如jboss,那么您可以提供服务和支持。人们会为此付出代价。


0

我工作的服装始于公共领域的代码(由企业主编写)[开源源于发明的年代]。他最初的商业模式是成为使用它的顾问(使用并不简单,数百人进行了生动的咨询)。当然,对功能增强的需求是如此之大,以至于成为了专有的商业代码*。但是,仍然获得的大多数薪水都是迅速减少的数字:(1)做工作的用户,(2)将顾问分组(1),最后是(3)开发人员/测试人员等。

我使用复数形式,因为从同一公共域源代码版本中衍生出其他几个专有代码。


0

您可能会发现自己处于以下位置:

  • 您需要好的软件来为您做事
  • 您发现与现有产品的配置选项相比,您需要更多地控制软件的工作方式
  • 您可以访问几乎满足您需求的软件源代码,并具有修改它的专业知识以发挥所需的控制能力
  • 您只需要针对您的目的进行少量修改,但您希望从其他人进行的更多修改中受益,则该软件的开发前景将一片光明
  • 您所做的修改不是孤立的并且没有足够的实质,以至于认为它们是值得保护或出售的资产,否则这样做带来的额外开销将超过收益
  • 您知道自己的修改可以使其他许多与您的需求相似的需求受益;与维护自己的分叉副本相比,将它们合并到主开发线中可以节省您的精力

在这种情况下,参与开源项目是一个非常明智的业务决策。

它也可以是很好的广告。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.