但我們不得不承認這種思維模式的確與眾不同。人認識這個世界,首先從名詞開始,"媽媽"或"爸爸"往往是每一個人開口說的第一句話,只有認識積累到一定程度,我們才可能有意識地把某個領域的所有名詞用動詞聯系在一塊,形成一個完整的處理流程,謂之過程,可見人對過程的認識需要時間。與之對應的矛盾是,面對過程程序員工作的前提是--需要一個正確的過程模型。更遺憾的是,即使是一個完全正確的過程模型,它也在不斷地變化,而且變化的速度在目前有愈演愈烈的跡象。
過程通常又是獨特的,悲痛孤獨的姚壯憲杜撰出精巧的《仙劍奇俠傳》,美女滿懷的姚壯憲策劃出平淡的《仙劍奇俠傳2》,人類活動不可能都象數學公式一樣,有一個統一的推演過程。與之對應的是,作為過程的抽象--函數,不可復制幾乎成了其根本屬性,那么由一個個函數組合而成的程序再談什么軟件復用似乎就象海市蜃樓般虛無飄渺。
人腦通常只能一心一用,所以很難同時左手畫圓右手畫方,這是眾所周知的事實。但許多面對過程程序員卻一直在做著許多看似荒謬的事情--用序列化的方法來模擬多任務的處理,即左手畫一段弧,右手再畫一條邊,不斷重復這兩個動作,只要動作足夠快,他人的感覺就是你一心二用。我們不得不嘆服其精巧之至,但同時也不得不承認其繁雜。而過于繁雜的東西,其成本之高可想而知,當這個世界的每一個時刻都在各個領域發生著大量事件時,試問這種精巧的處理方法將變得何其脆弱。
馮·諾依曼設計出來的計算機體系結構有先天性缺陷,但讓計算機界現在就完全推翻整個體系不現實,于是便有了改進,有了分工。
九九歸一 - 面向對象思想的對象世界
我的《金庸群俠傳》玩友石頭有些與常人不同的習慣:看人時,并不關注這人的外形,而是關注他的生命值和攻擊力;談話前,常會下意識地用大姆指在空中狠狠按一下;進入一個陌生的屋子后,石頭的目光通常會先投向柜子和抽屜,生怕遺漏里頭的藥丸。
很多人描述自己的《金庸群俠傳》傳奇時,常會以"出茅屋、進河洛、到南賢……"之類的話來開題,洋洋灑灑說上半天,歐陽克野球拳寶濟丸之類夾雜其中,讓人不禁對其博學多才油然而生敬仰之情,可回頭咀嚼,卻依稀只記下幾個名詞。一向崇拜cantor的石頭是這么描述這個世界:"一塊蛋糕,點綴著幾個草莓,一只螞蟻在其中往返,并不時地鉆到草莓里頭看看。"
《金庸群俠傳》給我們帶來的第一映像是充斥著各種各樣的粒子。我們將會遇到客棧老板、歐陽克等人物;將會得到寶濟丸、嵐氏烏雞精等物品;將學會辟邪劍法、左右手互搏術等武功;將鉆進少林寺、武當山等地。涉世之初,它們混沌地夾雜在一起。
這些粒子有各自的特征和行為,如小蝦米有攻擊力、防御力等數值來描述他的當前狀態,可做行走、服藥、對話、決斗等動作來影響自己或它人的狀態。我們將所有粒子統一命名為對象(object),用圖5-2右描述,并可將所有的對象定義成一個集合,如圖5-2左: