「大道至简」 我们就看到了他们写的程序。 在没有工程的时代,出现了非常非常多的人物。其中 算法大师,有游戏大师,有语言大师,有挣钱的大师… 唯独,没有工程大师。嗯,可以理解嘛,那是没有工 程的时代。好蛮荒,好远古的。 -13-
『大道至简』 -13- 我们就看到了他们写的程序。 在没有工程的时代,出现了非常非常多的人物。其中 算法大师,有游戏大师,有语言大师,有挣钱的大师…… 唯独,没有工程大师。嗯,可以理解嘛,那是没有工 程的时代。好蛮荒,好远古的
第2章是懒人造就了方法 “僰道有蜀王兵蘭,亦有神作大滩江中。其崖崭峻不 可破,(冰)乃积薪烧之。” 一一《华阳国志》 1.是懒人造就了方法 战国时期的李冰凿了一座山。 史记中说是“蜀守冰凿离堆”,是说李冰在成都的时 候凿出了离堆。一说是李冰将都江堰附近的玉垒山凿了一 个大口子,叫宝瓶口,而凿的石头就堆成了离堆。另一说, 则是李的确是凿了一座“(溷)崖”,但是是在沫水,亦即 是今天的大渡河。 在哪里凿的山,是史学家都说不清楚的事。但的确凿 了一座山,而且方法是“(因)其崖崭峻不可破,(冰)乃积 薪烧之”。 我们己经看到事物的进化了。同是战国时代,《列 子·汤问篇》里的愚公就要“碎石击壤”,而李冰就已经 懂得“积薪烧之”了。 会有人说愚公是“碎石”,并没有说他“碎石”的方 法究竞是“斧钺以凿之”,还是“积薪以烧之”。但想想那 个时代,如果有人懂得了烧石头这个方法,哪能不立即载 -14-
第2章 是懒人造就了方法 “僰 蘭 道有蜀王兵 ,亦有神作大滩江中。其崖崭峻不 可破,(冰)乃积薪烧之。” ——《华阳国志》 1. 是懒人造就了方法 战国时期的李冰凿了一座山。 史记中说是“蜀守冰凿离堆”,是说李冰在成都的时 候凿出了离堆。一说是李冰将都江堰附近的玉垒山凿了一 个大口子,叫宝瓶口,而凿的石头就堆成了离堆。另一说, 则是李的确是凿了一座“(溷)崖”,但是是在沫水,亦即 是今天的大渡河。 在哪里凿的山,是史学家都说不清楚的事。但的确凿 了一座山,而且方法是“(因)其崖崭峻不可破,(冰)乃积 薪烧之”。 我们已经看到事物的进化了。同是战国时代,《列 子·汤问篇》里的愚公就要“碎石击壤”,而李冰就已经 懂得“积薪烧之”了。 会有人说愚公是“碎石”,并没有说他“碎石”的方 法究竟是“斧钺以凿之”,还是“积薪以烧之”。但想想那 个时代,如果有人懂得了烧石头这个方法,哪能不立即载 -14-
「大道至简」 文志之,永世传承。 再说了,愚公嘛。愚者怎么会呢?这还需要分析吗? 需要吗? 所以愚公会凿,而李冰会烧。那李冰又是为什么会用 “烧”这种方法来碎石的呢?如果李冰也象愚公那样日复 一日地督促着他的团队凿石开山,那他一定没有时间来学 习、寻找或者观察,当然也不会发现“烧”这种方法可以 加快工程进度,使得一大座山短时间就被哗啦哗啦地给 “碎”掉了。 要知道李冰的团队可是成百上千人,要修堰筑坝,还 要“凿离堆”,当然还要吃喝啦撒睡。所以李冰如果忙起 来的话,他必然是“受命以来,夙夜忧叹”,必然食难下 咽,睡无安枕。反之,李冰一定是个闲人,可以闲到没事 去看火能不能把石头烧爆。 这么大个工程里,如果有一个人会闲到看火烧石头, 那他一定很懒。那么多事堆着不去做,去看烧石头,你说 他不是懒是什么。 正是一个懒人造就了“烧石头”这个“碎石”的方法。 愚公太勤快了,勤快得今天可以比昨天多凿一倍的石头。 或者在愚公的项目计划案的首页里就写着朱笔大字:“吾 今胜昨倍许,明胜今倍许,而山不加增,何苦而不快。” 但是越发的勤快,愚公将越发没有机会找到更快的方法, 人的精力终归是有极限的。提出新的“方法”,解决 -15-
『大道至简』 -15- 文志之,永世传承。 再说了,愚公嘛。愚者怎么会呢?这还需要分析吗? 需要吗? 所以愚公会凿,而李冰会烧。那李冰又是为什么会用 “烧”这种方法来碎石的呢?如果李冰也象愚公那样日复 一日地督促着他的团队凿石开山,那他一定没有时间来学 习、寻找或者观察,当然也不会发现“烧”这种方法可以 加快工程进度,使得一大座山短时间就被哗啦哗啦地给 “碎”掉了。 要知道李冰的团队可是成百上千人,要修堰筑坝,还 要“凿离堆”,当然还要吃喝啦撒睡。所以李冰如果忙起 来的话,他必然是“受命以来,夙夜忧叹”,必然食难下 咽,睡无安枕。反之,李冰一定是个闲人,可以闲到没事 去看火能不能把石头烧爆。 这么大个工程里,如果有一个人会闲到看火烧石头, 那他一定很懒。那么多事堆着不去做,去看烧石头,你说 他不是懒是什么。 正是一个懒人造就了“烧石头”这个“碎石”的方法。 愚公太勤快了,勤快得今天可以比昨天多凿一倍的石头。 或者在愚公的项目计划案的首页里就写着朱笔大字:“吾 今胜昨倍许,明胜今倍许,而山不加增,何苦而不快。” 但是越发的勤快,愚公将越发没有机会找到更快的方法, 人的精力终归是有极限的。提出新的“方法”,解决
第2章是懒人造就了方法 的将是影响做事成效的根本问题。而愚公可以多吃点饭, 多加点班,但突破不了人的精力的极限。 吾令驻作停序,明程合 格许,而山不如增… 记住,在两千年前的某一天,闲极无聊的李冰下厨给 夫人炒了一个小菜,他突然发现垒灶的鹅卵石被烧得爆裂 开来,遇水尤甚。从此《史记》上记下了“蜀守冰凿离堆”, 而《华阳国志》上记下了他做这件事的方法“积薪烧之”。 在差不多同一时间,愚公在山北之塞“碎石击壤”。 2.一百万行代码是可以写在一个文件里的 早期写程序,都是将代码打在穿孔纸带上,让计算机 去读的。要让计算机读的纸带当然是连续的,这无需多讲。 其实我也没有那样写过程序,真实的苦楚我也不知道。 -16-
第 2 章 是懒人造就了方法 的将是影响做事成效的根本问题。而愚公可以多吃点饭, 多加点班,但突破不了人的精力的极限。 记住,在两千年前的某一天,闲极无聊的李冰下厨给 夫人炒了一个小菜,他突然发现垒灶的鹅卵石被烧得爆裂 开来,遇水尤甚。从此《史记》上记下了“蜀守冰凿离堆”, 而《华阳国志》上记下了他做这件事的方法“积薪烧之”。 在差不多同一时间,愚公在山北之塞“碎石击壤”。 2. 一百万行代码是可以写在一个文件里的 早期写程序,都是将代码打在穿孔纸带上,让计算机 去读的。要让计算机读的纸带当然是连续的,这无需多讲。 其实我也没有那样写过程序,真实的苦楚我也不知道。 -16-
「大道至简」 后来有了汇编语言,可以写一些代码了。这时的代码 是写在文本文件里,然后交给一个编译器去编译,再由一 个链接器去链接,这样就出来了程序。 第一个写汇编的人,可能写的是有名的“Hello World” 程序,那个程序写在一个文件里就行了。所以后来就成了 习惯,大家都把代码写到一个文件里。早期的汇编语言里, GOTO语句是用得非常非常频繁的,将一个语句GOTO 到另一个文本文件里去,既不现实也不方便。所以大家习 以为常,便统统地把代码写到一个文件里。 再后来出了高级语言,什么C呀,Pascal呀之类的。 既然大家已经形成习惯了,所以很自然地会把一个程序写 到一个文件里。无论这个程序有多大,多少行代码,写到 一个文件里多方便呀。 直到如今语言发展得更高级了。可是程序员的习惯还 是难改,一旦得了机会,还是喜欢把代码写到一个文件里 的。 好了,有人说我是想当然尔。E,这当然是有实据的。 记得Delphi 1.0版发布的时候,全世界一片叫好声。连“不 支持双字节”这样的大问题,都不影响他在华语地区的推 广。然而不久,爆出了一个大BUG!什么大BUG呢? Delphi1.0的编译器居然不支持超过64K的源代码文件! 这被Fans们一通好骂。直到我用Delphi2.0时,一 个从VB阵营转过来的程序员还跑过来问我这件事。好在 Delphi2.0改了这个BUG,这让当时我的面子上好一阵风 -17-
『大道至简』 -17- 后来有了汇编语言,可以写一些代码了。这时的代码 是写在文本文件里,然后交给一个编译器去编译,再由一 个链接器去链接,这样就出来了程序。 第一个写汇编的人,可能写的是有名的“Hello World” 程序,那个程序写在一个文件里就行了。所以后来就成了 习惯,大家都把代码写到一个文件里。早期的汇编语言里, GOTO 语句是用得非常非常频繁的,将一个语句 GOTO 到另一个文本文件里去,既不现实也不方便。所以大家习 以为常,便统统地把代码写到一个文件里。 再后来出了高级语言,什么 C 呀,Pascal 呀之类的。 既然大家已经形成习惯了,所以很自然地会把一个程序写 到一个文件里。无论这个程序有多大,多少行代码,写到 一个文件里多方便呀。 直到如今语言发展得更高级了。可是程序员的习惯还 是难改,一旦得了机会,还是喜欢把代码写到一个文件里 的。 好了,有人说我是想当然尔。En,这当然是有实据的。 记得 Delphi 1.0 版发布的时候,全世界一片叫好声。连“不 支持双字节”这样的大问题,都不影响他在华语地区的推 广。然而不久,爆出了一个大 BUG!什么大 BUG 呢? Delphi 1.0 的编译器居然不支持超过 64K 的源代码文件! 这被 Fans 们一通好骂。直到我用 Delphi 2.0 时,一 个从 VB 阵营转过来的程序员还跑过来问我这件事。好在 Delphi 2.0 改了这个 BUG,这让当时我的面子上好一阵风