但我们不得不承认这种思维模式的确与众不同。人认识这个世界,首先从名词开始,"妈妈"或"爸爸"往往是每一个人开口说的第一句话,只有认识积累到一定程度,我们才可能有意识地把某个领域的所有名词用动词联系在一块,形成一个完整的处理流程,谓之过程,可见人对过程的认识需要时间。与之对应的矛盾是,面对过程程序员工作的前提是--需要一个正确的过程模型。更遗憾的是,即使是一个完全正确的过程模型,它也在不断地变化,而且变化的速度在目前有愈演愈烈的迹象。
过程通常又是独特的,悲痛孤独的姚壮宪杜撰出精巧的《仙剑奇侠传》,美女满怀的姚壮宪策划出平淡的《仙剑奇侠传2》,人类活动不可能都象数学公式一样,有一个统一的推演过程。与之对应的是,作为过程的抽象--函数,不可复制几乎成了其根本属性,那么由一个个函数组合而成的程序再谈什么软件复用似乎就象海市蜃楼般虚无飘渺。
人脑通常只能一心一用,所以很难同时左手画圆右手画方,这是众所周知的事实。但许多面对过程程序员却一直在做着许多看似荒谬的事情--用序列化的方法来模拟多任务的处理,即左手画一段弧,右手再画一条边,不断重复这两个动作,只要动作足够快,他人的感觉就是你一心二用。我们不得不叹服其精巧之至,但同时也不得不承认其繁杂。而过于繁杂的东西,其成本之高可想而知,当这个世界的每一个时刻都在各个领域发生着大量事件时,试问这种精巧的处理方法将变得何其脆弱。
冯·诺依曼设计出来的计算机体系结构有先天性缺陷,但让计算机界现在就完全推翻整个体系不现实,于是便有了改进,有了分工。
九九归一 - 面向对象思想的对象世界
我的《金庸群侠传》玩友石头有些与常人不同的习惯:看人时,并不关注这人的外形,而是关注他的生命值和攻击力;谈话前,常会下意识地用大姆指在空中狠狠按一下;进入一个陌生的屋子后,石头的目光通常会先投向柜子和抽屉,生怕遗漏里头的药丸。
很多人描述自己的《金庸群侠传》传奇时,常会以"出茅屋、进河洛、到南贤……"之类的话来开题,洋洋洒洒说上半天,欧阳克野球拳宝济丸之类夹杂其中,让人不禁对其博学多才油然而生敬仰之情,可回头咀嚼,却依稀只记下几个名词。一向崇拜cantor的石头是这么描述这个世界:"一块蛋糕,点缀着几个草莓,一只蚂蚁在其中往返,并不时地钻到草莓里头看看。"
《金庸群侠传》给我们带来的第一映像是充斥着各种各样的粒子。我们将会遇到客栈老板、欧阳克等人物;将会得到宝济丸、岚氏乌鸡精等物品;将学会辟邪剑法、左右手互搏术等武功;将钻进少林寺、武当山等地。涉世之初,它们混沌地夹杂在一起。
这些粒子有各自的特征和行为,如小虾米有攻击力、防御力等数值来描述他的当前状态,可做行走、服药、对话、决斗等动作来影响自己或它人的状态。我们将所有粒子统一命名为对象(object),用图5-2右描述,并可将所有的对象定义成一个集合,如图5-2左: