开源是指源代码公开,是一种软件发布模式。我们通常看到的软件都是经过编译的程序,只有软件的开发者才能看到程序的原始代码,也只有他们才知道代码的整个架构和思路是怎样的。而开源就是把这些我们本来不知道的源代码公布出来,所有人都可以对这些代码进行修改和优化。
利大于弊
对于公司来说,要想盈利,公开软件的源代码是有风险的,因为开源意味着竞争对手也可以看到,一些特别的算法或者代码思路可能会被盗用。这时,源代码就像是高手的武林秘籍,你肯定想越少人知道越好。所以大部分公司的软件如果是开源的话,他们只会公开其中的一部分,有竞争力的核心部分一般是不对外公开的。但总体来说,开源的好处是大于弊端的,开源可以让所有人来修改和优化代码,使程序的运行更加完善、软件的功能更加丰富,而且随着互联网的发展,共享的理念越来越受到重视,开源有利于开发者之间的交流,能够推动项目的进展,还能推动整个技术行业的发展。这种情况就好像是再强大的武林高手也是要参加武林大会和各派掌门切磋武艺交流学习的。
最著名的开源项目就是Linux系统,Linux是一种计算机操作系统,和我们通常使用的Windows系统类似,但它是开源的。Windows系统是基于图形界面操作的,而Linux系统最大的特点是基于命令行操作的,这个也导致Linux受众面没有Windows广。但大多数服务器都是基于Linux系统的,例如谷歌的安卓系统、苹果的iOS系统,也就是说我们访问的那些网站和软件都是Linux系统在支撑着,毫不夸张的说,Linux是互联网的基础。而且,针对Linux系统的病毒爆发是世界上最少的,为什么呢?因为开源,开发的人这个项目的人多了,Linux系统形成了众多版本,所以病毒在这个版本生效了,在另一个版本就不一定生效。而反观代码不公开的Windows系统,我们的计算机就要装着各种杀毒软件,防止系统被病毒攻击。
开源是趋势
如今,不管是哪家公司或者企业,即使是全球最强的科技公司也开始免费共享他们最新技术背后的代码,可以说免费共享达到了空前的盛况。他们知道选择免费共享不仅会推动整个技术行业的发展,他们也将因此获得进步。这是一个既利己也利他的选择,也是如今的科技行业运转的基本方式。
苹果开源
2015年,苹果开源了他们的编程语言Swift,苹果的这个举措使得他们的编程语言不仅支持苹果设备,还可以支持所有的设备,包括运行 Linux、Android 和微软 Windows 系统的设备,也就意味着即使是竞争对手的设备也不再被他们排除在外。苹果的这个决定是明智的,因为随着开源软件的发展和扩张,现今的互联网时代和 90 年代Windows 系统繁荣发展的世界完全不同了,它不再仅仅依赖于单独一个计算平台,而是共享才有利于自身技术的进步,Linux系统就是一个成功的例子。
人工智能开源
谷歌也选择公开了TensorFlow的源代码,TensorFlow 是谷歌人工智能服务的软件引擎,谷歌的图片和语音识别以及语言翻译工具都基于该引擎。为什么?因为谷歌知道人工智能对他们的未来而言意味着什么,他们知道自己选择共享软件意味着自己发展进步的速度将会更快。因为即使谷歌再强大,也不可能把全球的顶尖技术人员都雇佣到自己公司,而选择开源就能够集思广益,让全球的技术人才帮助完善这个项目。当然谷歌也不傻,没有把TensorFlow 的所有秘密和核心都公开,而是有选择性地开源,但是他们公开的代码也足够他们和这个行业利用来产生重大影响。
以上是从科技行业发展的高度来讲述开源的好处,其实开源对于程序员个人来说也是良师益友。参加开发一个开源项目,程序员之间可以进行技术交流,碰撞出智慧的火花,不仅能推动项目的发展,更有利于个人的进步,因为开源意味着你可以看到别人写的代码,从中学习到很多他人有而你没有的优点。
凎,我还以为这网站开源了
开源的代码是互联网大势所趋
我不喜欢windows系统了,我喜欢用命令行操作的linux,只因操作帅气。
开源?我一般都是开源一些简单的作品,因为......
长见识了
第一张图是C++?