"开源"是个好东西.
然而,开源与否,和成功半毛钱关系都没有.
问mac os为什么在linux这么好的情况下还有市场,
就好比问往菜里加多少糖才能让菜更咸一点一样.
当年乔布斯回苹果时,apple急需一个全新的mac os系统(即现在的osx),从头开发
是不可能的,于是他找到了linux的作者Linus商谈将linux作为新mac系统底层的想法.
然后按照这二位的脾气,显然最后谈崩了. 乔布斯觉得将linux作为mac底层对linux来说
是难得的宣传linux的机会, Linus觉得TM老子开源的! 马上你们什么windows什么mac os全都要
死逼了我还做mac os的底层? 开玩喜呢? 很多很多年过去了. 结局如何,见仁见智.
开源能吸引大量的技术工作者,然而技术工作者都有其特殊的偏好.
搞技术的都喜欢技术,喜欢神奇的算法,喜欢解决难题,喜欢传说中的Big Clean Problem.
首先这个问题要够大够难,其次还得能够清晰地描述. 比如:
如何最快地对一亿个元素进行排序?
不要说做,光是听起来就有挑战! 然而现实是, 大部分问题都是又繁琐,又难以描述和评判的.
例如:
点开这个窗口另外两个钮要变灰同时如果用户点击了变灰的按钮就会弹出对话框如果选
否那么两个钮中的另外一个钮亮起来同时关闭当前窗口然后发一封邮件.
这种玩意毫无难度,逻辑又复杂,解决了也没有任何值得庆贺的东西.我相信没有一个程序员爱写
这种玩意. 德军总部3d开发时, 卡马克创造了第一个FPS世界,那是一个和谐的,由天花板,地面和
墙,门组成的3d世界.天花板渲染成单色,地面渲染成单色,墙可以随着视角进行3d旋转,门和墙类似,
但是可以打开和关闭. 一切都那么完美. 直到游戏设计师汤姆跟卡马克说"哥们,咱们搞个隐藏要素,
玩家走到某个墙边按下开门键就能让墙向后推,展现出一个隐藏的房间!" 当时卡马克的回复是:
推你妹啊! 墙就是墙,老子的程序世界没有能动的墙!
而最后的事实是,隐藏的房间成了德军总部3d游戏里最好玩的元素之一.
说这么多,就为引出一个观点, linux能吸引无数的大牛程序员不断优化,能吸引无数的
大牛程序员debug,但是,不big,不clean的problem谁来搞?
linux世界有像乔布斯一样趴在显示器前盯着空白窗口各种调只为调一个完美的边框
比例和色彩的人吗? 有专门采集用户体验只为获得一个最佳操作感的人吗? 有专门雇佣
一堆人坐在那成天审核应用商店的人吗? 有专门设计晃一晃鼠标让鼠标变大方便用户的人吗?
windows,mac os,linux,对普通用户最友好的是哪个? 对IT专业用户最友好的又是哪个? 为什么会
这样? 不言而喻. 对技术的选择性偏好总是会将开源系统的代码奉献者导向到一个对普通用户来说
十分诡异的方向. linux下或许会拥有最好的包管理器,或许会拥有最好的编译器,或许可以成为最合适的服务器后台系统,但绝不会拥有最友好的对普通用户的用户体验. 一切不big,不clean的"小细节", 开源界都有统一的口径:
"你觉得哪里不爽你可以开fork自己改啊".
"我就是没有窗口系统不爽你自己加啊,我这个那个就是不支持不爽你自己改啊,总之这些鸡毛蒜皮的
事情你们不爽就自己改我还要优化内存分配策略呢别烦我你自己改啊."
很多人以为这是开源软件"自由"理念的体现.其实呢?
这纯属就是把不感兴趣的问题避而不谈的体现.
在微软你对这个不感兴趣,比尔盖茨把你开了,在苹果你对这个不感兴趣乔布斯把你骂出翔,
在外包公司你对这个不感兴趣领导扣你工资,但是在开源界你对这个不感兴趣,谁能奈何你?
搞技术的人要干的第一件事,就是跳出技术,提升思维,
从每一行代码一路思考到用户层面,思考到某个需求真正的目的. 思考技术的
局限,思考技术的优势, 这样才能做到知行合一,
这样才能让技术为你服务,而不是你成为技术的宗教信徒.这样才能避免口舌之争,避免
问出linux都开源了mac为什么还有市场的问题.