浅谈开源与闭源

news2024/11/24 5:27:58

开源指的是那些源代码或源设计可以被大众使用、修改发行的软件或设计体,闭源就是不开放源代码。

Linux 无疑是开源软件里最最成功的一个,不管是从它目前的生态建设角度,还是从业界评价来看,包括今天云计算的基础也都倚赖Linux的贡献和基石。当然,像OpenStack、Hadoop 、Spark等也非常成功,这些开源项目都属于底层技术,在支撑今天整个大数据、云计算的发展。

开源并不意味着免费,开源只是说我们做了一个好东西,把它开放给大家使用,目的是希望大家更多地使用它,并反馈使用过程中的问题或者改进方式,使得整个开源项目进步得更快,能够更好地共享给更多有需要的人,目前像 Linux、Hadoop、Spark等等,都是这么做的。但很多时候开源背后还是带有很浓厚的商业背景。

做得比较大的开源项目背后都有商业公司在支撑,如果一个成功的开源项目背后没有商业公司,这是不健康的,我们需要开源和商业之间的互补对称来促进整个社区和技术的不断前进答,这是一方面。

另一方面,从开源用户的角度来看,“开源是不是免费的”其实也是一个伪命题(这里的用户指的是所有使用开源产品的企业或者个人)。开源看上去是不需要花版权的钱,但其实企业用户招聘合适的开发人员、运维人员把这个事情做完,成本可能比买商业版本更高。

从商业价值的角度来说,开源毋庸置疑已经是基础技术领域的必然趋势,没有开源的基础技术是没有生命力的,因为它很难被广泛使用。在商业上,一个开源项目被大范围使用后,可以使得整个技术升级换代成熟起来变得非常迅速,过去可能要经过三年、五年、甚至十年的时间去进化,因为开源的力量,在短短几个月内可能就完成了。从另外一个角度来说,开源的壮大又会反哺支撑商业,毕竟还有很多客户都是希望获得商业的支持和价值。

对于开发者来说,开源与不开源很大的一个区别在于,你是一个孤军奋战的人,还是一个可以跟全世界最优秀的开发者在一起的人。因为如果你做一个闭门的项目,你所能够沟通的、接触的资源受应用场景的限制,会非常有限。但如果你是做开源项目,不管你是自己领导开源还是参与开源,你都可以和全世界最优秀的开发人员一起来玩技术,一起在社区探讨交流,这样对于自己的成长是飞速的

我们想象一下一项任务的开发如果没有开源的话,想要让这个系统的所有的功能得以实现这整个过程都是要由等着它的开发厂商自己来解决的。而系统中自己产生的一些BUG,也只能等着开发厂商来修复,如果开发厂商本身没有发现,这些BUG就会永远的存在。

所以由此看来开源和不开源的区别还是非常大的,它的作用也是很大的,开源最大的魅力就在于不依赖于某个厂商,大众都可以修改代码以满足自己的需要,千万个“自己的需要”就汇聚成了伟大的产品,任何违背这个理念的开源都是“伪开源”。

开源不是简单的公布源代码,如果有个人将自己开发的一款源代码公布到网上之后,并没有通过git、svn等把源码管理起来,而且之后的修改汇总管理也是无人问津的,只能是提供对这个软件感兴趣的人进行下载,然后自己在做进一步的修改,让自己用,这样没有做出贡献的开源,就失去了开源背身的价值。

对嵌入式物联网感兴趣的小伙伴,可以多了解一下相关信息。(看过来)

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/622544.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【SQL Server】数据库开发指南(九)详细讲解 MS-SQL 触发器的基础概念与应用场景

本系列博文还在更新中,收录在专栏:#MS-SQL Server 专栏中。 本系列文章列表如下: 【SQL Server】 Linux 运维下对 SQL Server 进行安装、升级、回滚、卸载操作 【SQL Server】数据库开发指南(一)数据库设计的核心概念…

WIN10:Cognos10.2_x32安装运行问题总结(二)

一、Cognos安装Congfiguration启动服务异常解决方法 1、用管理员权限启动IBM Cognos Configuration、关闭本机安全软件、关闭防火墙; 2、不卸载本机JDK不删除本机JDK环境,指定c10\bin目录,cogconfig -java:local 命令CMD启动Cognos。 测试…

JavaSE07_static和final

JavaSE-07 【static-final】 第一章 static关键字 1.1 静态static关键字概述 static关键字 一个类的不同对象有些共享的数据,这样我们就可以使用static来修饰 。一旦使用了static关键字,那么这样的内容不再属于对象,而是属于类的&#xff…

通过python封装接口seller_nick获取阿里巴巴店铺所有商品数据,阿里巴巴店铺所有商品数据接口,阿里巴巴API接口

今天给大家分享一个大体的思路和代码示例。请确保采集过程遵循相关网站的使用规则和政策。 使用阿里巴巴开放平台提供的API接口文档,找到seller_nick接口的具体参数及请求方式。使用ython中的requests库发送请求,获取接口返回的数据。对返回的数据进行处…

深度解读新档案法①:企业如何提高档案管理规范性?

上一次,我们列举了关于档案管理需要遵守的法律法规清单,想要了解详情的,可点击添加链接描述。关于如何依法进行档案管理,许多朋友仍有疑问。为此,我们开设了一个专栏,结合企业实践案例,详细解读…

7.5寸_Wifi标签功耗电流计算-单面屏幕-1.8V的Flash测试

