KK

Kim-'s-Blog.Object-Everything.I'm POJO.

.紀-錄.爲了忘卻的記憶..真的勇士,要敢于直面遇到的問題,敢于正視繁雜的原碼......在實踐中積累!

  BlogJava :: 首页 :: 联系 :: 聚合  :: 管理
  74 Posts :: 1 Stories :: 70 Comments :: 0 Trackbacks
看到一篇不错的文章,与大家分享下。
----------------------------------------------------

元旦到来,炮竹声声,辞旧迎新,喜气洋洋。

然而我却高兴不起来,又老了一岁,离死又近了一年!


虽然说得不吉利,但却是事实。灵丹妙药只能让人早死,体格强壮并不增寿延年,求佛信神更是自欺欺人。我几十年来默默研究,但结果却一次次让人失望。

原来人以及每一个高等生物都有“设计寿命”,大多数器官都没有再生能力,甚至没有自我修复能力。随着年龄的增长,功能逐步衰退。最核心的器官,大脑,更是连细胞的再生能力都没有,每天死掉 10 万个细胞,成年后,大脑就进行性的不断萎缩。死亡,不可抗拒!

我绝望了,女娲造人,水平不高。

我开始研究进化论。进化论告诉我们,一个物种要生存,必须与时俱进。这一点很容易接受,因为自然环境在变化,其他物种在变化。但为什么不是这个物种的每个个体“与时俱进”,而是不断的用新一辈替换老一辈?君不见要让一个新的个体成长到成年是多么困难,让老一辈死掉对一个物种来说是多大的浪费。大自然几亿年的生物进化,为什么选择了这样的方案?为什么物种的生存要以其个体的死亡为代价?为什么不是“适者生存”,而是“适者的后代生存”?

直到我做了多年的软件,才终于明白了这里的道理。

我早期的程序大多是用原有程序改写而成。渐渐的,我发现,改程序越来越不容易,当程序大到一定程度后,改写不如重写。后来,我进入了专业软件公司,一位前辈告诉我,早在 60 年代, IBM 就有专家得出结论,如果对一个软件的改动超过 15% ,则改写不如重写。

原来,跟人一样,软件也会死亡!或许,我们可以从这里入手,搞清人为什么会死亡。

如果我们要制作一个有 N 个对象构成的软件,第二个对象需要关心与第一个对象的关系,第三个对象需要关注与第一、第二个对象的关系,第 n 个对象需要关注( n-1 )个关系。或者说,在构筑新软件的过程中,进行一步的难度正比于 N ,或者说正比于系统的复杂度。

如果我在老程序上改动一个对象,则要改动( n-1 )个关系,改动( n-1 )对象,而这( n-1 )个对象又要牵扯 (n-2) 关系和对象,推延下去,在“完全耦合”的前提下,改动一个对象需要对系统中所有对象和所有关系都改动一遍。也就是说,进行一步的难度正比于 N 平方!这就是为什么对于强耦合复杂系统,修改往往不如重做,这一点结论适用于软件,也适用于生物界。

看来女娲造人时作出了最佳选择,因为人是一个强耦合复杂系统,改进一个成年人要比重新培养一个孩子困难得多。要让人类发展,只好让人死亡。

这让我想起了作人工智能软件时的经历。我们当年做的智能软件要用大量数据“训练”。从一个尝试解开始,通过一次又一次的迭代,每一次迭代生成新一代的尝试解,扔掉上一代的尝试解。这样看来,我们每个人只是人类在适应环境的过程中的一个尝试解。我的寿命,只是构筑、测试我这个尝试解所需要的时间。复杂的生物、生存方式应该有更长的寿命。长期稳定环境下的生物也应该有更长的寿命。

总结之,我之所以不能长生不老,是因为( 1 )我是强耦合构造( 2 )我只是一个尝试解。

但是,我还是想长寿!只要能长寿,我愿意答应任何要求!

冬日细雨中突然炸出一声雷响,吓得我手足无措,魂不附体。那是女娲的声音,“尝试弱耦合”。

(From
http://gocom.primeton.com/

posted on 2007-03-10 11:18 Kim' 阅读(281) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航:
 
jj