今天与大家聊一聊软件开源。事情的起因是一次闲谈的时候,市场部的同事表示:不做软件开发的人不能够理解为什么要把软件源代码公开出去。当时的我很惊讶,因为就像他们不理解为什么要开源一样,我也不理解他们为什么不理解为什么要开源(套娃开始......)。开源软件的定义如下:开放源码软件是一个新名词,它被定义为描述其源代码可以被公司使用的软件,并且币软件的使用,修改和分发也不受许可证的限制。开放源码软件通常是有copyright的,它的许可证可能包含这样一些限制:蓄意地保护它的开放源码状态,著者身份的公告,或者开发的控制。“开放源码”正在被公众利益软件组织注册为认证标记,这也是创立正式的开放源码定义的一种手段。接下来我们来讲一下大家对于开源的误解:开源,并不等于你可以无条件地使用该项目,开源是有协议限制的。开源协议多种多样,常见的几种协议以及它们对使用者的限制可以参考下面这张图。或许在大多数人的印象中,代码一经开源,就和作者没什么关系了;只有在简历上看到:“某某开源项目作者”时,才会惊呼:“原来那个啥是他写的啊!”。实际上,确实存在这样一种开源协议,它没有任何使用上的限制,只要你做出声明表示使用了运用该协议的代码即可(MIT协议唯一的要求:The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.)通俗地说,即使你在一个嵌套了18级的目录里,像保存某些珍贵学习资料一样,建立一个隐藏文件夹,并在其下一个隐藏文件里包含这样一份声明,你也可以对该项目为所欲为,这个协议叫MIT协议,基本上是所有开源协议中,最为宽松的一个了。其他协议会对使用者有更多的限制,例如GPL协议限制了“使用GPL协议开源代码的代码,也必须开源且使用GPL协议”,这是一个制作套娃的协议,linux操作系统就是使用的GPL开源协议。以上,我们站在独立开发者的角度,了解了开源的影响,下面我们来说一说商用软件的开源。上个月有一款区块链钱包开源,是Cashbox,嗯……请大家假装不知道这是我们公司的产品,这样以下的内容就是客观、公正的科普了。我们认为Cashbox的开源是有意义的,首先,区块链作为新兴行业,开源可以吸引更多的开发者、使用者和精神股东,更容易吸引路人的关注;其次,对于开发者,Cashbox有很多对开发者友好的设计(例如完整的链数据结构,开发者可以直接用来扩展其他链,如BCH、EOS等;Cashbox集成了eth测试链,供开发者转账、调试;DApp可以根据业务订制功能),它为开发者提供一个高可用的、简单组合的去中心化钱包。最后,对于使用来讲,区块链钱包和金钱相关,如果不开源,人们在用的时候或许会产生顾虑,开源,同时是对使用者的一种保障。最后再说一些我对开源的理解吧,从写代码的角度来说,开源为我提供了切实的便利,不只是一些开源代码,还有业内高人出于开源精神而写的一些文章,包括但不限于:专业知识的通俗讲解、带着你理解linux源代码等。而我在主观上,也愿意把我的代码开源给大家使用,所以你可以来我的“github”主页标一个星吗?点此回看 Cashbox 系列:开源区块链钱包 Cashbox技术实现(一)开源区块链钱包 Cashbox技术实现(二)开源区块链钱包 Cashbox技术编译教程(一)开源区块链钱包 Cashbox技术编译教程(二)开源区块链钱包 Cashbox市场答疑