大教堂与集市_书评


我第一次接触到这本书是在2021-07-06在得到的听书栏目中,一年半的时间过去了, 2023-01-25利用春节假期把这本实体书读了一遍,总体感觉受益良多,作为一名软件从业人员推荐给这个行业的同学们。我在写下这篇书评时特意拿出另外一本书《黑客与画家》,当这两本书放在一起对比阅读的时候,如同同时在听两位前辈的技艺切磋,非常之过瘾。
首先给大家普及一下概念,日常很多人对于“黑客”和“骇客”可能是混淆在一起,这本书特意进行了澄清。

黑客与骇客的不同点

在《大教堂与集市》一书中作者描述了黑客与骇客的多个不同点,我总结如下:

对比项目 黑客 骇客
英文名 hacker cracker
角色定位 建设者 破坏者
个人特点 勤奋、上进、富有责任感 懒惰、缺乏责任感
技术能力 高超 一般(入门者)
人们对其态度 尊重 讨厌
运转机制 声誉驱动 金钱驱动
信奉文化 礼物文化 金钱、权力或其他

黑客的含义

在《大教堂与集市》中认为黑客是醉心于软件和网络的编程高手,是乐于分享和喜欢突破极限的问题解决专家、天才的发明家和艺术家,他们技术高超、热衷于解决问题、突破极限。他们生来反对权威。
在《黑客与画家》中作者详细地说明了hack的由来:

hack作为名词有两个意思,既可以指很巧妙或很便捷的解决方法,也可以指比较笨拙、不那么优雅的解决方法。两者都能称为hack,不同的是,前者是漂亮的解决方法(cool hack或neat hack),后者是丑陋的解决方法(ugly hack或quick hack)。hack的字典解释是砍(木头)解决一个计算机难题就好像砍倒一棵大树。那么相应地,完成这种hack的过程就被称为hacking,而从事hacking的人就是hacker,也就是黑客。

大教堂与集市的核心区别

作为软件领域的经典书籍《大教堂与集市》详细阐述了在软件开发方面这两种模式的区别

对比点 大教堂 集市
软件架构的设计 自顶向下 自下向上
采用的群体 商业公司 开源组织
源码特点 闭源 开源
软件发布频率 尽可能在稳定的情况下发布,频率较低 尽可能快的发布(哪怕存在bug),频率较高
修复bug的成本 较高 较低
对bug的前提假设 难找的,修复由相应的开发人员进行 所有参与者均可参与到找bug并修复的过程中

程序员的高下区别

判断一个程序员是业余还是专业的标准是:业余程序员解决问题、专业程序员制造问题。爱因斯坦也说过类似的话“提出问题比解决问题更重要”,在《大教堂与集市》一书中作者认为“很多软件开发人员不需要也并不热爱他们正在开发的软件,他们把编程只是当做差事而已。”与此形成鲜明对比的是专业(卓越)程序员把编程视为一种享受,他们对此充满热忱,在面对难题的时候他们没有退缩而是将解决问题视为一种发明与创造,是智力的挑战。
业余的程序员习惯于重复发明轮子,他们缺少思考。在编码时业余程序员只是满足于知道如何写出一段代码,而卓越的程序员憎恶重复发明轮子,他们绝不从零开始而是更重视改写和重用,正如linux并没有尝试从零开始写操作系统,而是重用了minix的代码和理念(尽管后来Linux系统中几乎完全放弃了minix的源码)。

在《黑客与画家》中作者认为普通黑客(业余程序员)与优秀黑客的另外一个重要区别就在于是否会“换位思考”,有些黑客固然很聪明,但是完全以自我为中心,根本不会设身处地为用户考虑。这样的人很难设计出优秀软件,因为他们不从用户的角度看待问题。
在这本书中作者多次强调了“礼物思维”:软件行业的特殊性在于“非实物化”,在传统行业更多的是“交换思维”,而在软件行业“礼物思维”比“交换思维”显得更有用,更有力量。在《大教堂与集市》一书中作者写道:“你之所以获得地位和荣誉,不是通过支配别人,不是通过美貌,也不是通过拥有别人想要的东西,而更多的是通过付出,特别是付出你的时间,付出你的创造力,付出能体现你技能的成果。”这就是软件行业高效运行的“声誉机制”

Comments
Write a Comment