最近读完了传说中的开源圣经《大教堂与集市》,觉得值得记录一下读此书的所思所感。
- 1.对计算机发展的整体感知 计算机的整体历史并不算长,但其发展颇为迅速,不到一百年的时间翻天覆地。为什么能发展得这么快?我想人力物力的大量投入是原因之一,但背后更多的是基础学科数千年的丰厚积淀。没有数学物理化学,计算机的晶体管、电子电路、界面交互、网络通信等一系列操作是不可能实现的。按照西方的观点,理化可以追溯到数学,数学可以追溯到哲学。因此学习应致广大而尽精微,我得继续寻找有关数学和哲学方面的书籍进一步阅读。到这有点明白师父推荐给我的为什么不是有关计算机的书籍,而是《数学:它的内容、方法与意义》。 其次,计算机作为一种商品流入到我们的日常生活,那么背后一定有相应的服务商和开发商。有了市场和经营主体,就有了残酷的市场竞争以及不为人知的商业利益,企业之间优胜劣汰,并购行为变成兵家常事。进一步来说,市场活动又属于经济范畴,而经济受到政策的约束,政策的制订涉及到政治主体——政府。 政府的意向几乎决定了大的市场背景是怎样的,第一是因为政府拥有政治权力对市场进行管控,第二是因为政府拥有巨额的资金,可以负担得起“天文数字”level的费用,政府一旦作为需求方出现,注定成为市场竞争的香饽饽,谁拥有了政府的订单,谁就大概率在这场市场的角斗中成为胜者,就像拥有美国国防部订单的洛克希德马丁公司和波音公司。现在的我逐渐认识到事物不是非黑即白的,影响其发展的因素是混沌的,是纷繁复杂的。
- 2.大教堂与集市 大教堂的模式其实是我们每个人都熟知的,它是指集中化的系统的管理与运行方式。就拿学校来说吧,学校的基层单位是班级,班级由班主任负责,年段长负责管理班主任,年段长又要接受学校教务处管理,教务处得向校长负责,校长要为学校的教学质量向社会负责,这样逐级向上增长的管理模式对于我们来说真是再熟悉不过了。 那么不禁要问,集市又是什么呢?集市实质上与菜市场无异。菜市场上,来自各地的叔叔阿姨们每天起早贪黑在菜市场中抢占优质摊位,售卖自己的商品。相对于学校的管理方式,菜场的管理是相对松散的,没人管你从几点卖菜,卖到几点收摊,也没人管你采取什么样的销售方式,只要遵守好市场管理局制订的规则就行了。 这样的模式运用到项目开发上,你更信任哪一种模式产出的产品呢?是选择大教堂模式下数量恒定、管理有序的“精英团队”;还是选择集市模式下管理松散、项目贡献者可能来自世界各地的团队呢?我似乎下意识就选择了前者,但问题扑面而来。为什么现在超算前500强跑的都是linux呢? Apache为什么能取得成功呢?为什么github的全球用户已经超过了7300万呢? 我不知道这些问题的答案。 大教堂与集市这两种模式的表述是简单的,但对于这二者深层次的逻辑区分,现在的我不能体悟。我只知道,作为一个计算机学习者以及一个未来可能的开发者,当读到“源码与你同在”这样的话语时,它似乎一下子自然而然地打动了我的心。
- 3.闭源与开源 闭源是一种选择,似乎能够更好地保护自己的商业利益,维持自己的市场竞争优势,从而在残酷的市场环境下存活下来。但是对于一个项目 / 软件想要正常的运行,运维是必不可少的,而运维是要占据开发者大量的精力。在开发者的数量是恒定的情况下,开发者的一大部分精力被运维占用了,那就注定开发者会减少在研发新特性、新技术的精力投入。而如果一个产品失去了能够打动消费者的新特点,也许为该产品pay bill的用户会越来越少,营收减少导致利润减少,利润的降低经过“现实”这个编译器,意思就是项目组的成本必须下降,于是接下来的市场行为是让一部分人滚蛋,整个项目开始陷入恶性循环,越来越少的开发者维护该项目,越来越少的开发者开发新特点,该项目的用户逐渐流失。在赢者通吃的规则下,除非是达到垄断级别的开发商,其它的开发商都面临着“一招不慎,满盘皆输”的风险,一旦lose,等待他们的结果就是埋没在历史的潮流之下,然后无声无息得消失。 那么选择开源呢?把源码开放给全世界,每个人起码都拥有参与使用该项目的机会,相比于闭源来说,更容易给人带来一种尊重感,你也更想去尝试一下。那么这个项目的参与者可能就会逐渐增加,只要眼睛多,bug容易捉,该项目在管理妥当的前提下,会变得更加完善,在此过程还可以获得同行评审。并且项目的主体负责人不需要为全世界参与该项目的开发者们买单,成本直线下降。遵照礼物文化,贡献者们也会因为自己对开发作出的贡献而获得相匹配的声望与名誉,双赢。 但是开源似乎让项目主体负责人失去了垄断该项目带来的巨额收益,看上去血亏。然而市场调研发现,软件开发的利润只有5%来自于软件售卖,95%来自于软件更新与维护带来的后期收入。因此该书的一个核心观点是:软件带来的利益不是如拍卖般的一锤子买卖。软件不是制造业,而是服务业!qq、微信、支付宝、淘宝、京东和王者荣耀这些应用本身的使用为什么不收费?构建起一个用户生态,从而发展更多更可观的业务,相比临时收费数十元或者数百元的软件费用,哪一个更香呢?哪一个能帮助企业活得更长久呢? 我们又有疑问了,难道不收费一定就是好的嘛?其实我们身边也不乏像goodnotes、老头环等收费软件。每个产品的定位不同,发展路线也不同吧。对此,没有唯一的评判标准。
- 4.黑客 如果问小时候的我,什么是黑客?答:他们身披黑色斗篷,带着经典的白色面具,他们在互联网世界里无所不能,可以随心所欲地获得各种权限,干一些“非常炫酷”的事情。现在才明白,干这种“炫酷”事情的人应该叫cracker(骇客),他们不是真正的黑客。因为真正的黑客应该是怀着对技术的热爱,永无止境地追求更好的技术,并让技术造福全世界。黑客和骇客的核心区别在于:黑客搞建设,骇客搞破坏。这样对黑客的定义也恰好符合了我高中时期对未来的愿景,“此生只要能为这个世界作出一点点善的改变就好啦”。 学习知识本身是枯燥无味的,因此学习知识 / 技术 -> 需要源动力,源动力 -> 好奇心,好奇心 -> 善于提问,问题 -> 这件事情足够有趣以至于吸引人浮想联翩。而计算机是一个充满迷人问题的世界,每一个问题拓展下去都是广博且精深的,研究这些问题需要敏锐的思维、全神贯注的专注以及出类拔萃的动手能力。而我自信具备这些素养的基础,于是乎就出发吧!辛苦的工作和投入将成为紧张的比赛而不是苦工,动手开发将带给我无穷的乐趣!