关于开源和闭源的一些想法
法律带给了人民公正的社会。在和平发展过程中,总会有这样那样的选择。
关于开源
其实我们很多国内的程序员朋友的成长都是从开源开始的。 开源,看上去好像是我们把自己的价值公之于众,显得廉价了,其实并非如此。
其实更多的还是好处
- 在网友的监督下,能够及时发现代码存在的BUG和漏洞
- 能够得到更多网友的建议,对产品发展是有利的
- 网友也能通过平台提交优质代码,同时也提升了自己的编程水平。
- 可以更好的建设周边软件
- 可以吸纳一些优秀人才加入团队
- 可以提高产品的知名度和影响力
- 减少重复造轮子
- 更高效快速的解决实际问题
当然啦,开源很容易被别人剽窃,特别是核心业务比较重要的系统,容易被人破解和攻击,所以有些人虽然是开源,但也抱着极谨慎的态度,比如只开源老旧版本、核心代码不开源等等。
任何事物都有两面性,既然想要开源,我建议还是彻底开源,这样对产品来说得到的能量才能最大化。 大多数开源的产品,都无法直接投入使用,比如redis,它得结合实际的业务才能用的起来。 所以对于无关国家机密的代码,尽量还是开源彻底一点,收获会更大。
关于闭源
闭源也有其优点
- 劳动成果不会被窃取
- 增加破解的难度和成本
- 所有解释权都在生产商,包括发现的漏洞,也极难传播出去,避免重大的损失
- 所有开发计划的主动权都在自己手上,别人无从知晓,也无法改变。
- 对用户而言具有神秘色彩
- 通过问卷调查或者提交建议的形式,获得用户反馈,通过这种在使用过程中的“黑盒测试”,来了解软件现状,针对性的进行软件升级。避免在代码层面有过多的干预。
闭源做的比较成功的有早期的微软
当你的开发团队足够优秀的时候,闭源也是一种选择。能屏蔽掉一些水平不高的声音。
如果选择闭源,我也建议,就干脆闭源到底。用户使用产品的时候,只关心是不是好用,如果真心好用,他们不会想去看源代码,也不会迫切的想要去改变软件。
总结
总的来说,开源也好,闭源也好,各有各的优势和缺陷。 当然作为开发,我还是建议多开源,多给大家一些学习的机会。
这两天看到一篇文章,说一个闭源的作者卖软件,结果用户发现了另一个开源的项目,都差不多,很多用户就选择开源的了。然后这个闭源的作者,就跑过来跟开源的作者,说请求闭源。
其实这就好比是两家餐馆,一家厨房重地,闲人免进,吃饭收费贵, 而另一家餐馆做菜的过程全程开放,大家都可以看到配料、食材、炒菜过程等等,而且吃饭还便宜。 那作为一个吃货,肯定会选择便宜的饭店嘛。
说实在的,这跟开源闭源并无任何内在的联系,只不过是为了利益,想把失去的客户流量再找回来,而希望做同样事情的人一起来形成垄断。 商人思维如此,我并不诧异,只是既然你想要别人闭源,肯定是要付出代价的,谁也不可能因为你一句话,就放弃自己坚持做的事情。
归根结底,源码只是一种后台资源,它能控制生成出来的产品千变万化。 而用户认可的永远是产品,你的代码是优雅得像个绅士,还是烂的像泥巴巴,他们不会太过于关注。
如果你想获得一些外部得帮助,公开他,让大家一起为一个目标去努力改进。 如果你想作为自己得私产,那也可以不公开,在团队内部共享就好了。 只不过在这种情况下,你需要一支优秀的开发团队来规划设计,才能把产品打造的与众不同,独一无二。
开源或者闭源,只是一种选择,从了你的内心吧。