7.5寸黑白屏幕Wifi标签不工作的时候电流的消耗主要来自两部分: 待机时,醒来监听时。经过测量,7.5寸黑白屏幕Wifi标签的待机电流是7.04uA , 醒来监听的峰值电流是80.1 mA。7.5寸黑白屏幕Wifi标签系统设定每间隔1秒醒来一次监听是否有唤醒数据…

PPT制作能力在职场中真的重要吗?一定要美术功底才能学好PPT吗?

前言 年轻时手握技术实力这把剑,我觉得闯荡江湖到处可以“仗义出剑”。实际做到一定级别后特别是我做到了架构师后发觉当不具备PPT能力后,我这条路反而越走越坚难了。 2009年时因为工作关系被企业推送了TOGAF培训,培训后以优秀的成绩拿到了…

vite+Vue3 createWebHistory 路由前缀配置

vue 作为前端最火的前端框架之一,大家在使用的过程中必不可少需要使用router(路由)。 路由有hash 和 history 两种,本期主要针对history模式下 路由前缀 使用和配置,进行简单介绍。 env变量 在根目录下,创建开发、测试、灰度、…

几种常见的 Python 数据结构

摘要:本文主要为大家讲解在 Python 开发中常见的几种数据结构。 数据结构和序列 元组 元组是一个固定长度,不可改变的 Python 序列对象。创建元组的最简单方式,是用逗号分隔一列值: In [1]: tup 4, 5, 6 当用复杂的表达式定义…

开放网关架构演进

淘宝开放平台是阿里与外部生态互联互通的重要开放途径,通过开放的产品技术把阿里经济体一系列基础服务,像水、电、煤一样输送给我们的商家、开发者、社区媒体以及其他合作伙伴,推动行业的定制、创新、进化, 并最终促成新商业文明生态圈。 开放…

最新ChatGPT网站源码+支持GPT4.0+Prompt设定+ai绘画+GPT3.5 API绘画+语音识别输入!

前言 程序已支持ChatGPT4.0、Midjourney绘画、GPT3.5 绘画、语音识别输入、文章资讯发布功能、用户每日签到功能一键更新版本。支持手机电脑不同布局页面自适应。 1、提问:程序已经支持GPT3.5、GPT4.0接口 2、支持三种Ai绘画模型(Midjourney模型、GPT3.5…

苹果Vision Pro物料成本曝光,3499美金售价原来是这样来的

苹果首款头显Vision Pro售价3499美元,近期网上流出了Vision Pro的物料清单(BOM),清单显示,Vision Pro物料成本约1509美元。 其中,二片内屏占700美元,为成本最高的零组件,由索尼供应…

谁说不可兼得,用scrcpy实现手机免流播放bilibili投屏电脑

目前的手机大额流量卡都是支持设备免流的,但是如何将这个流量用在其他设备,就相当麻烦。于是我查找了些相关Android投屏技术资料,发现了一个简单的USB投屏工具——scrcpy。 安装说明 Office:https://github.com/Genymobile/scrcp…

【JVM】JVM收集器CMS与G1区别

文章目录 区别一: 使用范围不一样区别二: STW的时间区别三: 垃圾碎片区别四: 垃圾回收的过程不一样CMS回收垃圾的4个阶段CMS的总结和优缺点G1回收器的特点大对象的处理G1回收垃圾的4个阶段什么情况下应该考虑使用G1G1设置参数 CMS…

Spark运行原理

1.BlockManager BlockManager是Spark的分布式存储系统 主从结构:BlockManagerMaster/BlockManager(Slave) BlockManagerMaster 在Driver端启动 :负责接受Executor上的BlockManager的注册 管理BlockManager的元数据信息 BlockMana…

浅谈养老所消防安全存在的问题与解决方案 安科瑞 许敏

1养老场所消防安全存在的问题 1.1筑物耐火等级低 养老场所新建的建筑较少,尤其是对于民办养老场所来说,大部分都是以原有的民房、工厂厂房、废弃学校等修建起来,通过简单的改造,而后演变成养老基地。这些建筑整体耐火等级不够&am…

海康工业相机WPF打开方式

1.通过nuget安装Gige和imageLibrary GitHub - Touseefelahi/GigeVision: Simple GigeVision implementation, GVSP, GVCP protocol implemented 2.窗体布局xaml代码 <Window x:Class"WpfApp1.MainWindow"xmlns"http://schemas.microsoft.com/winfx/2006/x…

面向对象学习笔记

常见代码块应用 局部代码块 在方法中出现&#xff0c;限定变量的生命周期构造代码块&#xff08;初始化块&#xff09; 在类中方法外出现&#xff0c;多个构造方法方法中相同的代码存放到一起&#xff0c;每次调用构造都执行&#xff0c;在调用构造方法前执行静态代码块 在类中…

达摩院+华为 | NLP博士的春招历程

作者 | luan2006 整理 | NewBeeNLP 面试锦囊之面经分享系列&#xff0c;持续更新中 赶紧后台回复"面试"加入讨论组交流吧 写在前面 本博均985&#xff08;不同校&#xff09;、现北京Top2计算机类博士生、方向为人工智能-自然语言处理。 个人优势&#xff1a;绩点年…

PeekingDuck

介绍 计算机视觉项目可能会非常令人望而生畏&#xff0c;涉及到各种工具和包&#xff0c;如OpenCV、TensorFlow和PyTorch等等。不仅需要熟悉所涉及的工具和API&#xff0c;还需要正确组合各个包&#xff0c;以使整个计算机视觉流水线正常工作。 例如&#xff0c;OpenCV以[H&…