現實生活:程式是對話&伊甸園裡的誘惑

海微發表於2012-09-05
耶和華神所造的,惟有蛇比田野一切的活物更狡猾。蛇對女人說:“神豈是真說不許你們吃園中所有樹上的果子嗎?”女人對蛇說:“園中樹上的果子,我們可以吃; 惟有園當中那棵樹上的果子,神曾說:‘你們不可吃,也不可摸,免得你們死。’” 蛇對女人說:“你們不一定死,因為神知道,你們吃的日子眼睛就明亮了,你們便如 神能知道善惡。”於是,女人見那棵樹的果子好作食物,也悅人的眼目,且是可喜愛的,能使人有智慧,就摘下果子來吃了;又給她丈夫,她丈夫也吃了。 《創世記》3:1-6

軟體程式是檔案之間的對話,或者說就是一堆檔案在講一個故事。故事的參與者是從硬碟上的物理檔案裡跑出來的一個個物件。參席的聽眾有序的坐在沒有記憶能力的記憶體裡,輪到誰講故事時,就被傳呼到CPU上去。講完後,又回到內在裡坐著,等著下一輪被CPU傳呼,或直接等著被銷燬等。因為CPU、記憶體都沒有記憶,所以講故事的每個結果都仍要被儲存到有記憶能力的硬碟裡。既然是講故事,我們就以程式語言講講,人類傳講最多的故事:<<聖經>>中<<創世紀>>記載的伊甸園裡的誘惑。

程式語言翻譯

女人類:夏娃

有人說,上帝創造人時,為人創造了兩隻耳朵,一張嘴巴,就是為了讓人少說多聽。其實,這話並不無道理,甚至在《聖經》裡可以找到這樣的經文憑據:“我親愛的弟兄們,這是你們所知道的。但你們各人要快快的聽,慢慢的說,慢慢的動怒,因為人的怒氣並不成就神的義。(《雅各書》 1:19-20)”。細想之,這話,仍是有些值得更深入的地方。當初夏娃人家就是少說多聽的。從上面的經文就可以看出,引誘的蛇的說了兩句,夏娃只說了一句話,並且夏娃對蛇說的是大實話。上帝對亞當和夏娃怎麼囑咐的,夏娃就怎麼說的。可悲的是,夏娃不僅聽了不該聽的,而且聽到心裡按著去做了,甚至還勸亞當也這樣做了。結果歷世歷代,女人都受到了上帝的懲罰:“我必多多加增你懷胎的苦楚,你生產兒女必多受苦楚。你必戀慕你丈夫,你丈夫必管轄你。”(《創世記》 3:16)。自然,男人作為女人的頭,有勸導女人歸正的義務和責任,沒有履行好義務和責任,也要受到懲罰,並且更重。

程式碼清單1:Woman類原始碼

//一切的故事都掌握在上帝的心中 package GodHeart; /** *女人類 */ public class Woman {

/**
 * 女人在聽
 * @param message 聽到的話
 */
public void listen(String message){
    System.out.println("夏娃聽蛇對她說:"+message);
}

/**
 * 女人在說
 * @param content 要說的話
 * @return 把要說的話返回給要聽的物件     * 
 */
public String say(String content){
    System.out.println("夏娃對蛇說:"+content);
    return content;
}

}

二、蛇類

“耶和華神對蛇說:‘你既做了這事,就必受咒詛,比一切的牲畜野獸更甚;你必用肚子行走,終身吃土。 我又要叫你和女人彼此為仇;你的後裔和女人的後裔也彼此為仇。女人的後裔要傷你的頭;你要傷他的腳跟。’” 《創世記》 3:14-15

其實,在蛇身上才真正驗證了常人所說的“上帝創造人時,為人創造了兩隻耳朵,一張嘴巴,就是為了讓人少說多聽。”當蛇對夏娃說了兩句引誘的話之後,不僅受到上面的詛咒,而且還把耳朵都移到嘴巴下了,沒有外耳廓,看不見。(網上資料得知:蛇沒有,我們一般所說的耳朵指的是外耳廓,而沒有包孕到其他聽力器官。蛇沒有我們能看見的耳朵.他們也沒有耳孔。所以,單看蛇的外表無法見到蛇有耳朵.但是,蛇的頭裡面真的有一種耳朵,在下顎左近。沒有外耳廓這是不是表現它們甚麼都聽不見。蛇能聽見聲音,只是不太明確.它們不是象人那樣聽到空氣中傳來的聲音。蛇能聽見的是地面傳來的振動。這些聲波由地面傳道蛇的顎骨 再傳到骨耳,這樣,蛇就聽到了聲音)

程式碼清單2:Snake類原始碼

//一切的故事都掌握在上帝的心中 package GodHeart; /** * 蛇類 */ public class Snake {

/**
 * 蛇在聽
 * @param message 聽到的話
 */
public void listen(String message){
    System.out.println("蛇聽到夏娃對它說:"+message);
}


/**
 * 蛇在說
 * @param content 要說的話
 * @return 把要說的話返回給要聽的物件
 */
public String say(String content){
    System.out.println("蛇對夏娃說:"+content);
    return content;
}

}

