戏说计算机与哲学

转一篇2005年写的东西


    其实计算机并不只是technical stuff。人对自身的思考,总会投射到别的事物上。

1.  如果你问计算机生命是什么?答案会很简单:

    while(1)
    {
        something without break and deadlock;
    }

     是呀,人们都称这个是“死”循环。其实呢,使得你的系统能够不停运转的idle,也不过就是这样的“死”循环罢了。所以,生与死并没有一个绝对的边界。正是这样的死循环,使得你的PC得到永生。相反地,任何正常的,非“死”的进程,都有终结之日。生死之交易,由此可见一斑。

    记得刚上初中的时候,老师作过这样的比喻。他说人类制造的其他工具是人类四肢的延伸,唯有计算机是人类大脑的延伸。那节课的主题就是“是电脑,还是计算机”。有人说计算机的神奇并不在于它的计算能力,而是因为它有判断的能力,而这也是作为工具的计算机区别于其它一切工具的特征。我并不反对这种观点。然而我更希望人们看到,循环是计算机中最具活力的地方。看看每一个Windows程序,哪一个不是都有其自已的“消息循环”。如果有coding基础的人都可以想一想,几乎每一个feature无不是处在一个或大或小的循环当中。循环往复,而非简单重复,计算的乐趣与人生的乐趣有了一个共同的落脚点。

     每一个人的生命,从他开始的一天就开始了各种循环。昼夜交替,四季轮回,是小循环;从小到大,从年轻到年迈,是每一个人要走过的大循环。循环,是人生共性的东西。所以回答生命就是如上的循环就不那么奇怪了。然而,每个人的生活都是不一样的。即使是朝夕相处的人们,也都有着属于自己的,与他人迥然不同的生活。而这正是因为每个人的循环当中,有着无数的if。每个人在相同的循环当中,走向不同的分支。对算法有了解的人来想一想,每一个让人感叹的优美的算法,不也通常就是这种循环中带判断的结构么?写算法的人和写小说的人都是在讲述一个不完全真实的故事,只是方法和载体不同罢了。人与人之间,真没有什么不同的地方。

2.  天下大同就是IUnknown。

    其实不只是人与人,世间万物都有相通之处,人们称这个过程叫做抽象。记得很多年前知道一种东西叫TObject,一个让人不太能找到感觉的名字。然而,当你见到IUnknown时,就不免浮想联翩了。在COM的世界里,所有的东西都源自IUnknown,而它只回答了三个问题:什么时间出生,什么时间死亡和“我是谁”。其实真的不只是人们会向天发问:“Who am I?”。你的计算机也在不停地呼喊:“QueryInterface”。是呀,生死总不是在自己的掌控之内,在一个人的逻辑世界里,生与死的问题只能是公理,这意味着你并不能对它说三道四。而“我是谁”这样的问题,却有着千万种的回答。也正是不同的回答,构成了丰富的世界。而万物的源头,永远都是Unknown。我不信上帝,但我勇于面对这个现实。