什么是开放源代码,以及为什么不使用开放源代码?

开源软件在Java生态系统中扮演着重要角色(想想Maven,Maven Central,Gradle,OpenJDK,Ant,Ivy,Eclipse,Ant等中的所有库)。 当人们嘲笑OSS并宣布它不可靠,有风险等其他情况时,还会有一个周期性的“ oh sht”时刻(也许最近发生的是
由Oracle终止GlassFish )。

因此,我决定写这篇文章,以展示开源是一个好主意(如果您不加期望的话)以及为什么要使用它。

首先,让我们快速浏览一下免费/自由或开源软件是什么,然后深入研究每个要点,看看它们为什么很重要:

  1. 您可以访问源代码,并且可以自己构建功能性最终产品。
  2. 接受许可可为用户提供通常不是专有软件授予的某些权利
  3. 该软件周围有一个社区,可以接受贡献(错误报告/修复,文档,新功能),并且所有过程(例如bugtracker,讨论等)都是公开的,每个用户都可以访问

请注意,我在那儿没说什么钱:F / LOSS是关于自由(“ Libre”)而不是价格。 出售F / LOS软件以赚钱(虽然很少这样做)是完全可以的(出于法律和许可精神)。

1.访问源代码和构建最终产品的方法

这就是大多数开发人员在听到“开源”时的想法,并且对我们所有人来说都是显而易见的优势:查看源代码可以轻松理解功能和调试问题。 是的,您可以获得文档,但是文档可能过时,难以理解,明显错误或缺少用例。 另外,您可以调试
使用反编译器或系统级调试器之类的工具的任何软件,但是在没有源代码的情况下,这样做的努力更大。

将此与专有软件进行比较:您会获得文档(可能会或可能不会使用)和一些支持,这些支持通常需要24小时的周转时间,并且需要反复反复才能解决问题(如果可以的话)完全可以,而且是的,我是根据经验使用价值数万美元的“企业”软件来谈论的。

同样,正是在60年代和70年代(直到出现了“知识产权”的偏执狂),正是由于这个原因,许多专有软件才作为源代码分发了–从而降低了支持成本并使客户更加满意。

注意: 构建最终产品零件的方法很重要(已在F / LOSS许可中进行了编码)。 否则,公司可能会给您提供大量的源文件,而没有Makefile / build.xml / pom甚至更糟:说“对不起,我们使用您无法获得的内部编译器对其进行编译”,从而规避了执照。

2.使用F / LOSS产品会授予某些在专有软件中找不到的权利

但是首先要说一下您的义务:与专有软件一样,如果您使用该软件,您也要承担一些义务–您接受不对软件生产商承担任何损害赔偿责任,并且通常您不想起诉生产商侵犯专利权。

将此与专有软件进行比较:您仍然接受此类(或更苛刻的)条款, 并且甚至必须在看一下软件之前以及在知道该软件是否完全适合您的用例之前必须接受 。 查找收缩包装许可证。

除了这些限制,F / LOSS许可证还为您提供了一些专有许可证中没有的自由:

  • 出于任何目的使用它(例如,某些专有供应商禁止您对其产品进行基准测试!)
  • 研究其工作原理(对开发人员而言最重要)
  • 重新分发它,并
  • 重新分发修改后的版本

3.透明的社区

这是难题的最后一部分。 一个不接受更改并且没有公开讨论的项目并不是真正的开源。 相反,对于真正开放的项目,您将拥有一个充满活力的社区,并且很有可能其他人已经遇到并解决了您的问题(不,我们不是独树一帜的雪花–可能是其他人已经在我们的Usecsae中挣扎)。

最后的话

因此,我们已经了解了什么是开源。 现在让我说几句关于资本主义/市场友好的问题:您可以为所需的服务水平付费。 您甚至可以从其他竞争的公司那里获得支持(这在商业软件中是不可能实现的)。

如果项目背后的主要实体(开发人员或公司)停止支持它(如GlassFish发生的情况),会发生什么? 不幸的是,但是如果该项目对用户有价值,那么其他人将继续进行下去。 如果不是,则不是。

将此与专有软件进行比较:如果公司停止开发它,那么您将很不走运,甚至没有希望有人继续进行开发。

参考: 什么是开放源代码,以及为什么不使用?Java Advent Calendar博客上从我们的JCG合作伙伴 Attila Mihaly Balazs那里获得。

翻译自: https://www.javacodegeeks.com/2013/12/what-open-source-is-and-isnt-and-why-you-should-use-it.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值