消费信贷 开源数据
开源真棒,您可能有很多原因需要考虑使用,发布,协作或支持开源。 1其中一些:
1.微观经济动机
无论您是个人,公司,小型企业,非营利组织还是政府机构,开源都符合您的最大利益。
将开发人员从低价值工作转变为高价值工作。 我们想在开源中说所有的简单问题都已经解决了 。 博客,内容管理和操作系统都是已建立的(和主流的)开源解决方案的全部问题,仅举几例。 尽管您的开发人员可以花时间重新设计开源社区已经完善的轮子,但最好使用世界上最好的轮子,尤其是在您不花钱的情况下。 这使开发人员可以腾出时间来解决尚未解决的挑战,这些挑战是组织任务所特有的并为其增值。 为什么不站在科技巨头的肩膀上呢?
-
更低的总拥有成本 (TCO):与封闭源和专有替代品相比,使用开源软件产生的总拥有成本更低。 采用开源软件通常具有较低的前期成本(因为该软件通常是免费的或相对较低的成本),并将成本中心从许可(运营费用)转移到定制和实施(资本费用)。 培训,维护和支持等额外费用属于沉没成本。 无论软件是开放源代码还是封闭源代码,您都将为此付出代价,对于商用的现成软件(COTS),费用通常会计入许可证中。 开源的独特之处在于您无需为使用底层知识产权的权利付费。
成本 开源的 所有权 Licensing 没有 是 Implementation 是 是 Maintenance 是 是 Support 是 是 只要有足够的眼球,所有的漏洞都是浅浅的 (Linus定律):根据经验,开源软件往往会比其专有或替代软件产生更高质量的软件 。 当您编写封闭源代码软件时,唯一有可能检测,诊断,分类和解决软件错误的开发人员就是那些发布该软件的公司(或更可能是他们付钱的独立承包商)雇用的开发人员。构建它)。 开源具有三个优点:首先,您有机会利用世界上最好的开发人员的知识,而不仅仅是利用一个组织的薪水。 第二,潜在贡献者的数量,因此潜在的知识库要大几个数量级。 最终,开源软件适应了各种用例,而不仅仅是发布者最初打算的用例,比传统的,可预测的质量保证流程更快地显示了错误和边缘案例。
现代软件开发实践 :开源软件不仅仅是简单的“发布”代码。 您很难找到一个遵循过时的,瀑布式的或僵化的命令与控制开发理念的开源项目,这种理念在许多大型官僚组织中仍然很普遍。 由于开源和不受政策或技术债务的束缚,开源项目几乎需要现代软件开发工作流程。 这些工作流是电子的(意味着流程自然地被捕获和公开),异步的(意味着决策与时间和位置无关)和无锁(意味着贡献者无需事先批准即可快速进行实验)。 这三个工作流程特征意味着更快的开发周期和更频繁的发布而又不牺牲质量。
开源是未来 :您很难在今天找到一家值得它的风险投资资金的初创公司,而不是至少部分(如果不是很大的话)基于开源的风险投资。 开源不是一种时尚,也不是一堆嬉皮士在加利福尼亚四处扎着扎染笔记本电脑,就像他们会非法携带毒品一样。 开源是现代组织以及越来越多的传统组织构建软件的方式。 提出这样一个论点,即从现在起的五到十年内,技术领域将变得不那么协作,更加封闭,这变得越来越具有挑战性。 赫克(Heck)甚至是传统上最反对开源的微软之一,微软(Microsoft)也开源了他们的主要开发框架 (以及Apple和Swift )。 如今,从IBM到SAP到Adobe的所有技术领域的大腕都积极参与开源社区。 说“开源就是未来”有点不准确。 开源已经赢了。
按您自己的时间表进行补丁 :只要软件是人为编写的,漏洞和安全漏洞是不可避免的。 在专有软件项目中发现漏洞后,您必须等待法律,销售和市场营销等G&A团队在公司所在时区开始工作日,召开会议,确定任务并编写代码。协调如何将修补程序添加到下一个定期发布的版本中。 对于专有软件,错误和漏洞影响底线,因此不利于广泛宣传其详细信息。 使用开放源代码,不仅精简,敏捷,面向非营利组织的组织可以更快地移动,因为您可以访问源代码,所以您经常可以自己方便地而不是方便地应用修补程序(无论大小)发布组织的发布周期。
上游改进 :如果您使用开源软件,则贡献自己的最大利益。 贡献可以是报告错误,甚至提交建议的修复的形式。 由于软件是由人类编写的,因此它极不可能是完美的,即使如此,也可能无法满足每个用例。 与分叉项目并在自己的版本中实施更改(封闭源)不同,向上游提交错误报告和改进(开放源代码)可让您更轻松地继续从其他人提交的后续修复和改进中受益。
GitHub联合创始人Tom Preston-Werner在他的文章Open Source(Almost)Everything中提出了一些其他论点:
强制乘数 :开源是您的开发人员的强制乘数。 这以三种方式发生:第一,当社区围绕着共同的挑战而形成时,自然而然地出现的想法多样性可以提供更好的解决方案,而如果想法的市场仅限于您的组织,则意味着开发人员可以更聪明地工作。 其次,将问题空间暴露给其他有兴趣的组织可以提供更多的人力资本来应对您的挑战,这意味着该解决方案会花费更多的开发人员时间,而无需您支付任何额外费用。 最后,“更多的用户意味着将探索更多的用例,这意味着更健壮的代码。”
模块化 :开源项目倾向于更加模块化地架构,从而提高了代码的灵活性和健壮性。 在为单个用例构建软件时,您可以采用一些技术捷径。 当您想在其他用例中使用该软件或您的需求发生变化时,就会出现问题。 从本质上讲,开源是为各种用例,环境和用户构建的。 这意味着更多的选项(而不是针对特定用途的硬编码默认设置),以及倾向于鼓励更多的模块化(而不是追求一种通用的功能集)的趋势,从长远来看,将带来更大的灵活性和更低的定制成本。 换句话说,开源需要更干净,更可维护的代码。 “ 甚至内部代码也应假装为开源代码 ”。
减少工作重复 :您应该专注于核心能力。 是什么让您与众不同或为您带来优势? 其他一切都是其他人也在做的工作:或者换句话说,就是您需要做的工作,以便您可以完成想要做的工作。 不一定要那样。 开源允许共享单个组件,从而减少了组织内部和组织之间的重复工作。 可口可乐的秘密调味料是其糖浆的配方,而不是其发布博客文章或发布新闻稿的能力。 使用开源CMS或与世界共享其内部博客组件,不会使百事可乐有更好的品味。 “减少重复意味着要对重要的事情做更多的工作。”
出色的广告服务 :成功的开源项目的维护者通常被视为行业的领导者,使他们能够围绕特定的软件问题进行对话,并使他们的品牌与首选解决方案相关联。 37Signals以创建Ruby on Rails闻名。 GitHub以创建Hubot而闻名 。 (“在两天内,它在GitHub上有500个观察者,在Hacker News上有409个投票。这对GitHub和更多超级粉丝都产生了善意,”)。
吸引人才 :开发人员希望解决尚未解决的问题。 开源使您可以向开发人员社区展示您面临的有趣挑战以及如何解决这些挑战。 开源开发人员可以随随便便地为项目做出贡献,以了解您的工作方式以及为应对特定挑战而开发软件的感觉。 如果他们喜欢他们所看到的,那么他们申请工作的机会要比您的组织在这里工作的感觉像黑匣子的机会要大得多。 “聪明的开发人员喜欢和聪明的代码一起玩。”
可能的最佳技术面试 :传统上,技术面试涉及解决一个模拟问题,该问题可以在一定时间内解决,而几乎没有其他上下文。 从定义上讲,这样的模拟不是真实的用例,也没有显示与申请人打交道的情况。 开源可提供候选人如何解决问题以及他们如何与他人合作的可见性。 如果在过去六个月中,候选人一直为您希望他们从事的项目做出贡献,并且您喜欢他们的工作,那么您可以放心地雇用更多人。 “最好的技术面试是您不必做的,因为候选人已经在您的一个开源项目中发挥了作用。”
2.宏观经济动机
通过合并和增加并行或相关工作,开源可以使社会更有效地生产更高质量的软件。
效率 :上面的许多微观经济学论点总体上具有宏观经济影响。 当企业提高工作效率时,经济会生产更多(更好)的软件,这些软件反过来可以改善人们的生活。 如果您认为所有简单的问题都已经解决,那么在宏观经济层面,开源可以使您将公司从低级工作转移到较高级别但尚未解决的挑战。 更高级别工作的结果往往是破坏性的,而不是反复的,从而造成了振兴经济的混乱局面。 如果每个技术公司都必须花费几年的研发时间来解决相同的5-10个问题,那将延迟(或至少转移资金)公司的生产力和生产对社会有价值的技术的能力,更不用说了,给新进入市场的人增加了为成熟公司提供替代方案的障碍。
站在巨人的肩膀上 :如今,创新技术(提高生活质量的技术类型)并不是凭空创造的。 甚至是封闭源技术,从口袋里的手机到您开车去的500强公司生产的汽车,都严重依赖开放源代码(不相信我吗?看看您手机的“设置->关于”页)。 就像私有部门不受版权保护的代数和三角学让位给从微积分到量子物理学的所有事物一样,开放源代码允许开发人员将已经解决的问题视为既定问题,依靠超出其专业知识领域的专家的知识,以及释放他们创造新发明的潜力,否则是不可能的。
助长思想市场 :软件不过是技术知识。 曾经有一段时间炼金术士保留其工作成果,声称自己的发现属于专有技术。 每个人都必须以艰辛的方式来学习对人体饮用铅的结果。 当那些炼金术士开始分享他们的工作时,我们开始称他们为科学家,科学革命由此诞生。 数学,文学和计算机软件也是如此。 两个单独工作的开发人员可以针对给定的问题提出两种解决方案,但是通过对话和协作,每个开发人员都可以带来自己的知识和经验,可以发现相同的三个,五个或十个解决方案,从而使社会变得更好。
3.道德动机
开源的正式名称是free / libre开源软件 。 因此,开源动机具有很强的道德成分。
- 言论自由,而不是啤酒自由 :开源软件并非没有成本。 当开源软件被称为“免费”时,它指的是软件消费者获得的权利,而不是他们必须支付的费用。 例如,从经济意义上说,Adobe的Flash播放器是免费软件,但仍是专有(非免费)软件(和格式)的核心。 具体来说, 自由软件指的是四个核心自由 :运行软件的自由,研究和修改软件的自由,重新分发软件的自由以及分发所做修改的自由。
正如自由软件运动所主张的那样 ,非自由软件冒着可以控制用户(由发行者控制软件)的风险。 这为软件成为不公正动力的工具创造了潜力。 如今,专有软件监视用户(例如打电话回家),限制用户(例如DRM),审查用户(例如公司防火墙)或利用用户(例如不可跳过的广告)并不少见。 。 随着物联网的兴起,这一点变得更加重要,并且有将世界变成“电话推销员的互联网”或“窥探者的互联网”的风险。 自由软件将权力交还给用户,并确保用户控制他们使用的软件,而不是相反。 回馈的义务 :开源是“一分钱一分钱”的软件罐。 如果您使用开源,无论是服务器,桌面发布应用程序还是软件库,您都有义务回馈社区。 毕竟,没有其他方面的贡献,微观和宏观经济动机将不再成立,而我们所知道的开源将不复存在。 这是黄金法则 ,或者用传统的哲学术语来说,是绝对必要的 。
各国政府应将自己的发展成果交给为自己的发展付出代价的人们 :如果发展成本是由政府支付的,那么还有回馈的另一种说法。 政府收取金钱(税金)为民众提供服务。 例如,美国联邦政府通过其宪法成立,人民由我们执行许多重要任务。 如果民众(我们的人民)为软件开发付出了代价,则理所当然的是,我们应该收到我们为开发付出的钱,包括我们为开发付出的软件。
下一代的教学 :当今,许多业界最杰出的工程师通过向开源学习来割牙。 当软件的基础代码可供检查时,消费者可以了解自己喜欢的软件的工作方式,而计算机科学课程则可以分析行业尖端技术的构建方式。 这对培训下一代软件工程师(他们没有开放源代码的人会猜测以前的迭代的内部工作)有很长的路要走。
4.透明动机
开源可以提高流程的透明度,无论这是检查政府行为或私人公司软件的准政府功能所必需的透明度。
展示您的工作 :随着政府越来越依赖技术来规范行业和提供公民服务,能够查看底层算法和流程对于检查政府的工作至关重要。 如果使用封闭源软件包来计算我的税费或分配广播频率,我如何知道该过程(即我们的过程 )是公平准确的? 人为的程序无法获得版权,而当源程序接近时,此类程序将成为黑匣子,从而最大程度地减少了公民抵制的可能性。
公众信任的地位 :随着私营公司生产的软件越来越多地置于公众信任的地位,透明性义务也延伸到私营部门。 投票机是否准确计算了我的投票? 如果选择不输,自动驾驶汽车是否符合社区规范? 例如,如果使用封闭源软件包比较犯罪现场的DNA,与可以进行交叉检查的医学专家不同,该专有算法将不受版权(或专利)法的审查。 随着私有公司实现准政府职能的自动化,开源(至少是部分特定组件的部分开源)将变得至关重要。
5.参与动机
开源为技术和非技术的软件利益相关者提供了塑造任何给定软件开发项目的机会。
直接民主 :鉴于大多数民主国家的规模,真正的直接民主(每个公民在每个问题上都进行投票)是站不住脚的。 由于技术限制,公民也无法直接参与大多数问题。 通过允许软件涉众直接参与软件开发过程(随着越来越多地依赖软件来编纂法规和服务交付偏好和规范),开放源代码发生了变化。 认为购买医疗保健的过程令人困惑吗? 打开一个问题。 相信政府应该使用更多的开源软件,提交拉取请求。 白宫已经针对许多以IT为中心的策略(例如Digital Services Playbook ,HTTPS和开放数据策略)执行此操作。
客户反馈 :开源使消费者能够在私营部门的发展过程中拥有强大的声音。 将其视为软件的Yelp。 没有Yelp,餐厅可以自由地打扰单个顾客。 最多,那个不满意的顾客可能会劝阻其他5-10个潜在顾客。 在后Yelp世界中,客户在选择去向之前先阅读了陌生人的评论。 开源在用户与发布者之间的关系中放大了软件用户的声音。 更不用说私人公司收到的反馈可以更好地通知产品决策并改善整体产品。 开源使公司可以直接与最热情的客户联系。
6.个人动机
如果您是一名开发人员(或有抱负的开发人员),那么开源可以为软件开发社区中的个人成长提供轻松(免费)的途径。
学习编码 :开源是学习编码的好方法。 想知道您喜欢的网站如何运作吗? 在网络浏览器中单击“查看源代码”可以大大帮助您指明正确的方向。 您可以阅读支持它的软件的文档,甚至有可能站起来自己的克隆。 想了解更多? 加入有关框架或语言的本地聚会。 更好的是,向项目提交拉动请求以修复小错误或添加新功能。 虽然肯定会涉及时间和机会成本,但所有这些都不会给有抱负的开发人员带来任何直接成本,至少在软件方面没有,并且比在专有社区(尤其是作为局外人)中的工作更具包容性。 有一个原因使得当今传统学术界以外的几乎所有编码学校都教开源。
很好玩 :根据Wikipedia所说, 开源是一种爱好 。 实际上,开源在传统上一直是业余爱好者的产品(尽管我认为今天已经不那么流行了)。 开源很有趣。 如果您是黑客,那么它会为您在周末提供无穷无尽的Rubix多维数据集。 正如拼图(纵横填字游戏和拼图游戏)提供一口大小的智力逃生一样,开放源代码的顺序和对称性常常是一堆乱码(尤其是对于那些足球来说令人尴尬的初学者而言)。
有许多原因使您偏爱使用,发布,协作和支持开源,如果您的开源不在这里,我很想听听(并添加)它。 无论您出于什么原因,很明显,开源并不是下一件大事。 开源已经在这里。
对于更长,更全面,更深入研究的列表,我强烈推荐David Wheeler的规范论文《 为什么开源软件》 ( Why Open Source Software) ,该论文最初于15年前发布(至今仍非常准确)。
最初发布在Ben Balter的博客上 。 通过知识共享重新发布在这里。
消费信贷 开源数据