为什么有人会利用自己的时间免费开发无偿的开源项目?
为什么有人会利用自己的时间免费开发无偿的开源项目?
Answers:
对于小型项目,原因可能是“爱好”,“获得一些经验”,“成名”,“欢乐”等,但这不是大型开源项目(例如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创收。
为什么一切都必须与金钱有关?您认为维基百科如何运作?没有人付钱将内容放到Wikipedia上,但这可以说是最好的百科全书。
编辑:
让我们谈钱。
像任何项目一样,开源项目都是不必要的。您有一个问题X,并且编写了库Y或应用程序Z来解决它,因为
因此,现在您花了几个晚上和周末(和/或带薪时间)编写下一个热点,直到到达婴儿开始走路的位置。您现在必须在以下两者之间进行选择:
开源是可行的,因为它是一个社区。因为是相互的。您无法通过编写开源代码来赚钱。您可以通过使用开源代码来赚钱。那么为什么要编写开源代码呢?回馈。
对某些人来说这是一种爱好;信不信由你。
吉列乐于为您提供免费的剃须刀并向您出售刀片。
有些人以其他方式赚钱,并希望回馈社区。我敢肯定,Linus Torvalds在没有实际出售代码的情况下就从Linux上赚了很多钱,并且可能把钱拒之门外。
并非所有开源软件都旨在或设计用于任何用户都只能下载,安装和使用,因此您可能最终会花费更多时间,具体取决于技能水平,并且大多数人都珍视他们的时间。
开发开源应用程序有多个原因。通常,需求越基础,就越适合于开源。例如,ASP.NET MVC,Ruby on Rails,Django,PHP和其他Web框架都是开源的。没错,即使Microsoft也有一个相当知名的开源项目。需要一个组织良好的Web框架,使您可以专注于构建Web应用程序,这比正在构建的特定Web应用程序要大。
许多人(包括我自己在内)为开源做出了贡献,因为我们在日常工作中使用了这些框架。从某种意义上说,这是自我保护。如果我不必仅仅因为我在一家新公司就不得不重新发明轮子,那我为什么要这么做?
至于通过开源赚钱,这是一个棘手的话题。大多数开放源代码许可都允许您出售软件。特定许可证控制您是否需要共享所做的修改(在大多数情况下不需要共享BSD / ASL样式许可证,而GPL样式许可证则需要),还是提供原始项目的归属。
我最常看到的案例是:
最重要的是,源代码可能是开放的,但总有一些人需要的不仅仅是原始代码。我敢肯定,有更多的方法可以利用开源来赚钱,您只需要有创造力即可。
您可以根据限制性的免费许可证(例如GNU AGPL)将其释放,然后对异常收费。
我工作的服装始于公共领域的代码(由企业主编写)[开源源于发明的年代]。他最初的商业模式是成为使用它的顾问(使用并不简单,数百人进行了生动的咨询)。当然,对功能增强的需求是如此之大,以至于成为了专有的商业代码*。但是,仍然获得的大多数薪水都是迅速减少的数字:(1)做工作的用户,(2)将顾问分组(1),最后是(3)开发人员/测试人员等。
我使用复数形式,因为从同一公共域源代码版本中衍生出其他几个专有代码。
您可能会发现自己处于以下位置:
在这种情况下,参与开源项目是一个非常明智的业务决策。
它也可以是很好的广告。