現實生活:程式是對話&伊甸園裡的誘惑
耶和華神所造的,惟有蛇比田野一切的活物更狡猾。蛇對女人說:“神豈是真說不許你們吃園中所有樹上的果子嗎?”女人對蛇說:“園中樹上的果子,我們可以吃; 惟有園當中那棵樹上的果子,神曾說:‘你們不可吃,也不可摸,免得你們死。’” 蛇對女人說:“你們不一定死,因為神知道,你們吃的日子眼睛就明亮了,你們便如 神能知道善惡。”於是,女人見那棵樹的果子好作食物,也悅人的眼目,且是可喜愛的,能使人有智慧,就摘下果子來吃了;又給她丈夫,她丈夫也吃了。 《創世記》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執行結果:
在伊甸園裡,耶和華神使亞當沉睡,取下他的一條肋骨,又把肉合起來。耶和華神就用那人身上所取的肋骨造成一個女人。亞當給她取名叫夏娃。 撒旦扮作蛇來到伊甸園裡。 伊甸園裡的誘惑就這樣開始了。。。
第一輪對話: 蛇對夏娃說:神豈是真說不許你們吃園中所有樹上的果子嗎? 夏娃聽蛇對她說:神豈是真說不許你們吃園中所有樹上的果子嗎?
第二輪對話,夏娃在說,蛇在聽: 夏娃對蛇說:“園中樹上的果子,我們可以吃;惟有園當中那棵樹上的果子,神曾說:‘你們不可吃,也不可摸,免得你們死。’” 蛇聽到夏娃對它說:“園中樹上的果子,我們可以吃;惟有園當中那棵樹上的果子,神曾說:‘你們不可吃,也不可摸,免得你們死。’”
第三輪對話,蛇在說,夏娃在聽: 蛇對夏娃說:“你們不一定死,因為神知道,你們吃的日子眼睛就明亮了,你們便如神能知道善惡。” 夏娃聽蛇對她說:“你們不一定死,因為神知道,你們吃的日子眼睛就明亮了,你們便如神能知道善惡。”
於是,女人見那棵樹的果子好作食物,也悅人的眼目,且是可喜愛的,能使人有智慧,就摘下果子來吃了;又給她丈夫,她丈夫也吃了。
小結 就像人跟人之間相處要溝通和交流,相互協商,相互幫助,才能做好一件事,從抽象的角度來看,軟體程式也是從各個檔案跑出的虛擬物件之間的相互對話、相互呼叫。人和人之間溝通順暢,相互理解,能夠達在一致,事情才可能完滿完成。同樣的,如果類與類之間的設計合理,物件與物件之間能夠順暢的對話,那麼系統最終也定然會講出一個完美的故事。
誘惑 艾青 那是一種誘惑 亙古不變 使多少水手喪生 石堤在阻擋 傾斜的陸地滑向海底
海豚越過了星群 又落下,白色沙灘 消失在溶溶的月光中 海水漫過石堤 漫過空蕩蕩的廣場 水母擱淺在每根燈柱上 海水爬上石階 砰然湧進了門窗 追逐著夢見海的人
相關文章
- iPhone 5C的“炫富”誘惑iPhone
- 開源的誘惑——資料庫篇資料庫
- ubuntu上的蘋果mac主題誘惑Ubuntu蘋果Mac
- “真金”誘惑,印度遊戲大爆發遊戲
- 截圖的誘惑:Docker部署Puppeteer專案Docker
- 學習C++(二) 書的誘惑 (轉)C++
- 電話機器人是如何實現對話的?機器人
- 任天堂的百年遊戲帝國:用“好玩”對抗所有誘惑遊戲
- 假如程式設計師生活在童話裡…程式設計師
- 矽谷的誘惑:中國IT人才如何去矽谷找工作
- 底層--遊戲開發的終極誘惑遊戲開發
- 被IT行業誘惑 如何轉行做個IT人行業
- 部署SDN:拒絕誘惑認真思考企業需求
- 網頁設計中,誘惑大腦中的“原始人”網頁
- 寶付使用者談面對人工智慧刷臉支付的誘惑,你可要留心了人工智慧
- 乾貨!必看創意按鈕設計,打造真正的按鈕誘惑
- Win10手機預覽版系統,那些很具誘惑的功能展望Win10
- 如何實現一個前端對話前端
- 很現實,也感人。MM與IT GG的對話
- 在程式之外,是程式設計師的生活程式設計師
- Qt標準對話方塊實現QT
- 開源是Docker和Kubernetes的伊甸園Docker
- 現實生活中的LinuxLinux
- Nature:要減少研究不可重複性,就必須解決學術欺詐的誘惑
- 對話專家:Go是DevOps時代最好的程式語言Godev
- 基於ChatGPT用AI實現自然對話ChatGPTAI
- Python使用TCP實現簡單對話PythonTCP
- jQuery模擬實現聊天對話方塊jQuery
- 話裡話外:流程管理,其實可以做的更多薦
- 與Canalys對話(聯想篇):AI PC的成功是聯想實現更宏大目標的關鍵AI
- 有趣:現實生活中的 LinuxLinux
- 有趣:現實生活中的LinuxLinux
- 現實生活:介面&信心的國度
- 對程式設計師說點實在話程式設計師
- VC實現對話方塊上資訊的顯示 (轉)
- 大話程式猿眼裡的高併發
- 生活為什麼總是對我動手?
- 現實生活中的視覺符號視覺符號