不少人拿开源和闭源两种软件的使用效果作比,妄图以此证明其中一方的优越性。看来代码水平的概念很容易与软件体验程度混淆啊。比如遍历1到100,写个循环和代码重复写100遍,使用上没有任何差异。很多时候决定一个软件的用户体验是否友好,一般和UI脱不开关系。而UI,往往恰是代码中最不能体现技术含量的部分,用户体验反映的是图形和设计的价值。那么拿漏洞数量做评判标准呢?虽然这个因子关联性较强,但实际上也并非十分客观的因素,当漏洞的可利用价值增大时,漏洞被发掘和利用的进程也会加快,这就造成短期内漏洞大量被发现的现象。而漏洞少,无法分辨出到底是真的漏洞少,还是被发现的频率低。开源造星多也不能说明问题。因为闭源是没有机会暴露在公众视野中,进而成为明星的,他们只能在幕后默默地工作。其实这也是开源吸引人的原因之一:能带来荣誉和名气。
所以讨论这个问题,只有从代码本身下手才有意义。不过因为闭源没有代码,事实上这个问题是无从谈起的。但是开源项目做大了名气之后有个公共白盒测试的好处,而闭源软件的黑盒测试相比之下就逊色许多。白盒就是大家帮你审代码,黑盒就是大家帮你审用户体验。当然是前者对代码的反馈优化要比后者的有效性强。集思广益,就算项目本身很差劲,在代码的传播过程中也能得到不断的补完。有些项目也不是一开始就出名的,有时是经过了大牛修改完善,突然衍生就流行开了。开源平台的社交效应很好的反映了这一点。大牛建个空仓,还没提交,就有一堆人收藏。但更多的开源项目是无人问津的状态,它们的代码优势并不明显。另外大牛之所以为大牛,也是技术拼来的,这些大家都看在眼里。所以,相比之闭源,在开源里,至少技术是存在筛选和进化的。有句名言怎么说来着,Talk is cheap~
最后个人很不认同这种将开源闭源对立起来的立场。事实上存在很多对闭源友好的开源项目,比如几乎每一个本地数据处理都会用到的SQLite,再比如几乎已经成为浏览器事实标准的WebKit……还有人拿常用软件很少开源来作证。我只想问问,代码对一般消费者有何意义?只有当作为开发者和企业参与生产时才能意识到开源的巨大价值。他们能读懂代码,同时他们也需要代码,生产者才是代码的受众。开源软件游戏是很少,但更多的闭源软件游戏采用了开源的引擎、开源的内核、开源的框架、开源的模块、开源的语言、开源的工具、开源的服务器、开源的数据库……这么多生产力资源如同宝库一样摆在你的面前,你跟我说没法拿来赚钱,所以没甚麽价值。让我说甚麽好!
前人栽树,后人乘凉。这没甚麽好比较的。 |
|