《大道至简》的幕后故事
分类: 《大道至简》 2007-04-15 18:12 4979人阅读 评论(9) 收藏 举报
一、大道至简与愚公移山 =======
《大道至简》一书最初的领悟来自那张EHM图。这个故事我在书中已经讲过:在一次Delphi.NET培训的准备工作中,我顿悟“语言只是工具”,并由语言的工具本质为起点,透视了整个软件工程体系。这张图后来被补充为“软件工程层次模型(EHM)”。而从这张图起,我便有开始为我的这些想法写出一本书来,而书的名字就是《大道至简》。
我写书是从前言开始,在写《大道至简》的前言(第一版的“前言后语”)时,我并没有想到从哪里开始写整本书。也就是说,只有写书的想法,却没有整个框架。因此你在前言中看不到有关“愚公移山”的任何信息。开始写第一章的时候,久久不能下笔,也不知道从何论起。我找来一本成语词典,东翻翻西翻翻,一眼便瞅见了这个“愚公移山”,再一想:嗯,的确是个好题材。这才由此下笔,因而《大道至简》开篇便与众不同。
二、第一版中的愚公移山 =======
在第一版(电子版)中,愚公移山的故事只是用来总结“编程的精义”。尽管我称愚公为“工程名家”,但事实上第一版中所写的愚公“并不怎么会工程”,我对“愚公式的开发”、“积极的愚公”、“忽略成
本的愚公”等都是持批判的态度的。唯一被肯定的是他的“聚室而谋曰”和“编程的(而非工程的)精义”。
我并没在更多的地方提到愚公,但这并不妨碍我想念这个人物。我在2005年4月完成了第一版的全文,7月我从郑州的那家软件公司职辞,驾车去西藏旅游。——说是驾车,其实不是我驾(我不会开车)。所以一路上便是听评书和想问题,这个过程中想得最多的便是这本书,以及书中提及到的工程问题。
思考的过程终于在我抵达珠峰大本营的那晚爆发了,爆发的原因则是一罐啤酒。我很自信地弄了一罐啤酒,准备在珠峰底下过过瘾,结果只能喝下一半。就这一半也很快发作了,当时便心脏受不了,晚饭也没吃便躺下睡去,而半夜又醒转来睡不着。这睡不着的光景里,愚公就开始移山了。——哈哈。整个愚公家族近三百年的移山工程,如同在我脑子里活着一样,一幕幕地演过去。
从西藏回程的时候,我一遍又一遍地回想这个故事,终于不会再忘却了。我想我已经找到了《大道至简》一书的另外一种述写方式:一篇文言的、寓言式的故事。
三、第二版的起因 =======
第一版实在太薄,大概只有120来页,而且还是一种小开版的。当时也是跟博文视点谈的出版事宜,直到2005年10月也没结果。而我在9月开始便受聘于上海盛大网络,任架构师,并随即展开了“数字家庭
战略”中的软件平台的架构设计工作。我基本上不会再有时间纠缠在《大道至简》一书的出版,或者“愚公移山”故事的编写上。因此,我在10月以电子版的形式发布了该书的第一版,并约请蒋涛写了序。
第一版最终不能作为印刷品出版,这很令我沮丧。但心里仍有些不甘,当时给蒋涛说:如果博文视点有计划要出版这本书,我还是把优先权留给他的。
电子版引起了广泛的关注,也有一些无关痛痒的争议。这些现象引起了邮电和清华两家出版社的注意,他们先后送出了合作的意向,想要出版这本书。清华出版社的朋友甚至为这本书拟了一个丛书,但也因为计划做成丛书的缘故,空耗了许久的时间,以至于后来邮电出版社挤了进来。我则两相努力,单等某一方递出最终的合同。而这时刻,博文视点的周筠老师也得了消息,打算要出版这本书了。缘于此前跟蒋涛的承诺,我很遗憾地拒绝了其它两家的合同(尽管合同已经寄了过来),从此这本书的出版权落在了博文视点(电子工业出版社)的手里。
这件事我一直对邮电、清华的两位朋友深怀愧意。在《大道至简》的致谢中再一次提到这件事,用了八个字“未能兼美,深为致歉”。其实哪里单单是致歉的事情,心中之惭愧不便言说罢了。
四、《大道至简》中的古文 =======
这本书引用了不少的古文,由此引起的争议也不少。其实,我想反方同学读书大多不细致。因为仔细地看去,就会发现我所引的古文多是
大家熟读的。很多原本就是直接来自于成语,概略地数过去,就有:愚公移山、三人为众、皮之不存毛将焉附、问道于盲、徒有其表、买珠还椟、自相矛盾、一鼓作气(三鼓而竭)、工欲其事先利其器??这些成语或寓言,大多在中小学的课本中就学过,所以谁要说读不懂或者不易读,那我实在不知道应该如何回应才好。
我大致地统计过,这些古文中生僻的只有三四处。生僻的引文我要么作为章节前的引用不讲,要么就讲得很细。所以在我看来,第一版中的古文如果令人不快,那么这人大概是根子里便不喜欢古典,而不是文化知识上的欠缺。
由于这本书本来就是讲思想方法的,因此很多古文并不直接引用原意,而是引申开来讲。例如“求道于盲”,原本是指不正确的做法,而在《大道至简》这本书中,提出的观点却是:可以求道于盲,但别睁着眼问。
很多人跑来给我说需求做不了,跟客户没法沟通。其实问题在于他根本不了解客户,也不会顺着客户的思路去了解需求。我见过很多客户为了满足软件开发方的“需求”,而组织什么UML或RUP的培训班,甚至学习一些建模或者流程工具来描述他们的想法,每每看到这种情况,我都为客户感到痛心:他们要付出多大的学习成本,才能满足软件公司对他们的(而不是他们对软件公司的)期望啊?
求道于盲真的错了吗?南橘北枳究竟是橘的问题,还是枳的问题,亦或者两者皆不是???总之,这些(工程中的)问题,原本只是思想