最近在网上看到这样一条微博,随后作者也给出了自己的解释,我们先来看看作者是如何解释他的这两个观点的。
其实,对于开源与闭源一直都是人们争论的一个话题。开源呢就是说,把自己写的系统或者软件或者应用的源代码公布出去,闭源就是不公布,进行保密。开源和闭源似乎是两大阵营,闭源的东西当然自属一大阵营,外人只能通过系统拥有者提供的IO接口,API进行编程,而具体系统中到底是怎么编写的,不得而知。微软就是一个很好的例子,他的源代码是不对外公开的,所有泄露微软源代码的人会被认为违法。 开源呢,由于“开原协议”的存在,也相互连结成为一个阵营,各自在各自的基础上发展的很繁荣。比如linux系统,比如android。
在我看来,开源总是有利于系统和软件的发展,人们可以从源代码中学到很多东西,也可以发现一些问题进行解决,大家相互学习相互提高,使系统使用起来更完善,更流畅。那,也存在相反的一面,开源的系统,由于暴露在众目睽睽之下,他的漏洞也是显而易见,也很容易被利用制造出病毒
开源软件因为没有明确的商业目标/利益驱使,是块良莠不齐的田地,注重技术、忽略用于体验、没有品质承诺和服务保障。你说它差肯定有道理,但这个差是差在整体质量和服务,而不是技术含量上。而商业软件恰好弥补了开源软件这个缺点,用户体验好、安装维护便捷、有售后技术服务、产品&公司有延续性...
其实,闭源软件和开源软件都各自有着吸引投入的方式。闭源软件是商业利益驱动的——因为有人买我这个软件(或者相关产品),我投入工程师开发。开源软件是合作需要驱动的,我这个软件有很多人需要和它接口,我通过它卖我的产品,同时让生态链上的合作伙伴可以基于这个软件开发更多的更新,从而形成事实标准。这样所有人为了降低开发成本,就会把代码upstream上去,从而形成多家打一家的局面。
两种开发模式,在不同的场景下有不同的人力吸附力。比如前面有人举的OpenOffice,怎么都玩不过MSOffice,因为它没有商业公司的合作需求。但如果你说在服务器OS上,现在没有其他OS的发展势头超过Linux,包括微软自己的云服务器都在用SuseLinux。现在也不要提Unix的伟大,Unix也在一步步丢失市场。因为这个市场生态链长,有合作需求,谁都愿意上传代码上去来降低自己在这个领域的投入。
开源与闭源都是技术设计的结晶,孰优孰劣完全取决于是否商业化,闭源的windows普通用户版在设计用户体验功能上胜过Linux内核的发行版,开源的安卓的市场占有率和性能都居于前列。不过总体上,商业软件投入了人力物力以及设计方案,最重要的是市场导向性较强,不然市场调查有什么用。软件迭代维护也随着用户市场变化而变化,速度迭代快于自由软件。绝大部技术都来源于自由软件,谁抄谁也说不准,技术得具体用起来才知道,不然哪有那么多Linux内核系统啊。开源是种态度。
实际上,开源***的优势在于创新,在原有的基础上加入自己的新理念,进行二次创新,但是一旦这种创新失去动力后,就不要妄想谈前途了,在精神和生存上,你会选择谁?对于国内的程序员来说,生存是一个非常实实在在的问题,这也是为什么国内在开源界几乎没有令人瞩目的成就。
其实现如今应用的环境,完全闭源的环境和完全开源的环境很罕见了,而是混源状态,事情都是相辅相成的,如果没有开源,闭源的软件可能也没有那么NB,所以,讨论开源闭源孰优孰劣也就没有什么意义了。开源和闭源都有着各自的优缺点,我们不能拿着某个的优点或缺点去无限的放大,而是应该客观的去看待,凡事都不是绝对的,都有着双面性,如若开源和闭源可以很好的合作(不是为了遏制对手的壮大的合作),那岂不是更好。