如何看待开源
一、什么是开源
二、开源能得到什么
三、开源相对于闭源(专有)的优势
四、开源的理念(特点)
五、开源的影响
什么是开源
开源指的是那些源代码或源设计可以被大众审查、修改和增强
开源是一种精神:我希望把我的东西能够分享出去让更多的人去使用它。
开源的理念(特点)
1、完全自主
开源的原生动力:所有程序员都喜欢源码。可以在一个无拘无束的、自由自在的环境下,干自己喜欢做的事
在决定使用某个开源的功能后,不会有后续的麻烦,不会有 license 的麻烦,不会有厂商停止服务的麻烦。遇到 bug,自己或者有人能将其修复,一些想要的功能,自己或者有人能将其实现,而且最好是,自己怎么折腾这个软件,也不会陷入法律方面的麻烦
真正需要源码的人,是程序员,真正能写出源码的人,也是程序员。
2、高度开放
“任何人能干任何事”:运行该产品,获取其源码、复制其源码、修改其源码
3、自发自治(社区)
社区里的人,是自发组织在一起的,完全基于兴趣而结合
90%是用户,他们只是搭顺风车或是凑凑热闹
9%的人积极参与、提交 bug、回答问题,这是‘贡献者’
1% 的人指导并控制项目的走向,委派任务和做决策,这是‘维护者
通过使用代码管理工具 git来控制代码,维护者负责代码审查和整合
4、自下而上
可以从技术、生态、成就三个层面来观察这一现象
从技术上,一开始都是作者脑海中一个不太清晰、朦朦胧胧的想法,然后在作者能力和经验的基础上,通过代码一步步明晰起来的,中间经过了若干次的架构调整,经历过两三次重写,然后才终于成型。开源项目在第一次露面时,大多数情况下只是初步可以运行,然后再进行不断地迭代。
从生态上,开源软件之间形成的关系,也是自下而上的,先有了语言、编译器、操作系统,然后做出了做出了实用工具、管理工具、做出了数据库、浏览器,做出了各种应用开发框架。
先做出底层的东西,然后才做出上层的东西,而且总是先有实践,才有了理论,总是先有代码,才有了设计模式、架构体系、软件工程这些东西。
从成就上,绝大多数程序员,一开始都是小打小闹,从简陋的程序开始起家,并没有什么宏大的想法
扎克伯格一开始做的仅仅是一个让学生们可以在一堆照片中选择最佳外貌的程序(Facemash),他做这个也只是因为好玩,后来才开始做了一个用于哈佛大学学生交流的网站:Facebook,
5、自由竞争
开源,是一个靠实力说话的世界
谁的软件好使,谁的评价更高,以及,最终,是谁获得了更多的市场份额。React、 Vue、angular的变化也是如此
个人竞争,如果你的贡献——主要是指代码的贡献——得到了认可,你就会获得声誉和权力。
6、赢在声誉
声誉会带来直接的好处:一旦某人在开源社区建立起自己的声誉,基本上他就不再会为职业生涯发愁,他们会非常抢手,尽管他们往往是分布在全球各地,但这不妨碍企业争着雇佣他们。
7、社区赋能
一个健康的社区远比良好的代码重要。如果代码消失, 一个强大的社区可以重写它;但是, 如果一个社区不健康, 代码最终也会失败。
与代码相比,人是最重要的。开源软件的生命来自于人,一个软件还活着,体现为它还在被运行,还在被维护,如果没有人关注和维护,这个软件也就走到了尽头
开源能得到什么
有用户,才让开源更有意义。
1、优化更新
在使用过程中,有些对于开源软件理解深刻的用户会尝试从代码里面看到到底是哪里出了Bug并且能够提出解决方案
2、吸引开发者加入
不断有新的开发者来加入到社区里面进行开发,这样就算是有老的开发者不做了项目也能够继续往前发展。
3.可以换成盈利赚钱
卖技术支持,你用我的开源软件,但是里面出了问题我可以帮你解决,我也可以帮你把你需要的功能给加进去。。
卖培训,跟上面差不多,因为只有我最懂这个开源软件了,你想要学习当然得找我了。
卖高级功能,一些开源软件会在开源的基础之上提供更多的高级功能,这些功能往往是闭源的
开源相对于闭源(专有)的优势
可控
很多人青睐开源软件因为相对其它类型软件他们可以拥有更多的可控。他们可以检查代码来保证它没有做任何不希望它做的事情,并且可以改变不喜欢的部分。不是开发者的用户也可以从开源软件获益,因为他们可以以任何目的使用这个软件——而不仅仅是某些人认为他们应该有的目的。
训练
其他人喜欢开源软件是因为它可以帮助他们成为更好的开发者。因为开源代码可以公开访问,学生可以在学习创建更好的软件时轻松地从中学习。学生还可以在提升技能的时候分享他们的成果给别人,获得评价和批评。当人们发现程序源代码中的错误的时候,可以将这个错误分享给其他人,帮助他们避免犯同样的错误。
安全
一些人倾向开源软件是因为他们认为它比专有软件更安全和稳定。因为任何人都可以查看和修改开源软件,就会有人可能会注意到并修正原作者遗漏的错误或疏忽。并且因为这么多的开发者可以在同一开源软件上工作,而不用事先联系获取原作者的授权,相比专有软件,他们可以更快速地修复、更新和升级开源软件。
稳定
许多用户在重要、长期的项目中相较专有软件更加青睐开源软件。因为开发者公开分发开源软件的源代码,如果最初的开发者停止开发了,关键任务依赖该软件的用户可以确保他们的工具不会消失,或是陷入无法修复的状态。另外,开源软件趋向于同时包含和按照开放标准进行操作。
开源的影响
linux操作系统是第一个开源的操作系统,开源也是因为这样发展起来。基于linux操作系统开发的安卓操作系统,如果没有安卓的开源开放,相信今天没有那么多手机厂商和移动互联网的兴起。
开源软件的出现为个人或小团队开启了大门,他们将自己赤身裸体的暴露出来,整个开源的社会体系中没有门槛,拥有的只有展现自我的激情,人人可以参与,也是一种公平的体现。
没有哪个企业能够完全依靠自己来适应这种数字化转型,也没有可能投入如此巨大的人力、物力和金钱去研究开发所有的服务、中间件、框架。正是有了开源,企业才有可能几乎是免费的获得这些服务、中间件和框架。极大的缩短开发周期,节约开发成本。