三、伊甸園

蛇會聽會說,夏娃也會聽會說。在伊甸園裡,蛇引誘夏娃時,從程式的角度來看,他們一共說了三輪話。第一輪是蛇用疑問的試探夏娃。第二輪是夏娃用上帝的囑咐回答蛇。第三輪是蛇用誘惑引誘夏娃。夏娃最後聽了蛇的引誘,於是伊甸園裡的誘惑故事就這樣發生了。

程式碼清單3:Eden類原始碼

//一切的故事都掌握在上帝的心中 package GodHeart;

/** * 這個故事發生在伊甸園裡 */ public class Eden {

/**
 * 伊旬園裡的誘惑
 */
public static void main(String[] args) {

    System.out.println("在伊甸園裡,耶和華神使亞當沉睡,取下他的一條肋骨,"
            + "又把肉合起來。耶和華神就用那人身上所取的肋骨造成一個女人。"
            + "亞當給她取名叫夏娃。");

    //建立夏娃物件。女人是個抽象類,夏娃才是個具體的看得見的物件。
    Woman eva = new Woman();

    System.out.println("撒旦扮作蛇來到伊甸園裡。");

    //建立撒旦物件。蛇是個抽象類,撒旦扮作蛇的具體的看得見的物件    
    Snake satan = new Snake();

    System.out.println("伊甸園裡的誘惑就這樣開始了。。。");
    System.out.println();


    System.out.println("第一輪對話:");
    //蛇在說,夏娃在聽
    eva.listen(satan.say("神豈是真說不許你們吃園中所有樹上的果子嗎?"));
    System.out.println();

    System.out.println("第二輪對話,夏娃在說,蛇在聽:");
    //夏娃在說,蛇在聽
    satan.listen(eva.say("“園中樹上的果子,我們可以吃;惟有園當中那棵樹上的果子,"
            +"神曾說:‘你們不可吃,也不可摸,免得你們死。’” "));
    System.out.println();

    System.out.println("第三輪對話,蛇在說,夏娃在聽:");
    //蛇在說,夏娃在聽        
    eva.listen(satan.say("“你們不一定死,因為神知道,你們吃的日子眼睛就明亮了,你們便如神能知道善惡。”"));
    System.out.println();

    System.out.println("於是,女人見那棵樹的果子好作食物,也悅人的眼目,"
            + "且是可喜愛的,能使人有智慧,就摘下果子來吃了;又給她丈夫,她丈夫也吃了。 ");

}

}

伊甸園的故事發生後,被摩西記在了《創世紀》。因此,我們才知道這個故事。當我們用程式語言模擬這個故事時,執行起來,蛇和夏娃在記憶體中的對話,就列印到了電腦裡的控制檯上。 

Eden.java執行結果:

在伊甸園裡,耶和華神使亞當沉睡,取下他的一條肋骨,又把肉合起來。耶和華神就用那人身上所取的肋骨造成一個女人。亞當給她取名叫夏娃。 撒旦扮作蛇來到伊甸園裡。 伊甸園裡的誘惑就這樣開始了。。。

第一輪對話: 蛇對夏娃說:神豈是真說不許你們吃園中所有樹上的果子嗎? 夏娃聽蛇對她說:神豈是真說不許你們吃園中所有樹上的果子嗎?

第二輪對話,夏娃在說,蛇在聽: 夏娃對蛇說:“園中樹上的果子,我們可以吃;惟有園當中那棵樹上的果子,神曾說:‘你們不可吃,也不可摸,免得你們死。’” 蛇聽到夏娃對它說:“園中樹上的果子,我們可以吃;惟有園當中那棵樹上的果子,神曾說:‘你們不可吃,也不可摸,免得你們死。’”

第三輪對話,蛇在說,夏娃在聽: 蛇對夏娃說:“你們不一定死,因為神知道,你們吃的日子眼睛就明亮了,你們便如神能知道善惡。” 夏娃聽蛇對她說:“你們不一定死,因為神知道,你們吃的日子眼睛就明亮了,你們便如神能知道善惡。”

於是,女人見那棵樹的果子好作食物,也悅人的眼目,且是可喜愛的,能使人有智慧,就摘下果子來吃了;又給她丈夫,她丈夫也吃了。

小結 就像人跟人之間相處要溝通和交流,相互協商,相互幫助,才能做好一件事,從抽象的角度來看,軟體程式也是從各個檔案跑出的虛擬物件之間的相互對話、相互呼叫。人和人之間溝通順暢,相互理解,能夠達在一致,事情才可能完滿完成。同樣的,如果類與類之間的設計合理,物件與物件之間能夠順暢的對話,那麼系統最終也定然會講出一個完美的故事。

誘惑 艾青 那是一種誘惑 亙古不變 使多少水手喪生 石堤在阻擋 傾斜的陸地滑向海底

海豚越過了星群 又落下,白色沙灘 消失在溶溶的月光中 海水漫過石堤 漫過空蕩蕩的廣場 水母擱淺在每根燈柱上 海水爬上石階 砰然湧進了門窗 追逐著夢見海的人

相關文章