这看起来似乎挺奇怪的,因为这样的观点来竟然自于 OpenLogic 的创办人,而该公司专注于在开源领域提供帮助。 但是事实上,闭源在某些情况下优于开源。
针对闭源……
1. 出了问题,不用自己搞定
只要是软件,难保不出问题。要是开源软件出了这事儿,要么你自己,要么某个欠你人情债的工程师,总得有个人要花费时间排除 bug 。通览代码,求助于开源社区或者开源软件的供应商,通过这些手段来解决问题。
但是闭源呢,一旦你确定开发商代码出了问题,ok,你的工作到此为止!你只需发个文件,等着就行了。当然,可能会等上几个月或者几年,问题才能得到解决,更甚者永远得不到答复。但是除此之外,你还能做什么呢。
把问题踢回去,放松,期待最好的解决方案,仅此而已。
2. 不必担心贡献回流到社区
如果用的是开源软件,很有可能, 你解决了一个bug或者做出了改善,之后你的代码就会进入到社区,随着时间的推移从而帮助测试或者维护。
3. 你不必考虑开源许可条款及规定事宜
对于开源,你必须遵循所使用的组件的许可条款。例如,想要搞明白Apache软件许可证和GPL之间的区别与联系,是需要花费一定的时间的。使用哪一种许可证取决于你所用的开源组件以及你如何使用这些组件(发布给第三方或者内部使用),据此都有不同的许可证可供应用(可附加到文档中进行说明)。
像OpenLogic这样的公司可以很容易地理解并遵守开源许可,但是针对闭源,你大可不必担心这类事情!你的供应商的许可协议把有关软件的所有的权利都收走了,如果没有你的公司的律师明确同意的情况下,你几乎是不可能的想以别的方式使用这些软件,想都不要想。当然,你还得考虑许可证数量、突如其来的软件合规性审计、随着时间的推移而恶化的条款、几乎难以理解的法律术语,但至少你不必了解如何使用开源组件。
4. 你用不着为每个组件在众多选项中进行选择
针对数据库,Web服务器,应用服务器,编程语言,图形用户界面框架,类似的方面等等,开源都提供了大量的解决方案。在每一个特定的领域,你都可以找到运用不同的架构方法,使用各种语言构建的健壮的成品。找一款功能相似的工具很容易,这些工具都针对不同的使用场合进行了优化(性能、可扩展性、简洁之间的比较)。为了确信一个工具软件在既定场合下功能够满足需求,可以下载下来,试用一下。
使用闭源软件的话,你就用不着对付那么多的选择。你只需要在每个领域探索两三个大厂商提供的产品。如果供应商没有提供免费试用版本,或者很难说服你为试用品买单,甚至根本不和你签署试用协议,那你就节省时间了。
5. 你不必四处找幻灯片
如果打算找一些软件的会议简报,架构图表,截图,以及其他相关的文档,这需要花费一定的时间。使用开源软件,你得读百科,访问论坛,还有邮件列表,才能获取到你需要的相关组件的信息。
使用闭源软件,一通电话就足够了,只需坐在自己舒适的办公室,会有西装革履的专业人士把 PowerPoint 演示文稿寄送到你的面前。当然,在你提供自己的联系方式之前,销售人员是不会给你打电话的。这样看来,至少自己没必要在网上搜索带有漂亮的图形的PPT。
6. 你无需到处寻求技术支持
你可以得到来自开源社区,自己的工程师,或专业开源组织的帮助。这可能需要一些时间,以决定是否要服务等级协议(SLA)的支持,以便于在保证的时间内得到答复,就像从OpenLogic那里获得帮助一样,或者如果你可以自由的发问题到邮件列表,自己解决。
闭源就不同了,你根本不需要担忧从哪获得帮助。而且,你可能根本用不着和工程师当面交谈,只需要知道给谁打电话就OK了。
7. 认输就行了
开源软件,总会有办法解决问题,打补丁,改善,强化,重构,升级或者重写。没可能跟闭源那样,甩手走开。当然,你可以谩骂开发出这个问题软件的社区,但是你仍然可以解决问题,从社区或者组织那里获得帮助,或者自己动手解决。
而对于商业供应商,那就远不能满足于骂一顿和花费一天的时间来找他们。