【.com速译】不知道大家有没有注意到,在软件开发行业,各种字面相近甚至缩写相同的技术术语层出不穷。他们容易在概念上混淆我们,甚至“找不到北”。事实上,在各种重要的场景中,我们应该尽量使用准确的术语,清楚地表达上下文的意思,避免给读者带来歧义。自由软件、开源软件、免费软件是业界最常见的三个软件术语。你一定很难用一句话说出它们之间的区别。本文将重点与大家探讨这三个术语的主要区别,以便大家在构建技术产品时做出正确的选择。自由软件(FreeSoftware)首先要明确一点,所谓“自由软件”中的“免费”二字强调的是自由,而不是免费的价格。因此,为了避免英语中的歧义,有时人们也称它为:libresoftware。支持自由软件开发的非营利组织自由软件基金会(FreeSoftwareFoundation,FSF,见-)是这样定义的:“自由软件是指授予用户自由分享、学习和修改权利的软件。“这个名字是由FSF在1980年代创造的。也就是说,您可以使用此类软件为所欲为,甚至可以改进其原始版本,并从中获利。在FSF的定义中,自由软件必须遵守以下四大“自由支柱”(注意,这些是权利,不是义务):软件可以自由部署在任何使用环境中,不受任何限制。例如,许可证在30天后过期的程序不是自由软件。自由研究软件的工作原理,并能够根据实际需要和喜好进行修改。自由重新分发软件以帮助有需要的人。这里的重新分配可以是有偿的,也可以是无偿的。增强软件性能和发布增强功能的自由,以便社区(各种程序员或非程序员)可以从中受益。此类行为可能有偿或无偿。FSF还强调:自由软件不限于非商业用途。如果商业软件程序允许用户间接获得上述“自由”,也属于此类。此外,与免费工具不同,免费软件允许用户访问其源代码,因为用户可以自由修改。从理论上讲,任何自由软件许可都应该使用户能够从以上四点中受益。这些许可证可以是保护性的或非保护性的。其中,前者会要求其用户保持软件原有的使用权、研究权、发行权和修改权(即业界常说的:copyleft、copyleft)。后者又允许用户在二次分发期间修改这些权限。以下是最常用于定义自由软件的三种许可证(参见):MIT(麻省理工学院)许可证:这是一种相对宽松的软件许可证,但对于软件重用场景,有一些限制。有限的。GNUGeneralPublicLicensev2:这是一种版权类型的许可证,允许用户自由运行、研究和改进软件。ApacheLicensev2:这是一个许可许可证,需要保留版权声明和免责声明。BSD许可证系列:这些是一组非版权许可证,对软件的使用和再分发提供最小限制。在充分尊重自由方面,Linux操作系统是自由软件领域最典型的例子。我们比较熟悉的发行版之一就是大名鼎鼎的Debian。开源软件(OpenSourceSoftware)虽然名词名称不同,但开源软件和自由软件在含义上是比较相似的。他们共享一组相似的许可证和软件权利。TheOpenSourceInitiative(OSI,参见),一个支持开源软件开发的非营利组织,强烈主张任何开源软件都必须遵循以下标准:可以免费重新分发。源代码应该是公开的和可用的。可以以不同于原始软件的格式进行修改和分发。软件本身不应歧视任何个人或团体。软件本身不应限制其他软件的使用或调用。虽然这两个术语都源于支持自由软件的思想(包括前面提到的使用权、学习权、共享权和修改权),但从历史上看,自由软件一词早于开源软件,它们的目标和概念也不同。开源一词是在1990年代后期引入的,以应对自由软件的局限性。事实上,OSI赋予它“教育和促进开放式开发过程的优势”(参见参考资料)。开源软件“提供了一种与潜在软件用户和开发人员进行交互的有价值的方式。通过交互式和参与式社区,人们可以创建新的或改进原始源代码。”可以看出,“开源”一词强调了自由软件的一个实际好处:支持各种软件开发项目中的协作。换句话说,开源是一种更面向业务的开发理念,而自由软件是一种一种社会和道德哲学。因为“开源”这个词不太强调自由,所以更容易被企业接受。我们以Android手机操作系统为例,它属于开源软件范畴,但它不能称为自由软件。原因是它不符合上述四大“自由支柱”。为了尽量减少误解,避免自由软件和开源软件之间的术语争议,业界随后出现了诸如FOSS(freeandopensourcesoftware)andFLOSS(free,libre,andopensourcesoftware).免费软件免费软件是你可以免费使用的软件。不同于开源软件软件和免费软件,免费软件为最终用户提供的自由度最低。一般来说,虽然用户可以免费使用一款软件,但通常不能未经作者许可修改、调整和二次发布。可见,自由软件通常在不包含其源代码的情况下被共享和使用,这是与开源软件和自由软件的本质区别。Skype和Adob??eAcrobatReader是两种最常见的免费软件。虽然它们可以免费使用,但它们的源代码不向公众开放。在实际商业环境中,大多数开发者通常选择将免费软件作为免费增值服务或以共享软件销售的形式来使用,以鼓励用户购买相应的、更强大的版本。这里的Freemiumservices就是那些免费提供的程序,它们往往需要用户支付更多的费用来获得额外的、更全面的功能。可见,免费共享软件是指那些最初不需要额外费用就可以使用的程序。他们鼓励用户分发他们的副本。然而,这样的免费期通常只持续一定的时间。到期后,用户仍需付费总之,无论您是构建手机游戏、加密货币交易机器人,还是网站等任何其他技术产品,请确保使用正确的术语来准确描述它。此外,如果您在将创建的程序免费分发到开源社区之前,还请确保事先进行足够的研究以彻底了解所选许可证的限制和责任。【原标题】自由软件与开源软件与免费软件:有什么区别?(作者:MichaelGarbade博士)
